02.4 퍼셉트론의 한계

지금까지 살펴본 것처럼 퍼셉트론을 이용하면 AND, NAND, OR의 3가지 논리 회로를 구현할 수 있었습니다. 계속해서 XOR 게이트도 생각해보죠.

2.4.1 도전! XOR 게이트

XOR 게이트는 배타적 논리합이라는 논리 회로입니다. [그림 2-5]와 같이 x1x2 중 한쪽이 1일 때만 1을 출력합니다(‘배타적’이란 자기 외에는 거부한다는 의미죠). 자, 이 XOR 게이트를 퍼셉트론으로 구현하려면 가중치 매개변수 값을 어떻게 설정하면 될까요?

그림 2-5 XOR 게이트의 진리표

그림 2-5

도로시의 직선 긋기 도전 도로시가 바닥에 놓인 하얀 돌(O)과 주황 보석(X)을 직선 하나로 가르려고 쩔쩔매고 있습니다. 토토도 당황스러운 듯 머리를 긁적입니다.

사실 지금까지 본 퍼셉트론으로는 이 XOR 게이트를 구현할 수 없습니다. 왜 AND와 OR는 되고 XOR는 안 될까요? 그림으로 그려보며 시각적으로 설명해보겠습니다.

우선 OR 게이트의 동작을 시각적으로 생각해보죠. OR 게이트는, 예를 들어 가중치 매개변수가 (b, w1, w2) = (-0.5, 1.0, 1.0)일 때 [그림 2-4]의 진리표를 만족합니다. 이때의 퍼셉트론은 [식 2.3]으로 표현됩니다.

*y* = 0 (-0.5 + *x*1 + *x*2 ≤ 0)
*y* = 1 (-0.5 + *x*1 + *x*2 > 0)          [식 2.3]

[식 2.3]의 퍼셉트론은 직선으로 나뉜 두 영역을 만듭니다. 직선으로 나뉜 한쪽 영역은 1을 출력하고 다른 한쪽은 0을 출력합니다. 이를 그려보면 [그림 2-6]처럼 됩니다.

그림 2-6 퍼셉트론의 시각화: 회색 영역은 0을 출력하는 영역이며, 전체 영역은 OR 게이트의 성질을 만족한다.

그림 2-6

토토가 만난 직선 벽 토토가 앞을 가로막는 단단한 직선 벽 앞에서 멍멍 짖고 있습니다. 단층 퍼셉트론은 오직 이런 직선형 한계만을 가질 뿐입니다.

OR 게이트는 (x1, x2) = (0, 0)일 때 0을 출력하고 (0, 1), (1, 0), (1, 1)일 때는 1을 출력합니다. 그림에서는 0을 원(○), 1을 삼각형(△)으로 표시했습니다. OR 게이트를 만들려면 [그림 2-6]의 ○과 △를 직선으로 나눠야 합니다. 실제로 이 그림의 직선은 네 점을 제대로 나누고 있습니다.

그럼 XOR 게이트의 경우는 어떨까요? OR 게이트 때처럼 직선 하나로 ○과 △를 나누는 영역을 만들어낼 수 있을까요?

그림 2-7 ○과 △은 XOR 게이트의 출력을 나타낸다. 직선 하나로 ○과 △을 나누는 영역을 만들 수 있을까?

그림 2-7

[그림 2-7]의 ○과 △를 직선 하나로 나누는 방법은 아무리 생각해봐도 떠오르지 않습니다. 사실 직선 하나로 나누기란 불가능합니다.

2.4.2 선형과 비선형

직선 하나로는 [그림 2-7]의 ○과 △를 나눌 수 없습니다. 하지만 ‘직선’이라는 제약을 없앤다면 가능하죠. 예를 들어 [그림 2-8]처럼 나눌 수 있습니다.

그림 2-8 곡선이라면 ○과 △을 나눌 수 있다.

그림 2-8

지니의 비선형 곡선 마법 지니가 요술봉으로 부드러운 곡선을 허공에 그립니다. 선형을 뛰어넘어 비선형 곡선으로 데이터들이 완벽하게 분할되는 기적이 일어납니다.

퍼셉트론은 직선 하나로 나눈 영역만 표현할 수 있다는 한계가 있습니다. [그림 2-8] 같은 곡선은 표현할 수 없다는 것이죠. 덧붙여서 [그림 2-8]과 같은 곡선의 영역을 비선형 영역, 직선의 영역을 선형 영역이라고 합니다. 선형, 비선형이라는 말은 기계학습 분야에서 자주 쓰이는 용어로, [그림 2-6]과 [그림 2-8] 같은 이미지를 떠올리시면 됩니다.

서브목차