XOR 문제를 신경망으로 풀기
XOR 문제의 정의는 다음과 같다.
x1 | x2 | XOR |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
3개의 뉴런을 이용해서 XOR 문제를 해결하는 과정을 보자. 앞 2개 뉴런의 결과 $y_1$, $y_2$ 가 뒷 뉴런의 입력으로 사용되어 최종 결과 $y_1$, $y_2$ 가 만들게 된다.
계산의 예시를 하나 살펴보자. 일단 입력 값을 넣어 계산한 후, 그 결과를 활성 함수인 sigmoid 함수에 넣어서 $y_1$, $y_2$ 를 구한다. 그리고 $y_1$, $y_2$ 가 다시 뒷 뉴런에 들어가서 계산되고, sigmoid 함수를 거쳐 최종 결과 $y_1$, $y_2$ 를 만든다.
위 그림의 뉴런으로 계산한 최종 결과는 다음과 같다.
x1 x2 | y1 y2 | $\hat{y}$ | 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 |
앞서 처리한 2개의 뉴런은 벡터화를 통해 하나로 합해서 처리할 수 있다.
그럼 W와 b는 저 값 외에는 존재하지 않을까? W와 b를 학습하는 방법이 없을까? 바로 backpropagation을 이용하면 된다.
별도의 출처 표시가 있는 이미지를 제외한 모든 이미지는 강의자료에서 발췌하였음을 밝힙니다.
댓글남기기