단층 퍼셉트론 (Single-layer Perceptron)
퍼셉트론 (Perceptron)은 1957년 코넬 항공 연구소에 근무하던 프랑크 로젠블라트(Frank Rosenblatt)가 MCP 뉴런 모델을 기초로 퍼셉트론이라는 알고리즘을 고안하였다. 퍼셉트론은 하나의 MCP 뉴런이 출력신호를 발생할지 안할지 결정하기 위해 MCP 뉴런으로 들어오는 각 입력값에 곱해지는 가중치 값을 자동적으로 학습하도록 한 모델이며 입력 벡터를 두 부류(class)로 구분하는 선형 분류기 이다. 퍼셉트론은 신경망(딥러닝)의 기원이 된 알고리즘이다.
퍼셉트론은 다수의 신호를 입력 받아 하나의 신호를 출력한다. 여기서 말하는 신호는 전류처럼 흐름이 있는것을 뜻하며, 흐름의 상태 정보를 앞으로 전달한다. 아래 그림은 x1, x2라는 입력 신호에 w1, w2라는 가중치를 부여하여 y라는 신호를 출력한다.
입력 신호가 뉴런에 보내질 때는 각각 고유한 가중치가 곱해진다. 뉴런에서 보내온 신호의 총합이 정해진 한계를 넘어설 때만 1을 출력하게 된다. 이를 “뉴런이 활성화 한다” 라고 표현 할 수 있다. 그 한계를 “임계값” 이라고 한다. 임계값은 보통 θ(세타)로 표현된다. 퍼셉트론은 복수의 입력 신호 각각에 고유한 가중치를 부여하게 된다. 가중치는 각 신호가 결과에 주는 영향력을 조절하는 요소로 작용된다. 즉, 가중치가 클수록 해당 신호가 그만큼 더 중요하다는 뜻이다.
위 그림에서 x는 입력 벡터 값을 나타내며, w는 가중치를 나타낸다. 바이어스 입력값은 x0, 바이어스 기울기는 w0로 표기했으며 f는 활성홤수를 나타낸다.
· 임계치(threshold): 어떠한 값이 활성화되기 위한 최소값
· 가중치(weight): 선형 경계의 방향성 또는 형태를 나타내는 값
· 바이어스(bias): 선형 경계의 절편을 나타내는 값으로써, 직선의 경우는 y절편으로 표시
· net값: 입력값과 가중치의 곱을 모두 합한 값
· 활성홤수(activation function): 뉴런에서 계산된 net값이 임계치보다 크면 1을 출력하고, 임계치보다 작은 경우에는 0을 출력하는 함수
· 뉴런(neuron): 인공신경망을 구성하는 가장 작은 요소로써, net값에 따라 활성(1) 비활성(0)을 출력
아래 그림은 더 많은 훈련 데이터가 추가됨에 따라 선형 경계를 업데이트하는 퍼셉트론을 보여주는 다이어그램이다.
퍼셉트론으로는 AND, NAND, OR 게이트의 논리회로를 표현할 수 있다.
[AND 게이트]
AND 게이트는 입력이 둘이고 출력이 하나인 대표적인 퍼셉트론 예시이다. 입력값이 모두 1일때 1을 출력한다.
예를들어 (w1, w2, θ)의 값을 (0.5, 0.5, 0.8)이라고 가정하였을때 계산이다.
· (0*0.5) + (0*0.5) = 0.0 < 0.8 -> 0
· (0*0.5) + (1*0.5) = 0.5 < 0.8 -> 0
· (0*0.5) + (0*0.5) = 0.5 < 0.8 -> 0
· (1*0.5) + (1*0.5) = 1.0 > 0.8 -> 1
[NAND 게이트]
AND게이트에 NOT 연산을 한것으로, AND 게이트 결과값의 반대이다.
[OR 게이트]
입력 신호중 하나 이상이 1이면 1이 출력된다.
[단층 퍼셉트론의 한계]
단층 퍼셉트론은 AND, NAND, OR 논리회로를 계산할 수 있지만 XOR 게이트 연산을 할 수 없다. XOR 게이트는 베타적 논리합 이라 불리는 회로이다. 이 뜻은 한쪽이 1일 때만 1을 출력한다.
퍼셉트론 이론은 선형 분류이다. 즉 직선을 이용한 분류는 가능하지만 XOR 게이트와 같은 경우 곡선으로 나눌 수 있기 때문에 비선형 분류이다. 이러한 제약사항을 보완하기 위해 나온것이 다중 (Multi-layer Perceptron)이다.
[참고자료]
· https://en.wikipedia.org/wiki/Perceptron
· https://untitledtblog.tistory.com/27
· https://eehoeskrap.tistory.com/137
· https://excelsior-cjh.tistory.com/169
2020-03-11/ Sungwook Kang / http://sungwookkang.com
인공지능, Artificial Intelligence, 머신러닝, Machine Learning, 딥러닝, Deep Learning, AI, 신경망, 뉴럴 네트워크, 강화학습, 지도학습, 자율학습, Supervised Learning, Unsupervised Learning, Reinforcement Learning, 퍼셉트론, Perceptron, 단층 퍼셉트론, Single-layer perceptron
'SW Engineering > 머신러닝 딥러닝' 카테고리의 다른 글
순전파(Feedforward)와 역전파(Backpropagation) 개념 (1) | 2020.03.15 |
---|---|
다층 퍼셉트론 (Multi-layer Perceptron) (0) | 2020.03.12 |
머신러닝 학습 방법(Supervised, Unsupervised, Reinforcement) (0) | 2020.03.09 |
인공지능 / 머신러닝 / 딥러닝 개념 (0) | 2020.03.08 |
CNN (Convolutional Neural Network) 개념 (0) | 2020.03.07 |