XOR 문제와 해결방법

EUNSU·2022년 1월 16일
0

딥러닝

목록 보기
1/2
post-thumbnail

XOR이란?

두 값이 다르면 1, 같으면 0을 리턴하는 논리 회로이다.

퍼셉트론의 발견 이후 퍼셉트론으로 AND, OR 문제를 해결할 수 있음을 알고 이를 통해 대부분의 문제를 해결할 수 있다고 믿었지만 XOR 문제를 해결할 수 없었다.

기존 분류는 하나의 선으로 분류를 했는데 XOR을 분류하기 위해서는 하나의 선으로는 분류가 불가능했다. 1969년 마빈 민스키가 이를 증명하고 인공지능의 침체기가 찾아왔다.

이를 해결할 방법으로 다층 퍼셉트론을 사용했다.

예시 문제 출처 : 모두를 위한 딥러닝

위 구조처럼 하나의 퍼셉트론이 아닌 여러 퍼셉트론을 통해서 XOR 분류를 해보자.

ex) x1=0, x2=0 일때 XOR은 0이 나와야 한다.

  • 분류기 A
    y1 = sigmoid(5*0 + 5*0 +(-8)) = 0
  • 분류기 B
    y2 = sigmoid(-7*0 + -7*0 +3) = 1
  • 분류기 C
    yhat = sigmoid(0*-11 + 1*-11 + 6) = 0
  • yhat과 실제값 비교
    XOR = 0, yhat = 0 이므로 원하는 결과가 출력

위와 같은 방법으로 다른 경우를 계산하면 다음 표와 같다.

x1x2y1y2yhatXOR
000100
010011
100011
111000

이번 예시에서는 weight 값을 지정하여 문제를 해결했다. 그러나 실제 문제에서는 적절한 weight 값을 바로 지정해줄 수 없다. 그래서 학습을 진행하면서 weight 값을 변경해줘야 하는데 다음 글에서 이를 해결해주는 오차 역전파(backpropagation)에 대해 알아보자.

profile
머신러닝 엔지니어

0개의 댓글