3.2 XOR 문제와 다층 퍼셉트론

유명곤·2026년 9월 27일

앞 글에서는 단층 퍼셉트론이 두 입력을 직선 하나로 구분한다는 한계를 살펴보았다. 다층 퍼셉트론은 출력 전에 입력을 다른 값으로 바꾸는 계산을 추가한다. 이 중간 계산이 분류를 어떻게 가능하게 하는지 XOR 문제로 살펴본다.

XOR를 직선 하나로 구분할 수 없는 이유

배타적 논리합(Exclusive OR, XOR)은 두 입력이 서로 다르면 1, 같으면 0을 출력하는 연산이다. 입력이 0 또는 1일 때 (0,1)(0,1)과 (1,0)(1,0)은 1, (0,0)(0,0)과 (1,1)(1,1)은 0으로 분류해야 한다.

이 네 점을 평면에 놓으면 같은 출력의 점들이 정사각형의 대각선 양 끝에 있다. 어떤 직선을 그어도 두 범주의 점들을 서로 반대쪽으로 완전히 나눌 수 없다. 두 입력을 직선 하나로 구분할 수 있는 성질을 선형 분리 가능성(Linear separability)이라고 하며, XOR는 이 조건을 만족하지 않는다.

교재의 단층 모델은 계단 함수 대신 시그모이드 함수(Sigmoid function)를 사용해 가중합을 0과 1 사이의 값으로 바꾼다. 하지만 출력을 0.5 기준으로 나눌 때의 경계는 여전히 w1x1+w2x2+b=0w_1x_1+w_2x_2+b=0이다. 출력값을 부드럽게 바꾸더라도 직선 하나로 구분한다는 한계는 그대로 남는다.

은닉층이 입력을 바꾸는 방법

다층 퍼셉트론(Multilayer perceptron, MLP)은 입력층과 출력층 사이에 은닉층(Hidden layer)을 둔 신경망이다. 은닉층은 입력으로부터 중간값을 계산하고, 출력층은 그 중간값을 받아 최종 결과를 결정한다. 원래 입력에서는 나누기 어려웠던 범주도, 중간값으로 바뀐 공간에서는 나눌 수 있다.

이때 은닉층의 비선형 활성화 함수가 중요하다. 가중치를 곱하고 편향을 더하는 계산만 반복하면, 전체 계산을 다시 하나의 가중합과 편향으로 묶을 수 있다. 따라서 층 사이에 비선형 변환이 없다면 층을 늘려도 XOR 문제의 한계를 벗어나지 못한다.

은닉층의 두 뉴런을 직접 구성하면 이 역할을 확인할 수 있다. 첫 뉴런은 둘 중 하나라도 1인지, 둘째 뉴런은 둘 다 1인 경우가 아닌지를 판단한다. 두 조건을 모두 만족하면 두 입력이 서로 다르다는 뜻이므로 XOR가 된다.

계단 함수 f(t)f(t)를 t≥0t\geq0이면 1, 그렇지 않으면 0으로 정의하면, 은닉층의 출력 h1,h2h_1,h_2와 최종 출력 yy를 다음처럼 정할 수 있다.

h1=f(x1+x2−0.5)h2=f(−x1−x2+1.5)y=f(h1+h2−1.5)\begin{aligned} h_1 &= f(x_1+x_2-0.5) \\ h_2 &= f(-x_1-x_2+1.5) \\ y &= f(h_1+h_2-1.5) \end{aligned}
x1x_1x2x_2h1h_1h2h_2yy
00010
01111
10111
11100

원래 출력이 1이어야 하는 두 입력은 은닉층을 거치며 모두 (1,1)(1,1)로 바뀐다. 출력이 0이어야 하는 입력은 (0,1)(0,1)과 (1,0)(1,0)이 된다. 이제 출력층은 h1+h2=1.5h_1+h_2=1.5라는 직선으로 두 범주를 나눌 수 있다. 은닉층이 출력층에서 구분하기 좋은 중간값을 만든 것이다.

표현할 수 있는 구조와 학습의 구분

위 예시의 가중치와 편향은 동작을 설명하기 위해 직접 정한 값이다. 은닉층 하나에 뉴런 두 개만으로도 XOR를 표현할 수 있음을 보여주지만, 데이터로 그 값을 학습한 결과는 아니다.

교재는 2 → 10 → 10 → 10 → 1 구조에서 각 가중합 뒤에 시그모이드 함수를 두고, 학습으로 가중치와 편향을 조정한다. 은닉층 세 개는 교재에서 선택한 구조이며 XOR를 풀기 위한 최소 조건은 아니다. 또한 교재에서 네 입력을 모두 맞힌 결과는 학습에 사용한 네 입력에 대한 평가이다.

모델이 답을 표현할 수 있어야 학습으로 그 답을 찾을 가능성도 생긴다. 다층 구조를 갖췄다는 사실만으로 어떤 초기값과 학습 설정에서도 반드시 성공하는 것은 아니다.

참고자료

profile
Werde, der du bist!

0개의 댓글