본문 바로가기

기타

퍼셉트론(Perceptron) 알고리즘

1. 퍼셉트론(Perceptron)이란?

: 다수의 신호를 입력받아 하나의 신호를 출력하는 알고리즘이다. 인공신경망의 한 종류로서 뉴런의 구조와 비슷하다.

위 그림은 퍼셉트론의 구조이며 x는 입력 신호, w는 가중치(weight)이다. 입력신호에 가중치가 곱한 값들을 모두 더해서 임계값(세타)보다 큰 경우 출력값(output) 1을 출력하고 작거나 같은 경우 0을 출력하게 된다. 

Image result for perceptron

이를 식으로 나타내면 위와 같다. 여기서 임계값(세타)를 좌항으로 넘긴값 -세타를 b(bias,편향)으로 치환하면 아래와 같은 식을 얻을 수 있다.


w*x1 + w*x2 + ..... + wn*xn + b > 0

w*x1 + w*x2 + ..... + wn*xn + b <= 0



2. 퍼셉트론(Perceptron)의 응용과 한계

:  이러한 퍼셉트론(Perceptron)을 활용하면 AND, NAND, OR의 논리회로를 구현하는 것이 가능하다. 이를 그래프로 보면 다음과 같다.

퍼셉트론 AND OR에 대한 이미지 검색결과

위 그림을 보면 AND와 OR은 하나의 직선으로 출력값 0과 1 을 나누는 것이 가능하다. 이 선이 퍼셉트론 식이 된다. 하지만 XOR의 경우 하나의 직선으로 나누는 것이 불가능하다.  이는 단일 선형 퍼셉트론 ( Single Linear Perceptron)으로는 XOR을 구현하는 것이 불가능하다고 할 수 있다.

 하지만 여러개의 선을 사용하거나 곡선을 사용한다면 XOR의 출력도 나누는 것이 가능하다. 이에 대해서 아래에서 알아 본다.



3. 다층 퍼셉트론(Multi- layer Perceptron)

: 퍼셉트론을 여러개 사용하는 알고리즘이다. 위에서 설명한 XOR로 설명을 해보겠다. XOR 게이트의 경우 AND NAND OR 게이트를 조합하면 구현이 가능하다는 것은 알 것이다. NAND 게이트 3개를 이용하여 XOR 게이트를 만드는 것을 생각 해보겠다.
nand gate에 대한 이미지 검색결과
NAND 게이트 하나의 퍼셉트론 구조가 아래와 같다고 해보겠다.
이 구조를 3개 합친다면 XOR 게이트를 만드는 것이 가능하다. 이는 아래와 같다.
기존에 0, 1층에서 한층이 늘어나 총 0,1,2층 구조가 되었다. 여기서 0층은 입력 층 (input- layer), 1층은 은닉 층(hidden- layer), 2층은 출력 층(output- layer)라고 한다. 복잡한 식일 수록 hidden layer의 층은 늘어나 여러 층이 될 수 있다.


4. 퍼셉트론(Perceptron)의 장단점

: 이러한 퍼셉트론에는 장단점이 있다. 우선 장점은 어떠한 복잡한 함수도 다층 퍼셉트론을 이용하면 표현하는 것이 가능하다. 단점으로는 이러한 식을 만들 때에 가중치의 값을 정하는 것은 사람이 수동으로 해야한다는 것이다. 하지만 이는 식이 복잡할 수록 매우 어려워진다.


이러한 퍼셉트론의 단점을 극복하는 것은 다음 신경망 글에서 다룬다.