앞 글에서는 단층 퍼셉트론이 두 입력을 직선 하나로 구분한다는 한계를 살펴보았다. 다층 퍼셉트론은 출력 전에 입력을 다른 값으로 바꾸는 계산을 추가한다. 이 중간 계산이 분류를 어떻게 가능하게 하는지 XOR 문제로 살펴본다.
배타적 논리합(Exclusive OR, XOR)은 두 입력이 서로 다르면 1, 같으면 0을 출력하는 연산이다. 입력이 0 또는 1일 때 과 은 1, 과 은 0으로 분류해야 한다.
이 네 점을 평면에 놓으면 같은 출력의 점들이 정사각형의 대각선 양 끝에 있다. 어떤 직선을 그어도 두 범주의 점들을 서로 반대쪽으로 완전히 나눌 수 없다. 두 입력을 직선 하나로 구분할 수 있는 성질을 선형 분리 가능성(Linear separability)이라고 하며, XOR는 이 조건을 만족하지 않는다.
교재의 단층 모델은 계단 함수 대신 시그모이드 함수(Sigmoid function)를 사용해 가중합을 0과 1 사이의 값으로 바꾼다. 하지만 출력을 0.5 기준으로 나눌 때의 경계는 여전히 이다. 출력값을 부드럽게 바꾸더라도 직선 하나로 구분한다는 한계는 그대로 남는다.
다층 퍼셉트론(Multilayer perceptron, MLP)은 입력층과 출력층 사이에 은닉층(Hidden layer)을 둔 신경망이다. 은닉층은 입력으로부터 중간값을 계산하고, 출력층은 그 중간값을 받아 최종 결과를 결정한다. 원래 입력에서는 나누기 어려웠던 범주도, 중간값으로 바뀐 공간에서는 나눌 수 있다.
이때 은닉층의 비선형 활성화 함수가 중요하다. 가중치를 곱하고 편향을 더하는 계산만 반복하면, 전체 계산을 다시 하나의 가중합과 편향으로 묶을 수 있다. 따라서 층 사이에 비선형 변환이 없다면 층을 늘려도 XOR 문제의 한계를 벗어나지 못한다.
은닉층의 두 뉴런을 직접 구성하면 이 역할을 확인할 수 있다. 첫 뉴런은 둘 중 하나라도 1인지, 둘째 뉴런은 둘 다 1인 경우가 아닌지를 판단한다. 두 조건을 모두 만족하면 두 입력이 서로 다르다는 뜻이므로 XOR가 된다.
계단 함수 를 이면 1, 그렇지 않으면 0으로 정의하면, 은닉층의 출력 와 최종 출력 를 다음처럼 정할 수 있다.
| 0 | 0 | 0 | 1 | 0 |
| 0 | 1 | 1 | 1 | 1 |
| 1 | 0 | 1 | 1 | 1 |
| 1 | 1 | 1 | 0 | 0 |
원래 출력이 1이어야 하는 두 입력은 은닉층을 거치며 모두 로 바뀐다. 출력이 0이어야 하는 입력은 과 이 된다. 이제 출력층은 라는 직선으로 두 범주를 나눌 수 있다. 은닉층이 출력층에서 구분하기 좋은 중간값을 만든 것이다.
위 예시의 가중치와 편향은 동작을 설명하기 위해 직접 정한 값이다. 은닉층 하나에 뉴런 두 개만으로도 XOR를 표현할 수 있음을 보여주지만, 데이터로 그 값을 학습한 결과는 아니다.
교재는 2 → 10 → 10 → 10 → 1 구조에서 각 가중합 뒤에 시그모이드 함수를 두고, 학습으로 가중치와 편향을 조정한다. 은닉층 세 개는 교재에서 선택한 구조이며 XOR를 풀기 위한 최소 조건은 아니다. 또한 교재에서 네 입력을 모두 맞힌 결과는 학습에 사용한 네 입력에 대한 평가이다.
모델이 답을 표현할 수 있어야 학습으로 그 답을 찾을 가능성도 생긴다. 다층 구조를 갖췄다는 사실만으로 어떤 초기값과 학습 설정에서도 반드시 성공하는 것은 아니다.