퍼셉트론(Perceptron)
퍼셉트론이란 딥러닝의 기본이 되는 알고리즘으로 다수의 입력값을 받아 하나의 출력값을 내는 것이 핵심인 알고리즘이다.
출력값으로는 0/1을 전달해준다.
그림으로 표현하면 아래와 같다.
-> 이 그림은 입력값이 두개일 때의 퍼셉트론이다.
x1, x2 : 입력값
y : 출력값
w1,w2 : 가중치 => 각 신호가 결과에 미치는 영향력을 결정하는 요소
각각의 뉴런이 보낸 총합이 임계치( θ )를 넘어설 경우에만 1을 출력
퍼셉트론이 동작하는 방식을 수식으로 표현하면 아래와 같다.
편향 개념을 도입해서 수정한 수식을 살펴보자.
이전 수식의 θ를 -b로 치환 후 정리한 수식으로 위의 수식과 아래의 수식은 같은 동작을 수행한다.
여기서 가중치인 w와 편향의 b의 역할에 대해서 헷갈릴 수 있다.가중치 w는 각각의 입력 신호가 결과에 얼마나 영향력을 가지는지 정하는 값이라고 볼 수 있고,편향 b는 뉴런이 얼마나 쉽게 활성화가 되는지를 조절하는 변수이다. (편향의 절댓값이 작을 수록 뉴런은 더 쉽게 활성화(= 출력 1))
퍼셉트론의 한계
단층 퍼셉트론으로는 가중치 조절을 통해 AND게이트, OR게이트, NAND게이트와 같이 선형 영역에 대한 구분이 가능하다.OR 게이트의 입력과 출력값에 대한 구분은 아래와 같이 선으로 구분이 가능한 선형영역을 가지지만,XOR게이트의 입력과 출력값에 대한 구분은 선만으로는 구분이 불가능한 비선형 영역을 가진다.
이러한 경우 선형연산을 지원하는 단층 퍼셉트론만으로는 XOR게이트를 구현할 수 없다.
XOR의 경우 NAND와 OR AND를 적절히 결합하여 다음과 같이 구현할 수 있다.
이를 뉴런으로 구상하면 아래의 그림과 같다.
단층 퍼셉트론 만으로는 구현할 수 없던 비선형 영역을 층을 늘려서 구현 할 수 있고, 위와 같은 경우를 2층 퍼셉트론이라 한다.
따라서 퍼셉트론은 복잡한 내용에 대해서 층을 늘리거나 깊게해서 다양한 표현을 가능하게 한다.
이러한 방식으로 단순 논리회로에서 가산기와 감산기, 인코더 더 층을 깊게해서 컴퓨터까지 생성이 가능하다.
(물론 이론상으로) 컴퓨터는 NAND 게이트만으로 구성이 가능함이 입증되어있다.