Perceptron



perceptron이란 가장 간단한 형태의 Neural Network을 말한다.




위와 같은 형태를 가지며, Hidden layer가 존재 하지 않는다.

입력 노드들은 X1~Xn까지 존재하며 각각의 weighted link들과 product 되어 진다.

어떠한 Activation function을 작동 시키는 t가 존재하며, 이러한 t는 threshold의 약자이다.


이것을 정리하면 아래와 같은 수식을 얻을 수 있다.




위 식을 다시 정리 하기위해서, threshold를 표현하면 아래와 같다.


이것을 이용해서 다시 표현하면,



이제 우리는 학습을 통해서 linearly separable한 data에 대해서 구분을 해주는

hyperplane을 찾는 것을 수행 하는 것이 목적이다.






Perceptron Learning Algorithm (PLA) 을 나타내면 아래와 같다.




1) 초기의 weight vector를 결정해 준다. 이것을 통해서 초기의 hyperplane을 생성 한다.

2) 을 예측 한다.

3) 예측된 y값과 실제값을 비교 한다. 아래의 수식에 의해서 값이 다를 경우 weight 값이 보정되고 hyperplane이 이동하게 된다.

실제값은 결국 {1,-1} 사이의 값을 같는다고 하면,

1인데 -1이 나오면 2가 되고

-1인데 1이 나오면 -2 가 된다.

위와 같이 prediction이 정확하지 않는다고 하면, 아래의 방법대로 weight 값을 업데이트 하게 된다.


예측값이 음수인 경우, y=+1 ,y(hat) = -1 ( y-y(hat)) = +2

에러에 대한 보상을 위해서 예측되는 값을 증가 시켜줘야 한다. 

이것을 위해서 양수인 입력 값들에 대해서는 weight 값을 증가 시켜 준다.

음수인 입력 값에 대해서는 weight 값을 낮춰 준다.


예측값이 양수 인 경우, y=-1,y(hat) = + 1 ( y-y(hat)) = -2

에러에 대한 보상을 위해서 예측된 값을 낮춰 준다.

이것을 위해서 양수인 입력 값에 대해서는 weight 값을 낮춰 준다.

음수인 입력 값에 대해서는 weight 값을 증가 시킨다.




실전 문제 풀이

초기 직선의 방정식: w2x2 + w1x1 + w0x0 = 0이라는 직선의 방정식으로 구성된 hyperplane을 생각해 보면


직선의 방정식: 2x1 + x2 = 0  // x2 = -2x1

실제 데이터 vector는 아래와 같다고 가정한다.

j를 의미 한다. 

 i를 의미한다.

 x0

x1 

x2

 1

 1

1

-1 

-1 

 1

-1 

-1 

 1

-1 

-1 

-1 



위 알고리즘에 따라 순차적으로 실행해 보면,


1) y와 y^ 이 동일, weight 수정 없음

2) y = -1 , Y^ =1


위와 같이 weight 값이 조정되어서


수정된 직선의 방정식은 1x1 + 2x2  -1 = 0  




새롭게 수정된 Hyperplane에 의해서 나머지 데이터들은 모두 제대로 prediction 된다.



실제와는 다르지만 아래와 같은 느낌으로 계속 조금씩 이동하면서 Hype-plane을 찾아 간다고 생각하면 된다.







If not linearly separable ?






위와 같은 경우를 XOR 문제라고 하며 linearly separable한 Hyper-plane을 찾을 수 없는 경우이다.


이것을 해결하기 위해서 Hidden Layer라는 것을 위치 시키게 된다.


이제 XOR 문제를 풀어 보면 아래와 같다.



 

 x1

x2 

hyper-plane1 

hyper-plane2 

 -1

-1 

 1

 1

-1

-1 

 -1

-1 



hyper-plane 1: x1-x2+0.5 = 0

hyper-plane 2: x1-x2-0.5 = 0


마지막 activation function의 hyperplane = -[x1+x2+0.5] =0

앞에 -를 붙이는 이유는 (-1,1)이 -1 이게 떄문이다. Hyperplane이 반대로 작용하게 된다.










'AI > Theory' 카테고리의 다른 글

K Nearest Neighbors - Classification  (0) 2015.04.23
Performance Evaluation  (0) 2015.04.19
Classification: Decision Tree  (2) 2015.04.19
Data Type and Data preprocessing  (0) 2015.04.18
Support Vector Machine  (0) 2015.04.17

+ Recent posts