3-7 NN(Neural Network)이 아닌 집합계산 원리를 이용한 Perceptron XOR 논리 처리

in #kr6 years ago (edited)

noname05.png

하나의 퍼셉트론으로 XOR 논리 처리가 되지 않는다는 점은 코드 실행을 통해서 확인이 가능하였고 이미 이론적으로도 설명이 가능하였다. 이 믄제를 해결하기 위해서 NN(neural Network) 방식에 의한 체계적인 해법이 이미 제시가 되어 있지만 이 문제를 보는 고정된 관점을 탈피해서 다소 다른 시각으로 XOR 논리를 퍼셉트론을 사용해 계산해 보도록 하자. NN 기법에 의한 해법 이전에 공식적으로 문제 제기를 했다고 하는 Minskt 와 Papert 에 의하면 여러 단의 NN을 사용하면 가능하겠지만 하나의 퍼셉트론으로는 이문제의 해답을 찾을 수 없다고 지적하였으나 이 문제를 풀 수 있는 제대로 된 대안 제시는 없었다.

여러 가지 대안이 있을 수 있으나 그 중의 하나를 알아보도록 하자.

noname01.png

그림에서 3개의 입력 값을 가지는 XOR_1 과 XOR_2 논리를 살펴보자. 이 둘의 합집합을 취한다면 XOR 논리가 됨을 쉽게 알 수 있을 것이다.
그렇다면 3개의 입력 값을 가지는 XOR_1 이나 XOR_2 에 대해서 퍼셉트론 계산이 되는지 다음과 같이 입력 데이터를 준비하여 learning rate를 0.005로 주어 TensorFlow 코드를 실행해 보자.

noname02.png

하니의 퍼셉트론을 사용하는 위 3번째 XOR 계산에서는 4개의 hypothesis 계산 값을 0.5 로 실패한 값을 출력하게 된다.

noname03.png

XOR_1 과 XOR_2 의 계산 결과는 다음과 같다.

noname04.png

이 계산 결과 hypothesis는 다음과 같이 정리된다.

noname06.png

이 hypothesis들을 주어진 구간에서 매스매티카로 3차원 그래픽 처리하여 살펴보기로 하자.

noname05.png

첫 번째는 XOR_1 문제를 두 번째는 XOR_2 문제를 푼 결과이다. 세 번째는 XOR_1 과 XOR_2 의 각각의 결과의 합집합을 그래픽 처리하고 threshold 0.5 에 해당하는 hypothesis 면을 넣었다. (0,1) 과 (1,0) 은 threshold 0.5 평면 위에 위치하고 있으며 (0,0)과 (1,1)은 threshold 0.5 평면 아래에 위치하고 있음을 알 수 있다.

비록 두 번 문제를 풀었다고는 하나 집합 이론에 따라서 논리적으로 합집합을 구했으므로 아무런 문제가 없다. 어차피 머신 러닝 문제는 컴퓨터 코딩을 통해서 계산하므로 if 제어문을 쓴다면 하나의 코드로 통합해서 계산하는 것도 가능하다.

XOR 문제가 마치 엄청나게 어려운 문제인 것처럼 1969년부터 떠들었지만 알고 보면 별것도 아닌 문제임을 알 수 있을 것이다. 이런 방법이나 NN 말고도 선형 형태의 hypothesis 퍼셉트론에 추가로 웨이팅 벡터를 늘려 해결하는 다양한 방법이 있을 수 있다는 점만 지적하자.

아울러 NN이 잘 정립된 기법이긴 하나 실행에 거의 10만회의 학습을 요하는 면도 있어 상당한 컴퓨팅 파워가 필요하기 때문에 라즈베리 파이처럼 작은 컴퓨터에서 상당히 버거운 측면이 있다는 점도 지적해둔다. 많은 사람들이 이러한 문제를 해결함에 있어 NN이 유일한 기법으로 믿고 있을지 모르지만 이 예제에서 보았던 것처럼 얼마든지 다른 효율적인 알고리듬이 있을 수 있는 것이며 다시 말하자면 NN 조차도 머신 러닝 측면에서 보면 알고리듬의 대대적인 개량이 필요할지도 모른다.

Sort:  

이오스 계정이 없다면 마나마인에서 만든 계정생성툴을 사용해보는건 어떨까요?
https://steemit.com/kr/@virus707/2uepul

Coin Marketplace

STEEM 0.29
TRX 0.12
JST 0.032
BTC 62596.14
ETH 3021.48
USDT 1.00
SBD 3.65