미누에요
[Deep Learning] 다층 퍼셉트론(Multi-Layer Perceptorn), XOR 게이트 표현 본문
다층 퍼셉트론(Multi-Layer Perceptorn)
다층 퍼셉트론은 흔히 MLP라는 명칭으로 많이 불린다.
단층 퍼셉트론(Single-Layer Perceptron)과 다른 점이라면 다층 퍼셉트론(Multi-Layer Perceptron)은 입력층(input layer), 은닉층(hidden layer), 출력층(output layer)로 구성된다.
다층 퍼셉트론에서는 하나 이상의 은닉층(hidden layer)를 사용하여 비선형적인 문제를 해결할 수 있게된다.
각 layer들을 "층" 이라고 하는데, 각 층은 하나의 노드처럼 동작한다.
즉, 입력을 받아 특정 연산을 수행한 후 출력해준다.
위 사진과 같이 각 은닉층은 모든 노드들과 연결되어있다.
이것을 완전 연결(fully-connected)이라 한다.
이렇게 은닉층에서 모든 노드들을 가지고 계산을 하기때문에 복잡하거나 비선형성을 가지는 상황에서도 사용할 수 있게 되는 것이다.
또한 은닉층에서는 활성화 함수(activation function)을 사용하는데, 이 활성화함수를 통해 비선형적인 값도 다룰 수 있다.
위 그림에서 연산 수행 후 f(value)의 형태로 함수를 거쳐 출력하는 것을 볼 수 있다.
이러한 활성화함수들에 관해서 간단히 알아보자.
크게 4가지 함수를 많이 사용하게 된다.
- sigmoid
- Tanh
- ReLU
- LeakyReLU
이 함수를 사용하여 값들을 0과 1에 모아두거나, 음수인 값을 제거하는 등의 변환을 거칠 수 있게된다.
다중 퍼셉트론(Multi-Layer Perceptron)을 이용한 XOR 게이트의 표현
XOR 게이트는 단층 퍼셉트론(Single-Layer Perceptron)으로 나타낼 수 없다고 했었다.
하지만 다층 퍼셉트론(Multi-Layer Perceptron)으로는 XOR 게이트를 나타낼 수 있게된다.
위 사진처럼 은닉층(hidden layer)에 NAND gate와 OR gate를 넣어주는 방식으로 설계하면 XOR gate를 나타낼 수 있다.