오늘은 딥러닝의 시작, 퍼셉트론에 대해서 알아보자.
1. Perceptron (퍼셉트론)
퍼셉트론은 신경망의 기원이 되는 알고리즘이며, 인간의 신경망을 빗대어 표현하였다.
퍼셉트론의 가장 특징은 다수의 신호를 입력받아 하나의 신호로 출력한다.

이때 그림과 같이 가중치를 부여하게 되고 이를 다 더하게 된다. 이때 가중치의 경우 input data의 중요한 순으로 더 큰 값을 부여하게 된다. 퍼셉트론의 wegithed sum은 0과 1사이의 값이 되며 이때 임계값을 넘어서면 1을 출력하고 그렇지 않으면 0을 출력하게 된다.
식을 정리하게 되면 다음과 같다.

퍼셉트론의 경우 AND, OR, NAND의 3가지 논리로 회로를 구현할 수 있다.
첫번째 AND의 경우에는
- X와 Y가 모두 0인 경우 => 0을 출력
- X와 Y 둘 중 하나만 0인 경우 => 0을 출력
- X와 Y 모두다 1인 경우 => 1을 출력
두번째 OR의 경우에는
- X와 Y가 모두 0인 경우 => 0을 출력
- X와 Y가 모두 1인 경우 => 1을 출력
- X와 Y 둘중 1인 경우 => 1을 출력
마지막 NAND의 경우에는
- X와 Y가 모두 0인 경우에는 1을 출력
- X와 Y가 모두 1인 경우에는 0을 출력
- 퍼셉트론의 한계
그러나 퍼셉트론은 XOR(exclusive OR)을 구현할 수 없는 문제점이 있다.
여기서 XOR이란

- X와 Y가 모두 0일 때 => 0을 출력
- X 또는 Y가 1일 때 => 1을 출력
- X 와 Y 모두 1일 때 -> 0을 출력 이다.

OR의 경우 퍼셉트론을 이용하여 선 하나로 분리가 가능하다. 그러나 XOR의 경우에는 선 하나로 분리할 수 없는 경우가 발생한다. 많은 데이터는 XOR로 구성되어 있었지만, 이것을 퍼셉트론을 이용하게 된다면 정교한 예측을 할 수 없게 된다.
이에 대한 해결책으로 multilayer(다층) 퍼셉트론이 등장했고, 다음 그림과 같이 여러개의 선으로 분리가 가능하여 더 정확한 예측을 할 수 있게 되었다.

2. MLP (Multilayer Perceptron)

MLP의 경우 이전의 더 많은 층으로 이루어진 퍼셉트론이다. 기본적으로 3가지 층으로 이루어져있는데, input layer, hidden layer, output layer로 이루어져있다. 또한 input에서 ouput으로 한 방향으로 흘러가는 feedforward 형식을 가진 알고리즘이다.
중간에 있는 hidden layer의 갯수가 늘어날 수록 데이터들을 구분할 수 있는 선들의 갯수가 늘어나고 이로인해 더 정교한 예측을 가능하게 할 수 있다.
<참고자료>
https://www.youtube.com/watch?v=XXBdN7NOij8&list=PLvbUC2Zh5oJvByu9KL82bswYT2IKf0K1M
'DATA > 딥러닝' 카테고리의 다른 글
[딥러닝] - 3. Cost / Gradient Descent (0) | 2023.10.12 |
---|