인공지능과 수학의 역사
본문1958년 로젠블랫은 사람의 뇌세포를 흉내 낸 '퍼셉트론'을 발표했고, 신문들은 곧 생각하는 기계가 나올 것이라고 떠들썩했다. 그런데 10여 년 뒤 민스키와 패퍼트는 퍼셉트론이 '둘 중 하나만 참'이라는 아주 간단한 판단조차 할 수 없음을 증명했고, 인공지능 연구는 한동안 겨울을 맞았다. 인공 뉴런 하나는 무엇을 할 수 있고, 무엇을 할 수 없을까?
1.2.1퍼셉트론
신경 세포는 여러 신호를 받아 그 합이 어떤 기준을 넘으면 신호를 내보낸다. 퍼셉트론은 이를 흉내 내어, 입력 \(x_1, x_2\)에 가중치 \(w_1, w_2\)를 곱해 더하고 편향 \(b\)를 더한 값이 0보다 크면 1, 아니면 0을 출력한다.
\[y = \begin{cases} 1 & (w_1x_1 + w_2x_2 + b > 0) \\ 0 & (w_1x_1 + w_2x_2 + b \le 0) \end{cases}\] 좌표평면에서 직선 \(w_1x_1 + w_2x_2 + b = 0\)의 한쪽은 1, 다른 쪽은 0으로 판정한다.
그림 1에서 목표를 AND로 두고 \(w_1 = w_2 = 1\), \(b = -1.5\)로 맞추면 \((1, 1)\)에서만 1이 나와 네 점을 모두 맞힌다. \(b\)를 \(-0.5\)로 바꾸면 OR이 된다. 퍼셉트론의 학습은 틀린 점이 있을 때마다 가중치를 조금씩 고쳐 이런 직선을 찾아가는 과정이다.
1.2.2XOR 문제와 다층 신경망
XOR은 두 입력 가운데 하나만 1일 때 1을 낸다. 1이어야 할 \((1, 0)\), \((0, 1)\)은 대각선으로 마주 보고, 0이어야 할 \((0, 0)\), \((1, 1)\)도 대각선으로 마주 본다. 그래서 어떤 직선을 그어도 두 무리를 한쪽씩으로 가를 수 없다. 그림 1에서 목표를 XOR로 바꾸고 가중치를 아무리 바꾸어도 4개를 모두 맞힐 수 없다.1
해결책은 뉴런을 여러 층으로 쌓는 것이었다. OR 뉴런과 NAND 뉴런의 출력을 AND 뉴런에 넣으면 XOR이 된다. 1980년대에 층이 여러 개인 신경망의 가중치를 한꺼번에 학습하는 방법(역전파)이 널리 알려지며 연구가 되살아났고, 2010년대에 많은 자료와 빠른 계산이 더해져 지금의 딥러닝이 되었다.
1.2.3예제 풀이
퍼셉트론 \(w_1 = 1\), \(w_2 = 1\), \(b = -0.5\)에 네 입력을 넣은 출력을 구하고, 어떤 논리 연산인지 말하여라. 또 \(w_1 = w_2 = -1\), \(b = 1.5\)는 어떤 연산인가?
첫 퍼셉트론에서 \(x_1 + x_2 - 0.5\)는 \((0, 0)\)이면 \(-0.5\), \((1, 0)\)과 \((0, 1)\)이면 \(0.5\), \((1, 1)\)이면 \(1.5\)이다. 출력은 0, 1, 1, 1이므로 OR이다.
둘째 퍼셉트론에서 \(-x_1 - x_2 + 1.5\)는 차례로 \(1.5, 0.5, 0.5, -0.5\)이므로 출력은 1, 1, 1, 0이다. 두 입력이 모두 1일 때만 0이므로 NAND이다. 이 두 출력을 AND 퍼셉트론에 넣으면 \((0, 0)\)은 \((0, 1) \to 0\), \((1, 0)\)은 \((1, 1) \to 1\), \((1, 1)\)은 \((1, 0) \to 0\)이 되어 XOR이 완성된다. 층을 하나 더한 것만으로 직선 하나의 한계를 넘은 것이다.
아래 탐구 카드에서 인공지능과 수학의 역사를 시간 순서로 정리하고, 인공 뉴런 하나의 한계를 직접 확인해 보자.
- 직선 하나(공간에서는 평면 하나)로 두 무리를 가를 수 있는 경우를 선형 분리 가능하다고 한다. 퍼셉트론 하나는 선형 분리 가능한 문제만 풀 수 있다.
퍼셉트론은 입력에 가중치를 곱해 더한 값이 0보다 크면 1을 내는 인공 뉴런으로, 좌표평면에서 직선 하나로 두 무리를 가른다. AND와 OR은 가를 수 있지만 XOR은 직선 하나로 가를 수 없다. 그래서 처음 질문의 답은 '하나로는 안 된다'이며, 뉴런을 여러 층으로 쌓아야 '둘 중 하나만 참'을 판단할 수 있고, 이 발견이 오늘날 딥러닝의 출발점이 되었다.