본문 바로가기
📁 AI

[Machine Learning] 퍼셉트론 (Perceptron)

by 박개봄 2020. 6. 15.
728x90

퍼셉트론 (Perceptron)

 신경망 모델의 역사를 거슬러 올라가보면, 1943년에 McClulloch & Pitts에 의한 신경세포의 계산 모델이 있다.

이들은 개구리 두뇌의 신경세포를 보고 신경세포의 수학적 특성에 대한 모델링을 시작하였는데, 이는 신경세포의 동작이 단순한 동작임을 알아내는 계기가 되었다.

 

 이후 1957년 로젠블랏(Rosenblatt)이 학습 가능한 신경망 모델을 제안하였는데 그것이 바로 퍼셉트론이다. 퍼셉트론은 우리말로 인식, 인지라는 뜻을 가지고 있다.

 

위 그림은 퍼셉트론 모델의 구조이다.

* x0 … xd는 들어오는 신호(입력)를 나타낸다.

 

* w0 … wd는 가중치이며 시냅스 역할을 한다.

   시냅스로 신호가 들어올 때, 강화 or 감쇄되어 들어오는데 이러한 효과를 가중치로 나타낸다.

 

* 원하는 결과가 나오도록 "가중치"를 결정하는 방법을 만들어 내는데, 이 가중치를 결정하는 것을 "학습"이라고 부른다.

 

 

퍼셉트론 계산 식

 위 식으로 나타낼 수 있으며, 임계값 이상이면 내보내기 위해 오른쪽 사진과 같은 계단모양의 활성화 함수를 사용한다.

이 함수는 식의 계산 값이 0 이상이면 1, 아니면 0이 나오도록 한다.

 

 

퍼셉트론 동작 함수

퍼셉트론 동작 함수는 간단하지만 학습이 제한적이라는 단점이 있다.

* dot()함수 : 내적 함수

* weights[1:] : w1…wd 가중치

* weights[0] : w0 (b)

 

OR 연산을 수행하는 퍼셉트론

OR 연산
OR연산을 하는 함수

 X2 = -X1 + 0.5 위 직선을 이렇게 나타낼 수 있다.

직선을 중심으로 위쪽은 +값, 아래쪽은 -값이 되는데 이것을 활성화 함수에 적용하면 위쪽은 1, 아래쪽은 0으로 나타낼 수 있다.

따라서 퍼셉트론은 OR 연산을 하는 함수를 만들어낼 수 있다 !!!!!!!

 

cf) AND연산은 (1,1) 아래에 직선을 만들어 나타낼 수 있다.

 

 

 

 이렇게 -0.5, 1 1과 같이 가중치를 준 상태에서만 OR연산이 가능한 것은 아니다.

퍼셉트론의 학습 알고리즘을 사용하게 되면,

주어진 입력에 대한 출력이 나와야 한다는 학습데이터들로부터 가중치를 자동으로 찾을 수 있다.

 

선형 분리 불가 문제 (linearly inseparable problem)

선형 분리 가능 문제(왼쪽)와 선형 분리 불가 문제(중간), XOR의 동작(오론쪽)

퍼셉트론이 나타내는 식은 Σwi*xi + b 이므로 2차원 공간에서는 직선이다.

하지만 직선으로 XOR 문제에서는 선형 분리가 불가능하다.

이를 해결하기 위해 다층 퍼셉트론(multilayer Perceptron, MLP)가 나오게 되었다.

728x90

댓글