본 글은 「밑바닥부터 시작하는 딥러닝」 책을 공부하고 정리한 내용입니다.
퍼셉트론이란?
퍼셉트론은 미국의 신경생물학자인 프랑크 로젠블라트가 1957년에 고안했습니다.
퍼셉트론은 초기 형태의 인공 신경망으로, 다수의 입력으로부터 하나의 출력을 내보내는 알고리즘 입니다.
퍼셉트론 알고리즘의 구조는 크게 입력, 가중치, 출력으로 나뉘어져 있습니다. 다음 사진은 n개의 입력을 받은 퍼셉트론의 예 입니다.
x는 입력 신호, w는 가중치, y는 출력 신호입니다. 그림에 나와있는 원은 뉴런 혹은 노드라고 부릅니다.
입력 신호가 뉴런에 보내질 땐 각각의 가중치 w가 곱해집니다. 각 입력 신호와 그에 해당되는 가중치의 곱의 전체 합이
임계값(Threshold, θ)을 넘으면 1을 출력하고 그렇지 않으면 0을 출력합니다.
이상을 수식으로 나타내면 다음과 같습니다.
가중치는 각 입력 신호가 결과에 주는 영향력을 조절하는 요소로 작용합니다. 즉, 가중치가 클수록 해당 신호가 그만큼 더 중요함을 뜻 합니다.
이러한 논리를 통해 저희는 게이트 연산을 할 수 있습니다. 게이트 연산에는 AND게이트, OR게이트, NAND게이트, XOR게이트가 있습니다.
퍼셉트론 종류에는 단층 퍼셉트론과 다층 퍼셉트론이 존재합니다. 지금껏 설명한 내용은 단층 퍼셉트론에 관한 내용이었습니다.
단층 퍼셉트론은 AND, OR, NAND게이트 연산이 가능하지만 XOR게이트 연산이 불가하다는 단점이 있습니다. 다층 퍼셉트론을 이용해 XOR게이트 연산을 할 수 있습니다.
AND게이트
x_1 | x_2 | y |
0 | 0 | 0 |
1 | 0 | 0 |
0 | 1 | 0 |
1 | 1 | 1 |
AND 게이트 연산을 나타내기 위해선 가중치 값과 임계치 값을 어떻게 해야 할까요??
(w1,w2,θ)
=(1, 1, 1), (0.5, 0.5, 0.5), ... 모두 성립합니다.
각각의 값들(w1,w2,θ)은 위에 나와있었던 수식에 대입하면 됩니다! 다른 연산도 해볼까요?
NAND게이트 (Not AND)
x_1 | x_2 | y |
0 | 0 | 1 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 0 |
NAND게이트는 AND의 반대니까 가중치값과 임계값에 마이너스(-)를 붙여주면 되겠습니다.
OR게이트
x_1 | x_2 | y |
0 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 1 |
OR연산은 각각의 가중치값이 임계값보다 작아야하지만 두 가중치값을 합했을 때 임계값보다 크면 OR연산을 만족합니다.
(0.5,0.6,1), (2,2,3), ...
퍼셉트론 수식을 다르게 표현할 수도 있습니다.
↓
θ를 -b로 치환해주고 좌변으로 넘겨주면 다음과 같은 수식이 되는데요. 여기서 b는 편향(bias)이라 합니다.
이제 XOR게이트 연산을 진행하려 합니다. 먼저 왜 XOR게이트 연산만 다층 퍼셉트론으로 구현해야 하는지 설명 드리겠습니다.
위 그림은 퍼셉트론을 시각화한 것입니다. 왼쪽 상단부터 오른쪽으로 AND, OR, NAND, XOR게이트의 입니다.
AND, OR, NAND 게이트 연산은 모두 하나의 직선으로 영역을 나눌 수 있는데요. XOR은 곡선이거나 직선이 2개 여야만 흰점, 검은점 영역을 나눌 수 있습니다.
XOR게이트를 곡선으로 나타낸다면 이렇게도 표현할 수 있을 것 입니다. 이러한 곡선의 영역을 비선형 영역, 직선의 영역을 선형 영역이라고합니다.
이제 어떻게 다층 퍼셉트론으로 XOR게이트를 나타낼 수 있는 지 설명드리겠습니다.
XOR게이트는 다층 퍼셉트론으로 구현할 수 있는 (AND, OR, NAND) 게이트를 조합하여 구현할 수 있습니다.
한 가지 방법만 있는 것은 아닌데요.
4개의 NAND를 사용, 5개의 NOR를 사용, AND/NAND/OR 게이트를 한 번만 사용하는 방법 등이 있습니다.
AND, OR, NAND 게이트를 한 번씩만 사용하는 조합이 제일 깔끔한 것 같습니다.
위에 보이는 그림처럼 입력층-출력층 구조가 아닌 입력층-은닉층-출력층으로 나와있는데 이것을 다층 퍼셉트론이라고 합니다.
1-layer층이 은닉층이고, 2-layer층이 출력층으로 보시면 될 것 같습니다.
지금까지 퍼셉트론에 대해 알아봤는데요. 여담으로는 NAND게이트 조합만으로 컴퓨터를 만들 수 있다고 하네요!
감사합니다.
출처: https://wikidocs.net/24958, 「밑바닥부터 시작하는 딥러닝」(한빛미디어)
XOR게이트 사진 출처:
'AI > Deep Learning' 카테고리의 다른 글
합성곱신경망, CNN(Convolutional neural network) (0) | 2023.07.12 |
---|---|
신경망 학습 방법 (1) | 2022.09.21 |
신경망, 인간의 두뇌 (0) | 2022.09.02 |