두 값이 다르면 1, 같으면 0을 리턴하는 논리 회로이다.
퍼셉트론의 발견 이후 퍼셉트론으로 AND, OR 문제를 해결할 수 있음을 알고 이를 통해 대부분의 문제를 해결할 수 있다고 믿었지만 XOR 문제를 해결할 수 없었다.
기존 분류는 하나의 선으로 분류를 했는데 XOR을 분류하기 위해서는 하나의 선으로는 분류가 불가능했다. 1969년 마빈 민스키가 이를 증명하고 인공지능의 침체기가 찾아왔다.
이를 해결할 방법으로 다층 퍼셉트론을 사용했다.
예시 문제 출처 : 모두를 위한 딥러닝
위 구조처럼 하나의 퍼셉트론이 아닌 여러 퍼셉트론을 통해서 XOR 분류를 해보자.
ex) x1=0, x2=0 일때 XOR은 0이 나와야 한다.
위와 같은 방법으로 다른 경우를 계산하면 다음 표와 같다.
x1 | x2 | y1 | y2 | yhat | XOR |
---|---|---|---|---|---|
0 | 0 | 0 | 1 | 0 | 0 |
0 | 1 | 0 | 0 | 1 | 1 |
1 | 0 | 0 | 0 | 1 | 1 |
1 | 1 | 1 | 0 | 0 | 0 |
이번 예시에서는 weight 값을 지정하여 문제를 해결했다. 그러나 실제 문제에서는 적절한 weight 값을 바로 지정해줄 수 없다. 그래서 학습을 진행하면서 weight 값을 변경해줘야 하는데 다음 글에서 이를 해결해주는 오차 역전파(backpropagation)에 대해 알아보자.