IT Log

다층 퍼셉트론 (Multi Layer Perceptron) 본문

Machine Learning

다층 퍼셉트론 (Multi Layer Perceptron)

newly0513 2019. 5. 15. 17:27
728x90
반응형

다층 퍼셉트론 (Multi Layer Perceptron)

신경망에 기본단위인 퍼셉트론을 2개 이상 활용하여 선형으로 분류할 수 없는 데이터를 구별할 수 있게되었다.

따라서, 단일 퍼셉트론에서 해결하지 못하는 XOR문제를 해결하게 되었다. 아래 그림은 단일 퍼셉트론으로 XOR를 표현할 때에 그림이다.

 


다층 퍼셉트론 구조

 

위와 같이 은닉층(hidden layer)이라고 불리는 단일 퍼셉트론을 하나 더 추가하면 XOR의 문제를 해결할 수 있게 된다. 우선 처음 입력 받은 값을 NAND와 OR로 출력하고, 다시 그 값에 대해서 AND를 실행하면 XOR의 결과와 같은 값을 표현할 수 있게된다. 그림으로 보면 아래와 같다.

 

x1 x2 NAND OR
0 0 1 0
1 0 1 1
0 1 1 1
1 1 0 1

 

NAND OR AND
1 0 0
1 1 1
1 1 1
0 1 0

 

 

 

이렇게 하면 보는 바와 같이 XOR의 결과 값이 나오게 되는데, 단일 퍼셉트론과 차이점은 입력값이 달라진 것이다. 단일 퍼셉트론의 경우 (0, 0), (0, 1), (1, 0), (1, 1)에 입력 값에 의해 (0, 1, 1, 0)이 나오는 반면, MLP는 (1, 0), (1, 1), (1, 1), (0, 1)에 입력 값에 의해 (0, 1, 1, 0)이 나온다. 결과를 좌표로 그려보면 아래와 같다.

 

 

이는 단순하게 보면, MLP도 결국 하나의 직선으로 분류를 한거 같지만 직선이 아닌 한개의 평면으로 나눈 것과 같다. 따라서, 단일 퍼셉트론의 경우 평면에서 직선으로 분류했지만, MLP에서는 퍼셉트론(은닉층)이 추가가 되면서 3차원 공간에서 평면으로 분류가 가능해졌다. 하지만 단일 퍼셉트론과 다르게 은닉층이 추가된 MLP에서는 결과 값이 실제 값과 다를 경우 가중치와 바이어스를 학습할 방법이 없었고, 이를 해결할 방법으로 오류역전파(Backpropagation)라는 알고리즘이 나오게 되었다.


XOR 예제 (with R)

XOR= function(x1, x2){
  s1 = NAND(x1,x2)
  s2 = OR(x1,x2)
  result = AND(s1,s2)
  print(result)
  }

 

728x90
반응형

'Machine Learning' 카테고리의 다른 글

CNN (Convolutional Neural Network)  (0) 2019.05.15
오차역전파 (Backpropagation)  (0) 2019.05.15
활성화 함수 (activation function)  (0) 2019.05.15
경사하강법 (Gradient decent)  (0) 2019.05.15
퍼셉트론 (Perceptrons)  (0) 2019.05.15
Comments