인공지능의 수학
기계는 어떻게 배우는가
모든 인공지능을 떠받치는 역전파
글을 써 주는 대화형 인공지능, 문장 한 줄을 그림으로 바꾸는 생성 모델, 스스로 길을 찾아 달리는 자율주행 시스템. 겉모습은 전혀 달라 보이지만, 이 모든 것의 밑바닥에서는 똑같은 절차 하나가 돌아간다.
이름은 다소 낯설다. 역전파(backpropagation, 오차 역전파). 따져 보면 중학교 수학에서 크게 벗어나지 않는 단순한 아이디어인데, 바로 이것이 수십억 개의 내부 손잡이를 가진 기계가 스스로 배우도록 만드는 비결이다.
물리학에는 세상의 운동을 떠받치는 몇 개의 기본 법칙이 있다. 사과가 떨어지는 것도, 행성이 도는 것도 결국 같은 원리로 설명된다. 인공지능에도 그런 자리에 놓이는 원리가 하나 있다. 학습이라는 거의 모든 작업이 이 한 가지 절차 위에서 이루어진다는 점에서, 역전파는 인공지능 분야의 가장 근본적인 수학 법칙이라 불러도 지나치지 않다.
흥미로운 사실은, 이 아이디어가 처음 세상에 나왔을 때 학계의 거장에게 보기 좋게 거절당했다는 점이다. 한 대학원생이 이 방법을 들고 찾아갔지만 단칼에 외면받았다. 그 후로도 한참을 무시당하다가, 1980년대에 자율주행 자동차를 학습시키고, 1990년대에 은행 수표의 손글씨 숫자를 읽어 내고, 2010년대 초에 이미지 인식의 정확도를 단숨에 끌어올리면서 비로소 진가를 인정받았다. 그 한복판에 놓인 단순한 절차가 무엇인지, 그리고 왜 그렇게 오래 의심받았는지를 이 글에서 차근차근 풀어 본다.
01 — 출발점기계가 “배운다”는 것은 무슨 뜻인가
사람이 무언가를 배울 때를 떠올려 보자. 자전거를 처음 탈 때 우리는 넘어지고, 핸들을 너무 꺾었다는 것을 느끼고, 다음번에는 덜 꺾는다. 틀린 정도를 감지하고, 그 신호에 맞춰 몸의 움직임을 조금씩 고친다. 기계 학습도 본질은 같다. 모델이 답을 한 번 내놓고, 그 답이 정답에서 얼마나 벗어났는지를 측정한 다음, 다음번엔 덜 틀리도록 내부 설정을 조정한다.
문제는 그 “내부 설정”의 규모다. 오늘날의 대규모 언어 모델은 수십억에서 수천억 개에 이르는 조절 가능한 값을 가지고 있다. 이 값들을 보통 파라미터(parameter, 매개변수) 또는 가중치(weight)라고 부른다. 학습이란 결국 이 막대한 수의 손잡이를 정답을 잘 맞히는 방향으로 미세하게 돌리는 일이다.
여기서 진짜 어려운 질문이 등장한다. 손잡이가 수십억 개인데, 어느 손잡이를, 어느 방향으로, 얼마나 돌려야 답이 좋아지는가? 무작정 하나씩 돌려 보며 결과를 확인하는 방식으로는 평생을 들여도 끝나지 않는다. 역전파는 바로 이 질문에 단번에 답을 주는 절차다.
02 — 가장 작은 부품인공 신경망의 뉴런은 사실 직선 하나다
거대한 인공지능을 이해하려면 가장 작은 부품에서 출발하는 편이 빠르다. 신경망을 이루는 기본 단위를 뉴런(neuron)이라 부르는데, 이름이 거창할 뿐 하는 일은 놀라울 만큼 단순하다. 입력값을 받아 학습된 가중치를 곱하고, 거기에 보정값 하나를 더해 출력을 만든다. 이 보정값을 편향(bias, 치우침)이라 한다.
그렇다. 신경망의 뉴런 하나는 우리가 학창 시절에 그렸던 직선의 방정식과 다를 바 없다. 가중치는 직선의 기울기이고, 편향은 직선이 위아래로 얼마나 올라가 있는지를 정한다. 거대한 인공지능이라고 해서 별난 마법이 들어 있는 것이 아니라, 이렇게 단순한 직선 같은 부품을 수십억 개 쌓아 올린 것에 가깝다. 입력이 많아지고 가중치가 늘어나면서 더 복잡한 문제를 풀 수 있게 될 뿐이다.
뉴런을 오디오 믹서의 슬라이드 손잡이 하나라고 생각하면 쉽다. 들어온 소리(입력)에 손잡이를 올린 만큼(가중치) 음량을 키우고, 기본 볼륨(편향)을 살짝 얹어 내보낸다. 손잡이 하나로는 단순한 조절밖에 못 하지만, 수백 개를 늘어놓은 거대한 믹싱 콘솔이 되면 오케스트라 전체를 빚어낼 수 있다. 인공지능의 학습이란, 이 무수한 손잡이를 어떤 값으로 맞춰야 원하는 소리가 나는지를 스스로 찾아내는 과정이다.
03 — 확신으로 바꾸기숫자를 확률로 만드는 소프트맥스
구체적인 예가 있으면 이해가 빠르다. 작은 모델 하나를 상상해 보자. 어떤 지점의 위치 정보를 넣으면 그곳이 “파리냐, 마드리드냐, 베를린이냐”를 알아맞히는 모델이다. 도시가 셋이므로 뉴런도 셋이고, 각 뉴런은 자기가 맡은 도시에 대한 점수 하나를 내놓는다.
그런데 뉴런이 뱉는 점수는 그냥 임의의 숫자다. 어떤 것은 음수, 어떤 것은 큰 양수일 수 있다. 우리가 원하는 답은 “이곳이 파리일 확률 몇 퍼센트”처럼 0과 1 사이의 확률이고, 세 도시의 확률을 모두 더하면 정확히 1이 되어야 한다. 날것의 점수를 이런 확률 분포로 바꿔 주는 장치가 소프트맥스(softmax) 함수다.
소프트맥스의 동작은 두 문장으로 요약된다. 첫째, 점수가 큰 쪽일수록 확률을 훨씬 더 키워 준다. 둘째, 그렇다고 가장 큰 하나가 전부를 가져가지는 않는다. 이름에 들어간 “소프트(soft, 부드러운)”가 바로 이 점을 가리킨다. 무조건 최댓값만 고르는 매정한 방식이 아니라, 큰 값에 무게를 실어 주되 나머지에도 약간의 몫을 남겨 두는 부드러운 선택이다.
이 글에서 다루는 수학 가운데 소프트맥스가 가장 까다로운 축에 든다. 그러나 다행히, 뒤에서 보겠지만, 학습에 필요한 형태로 정리하면 이 복잡한 식이 거짓말처럼 단순해진다.
04 — 틀린 정도 재기오차를 숫자 하나로 — 손실 함수
고치려면 먼저 측정해야 한다. 모델이 얼마나 틀렸는지를 숫자 하나로 환산하는 자가 손실 함수(loss function)다. 오늘날 분류 문제에서 널리 쓰이는 것이 교차 엔트로피 손실(cross-entropy loss)인데, 핵심만 떼어 내면 규칙은 한 줄이다. 정답에 매긴 확률에 음(−)의 로그를 취한다.
숫자로 느껴 보자. 정답이 “파리”인데 모델이 파리일 확률을 100%로 봤다면 손실은 0이다. 완벽하니 벌점이 없다. 반대로 파리일 확률을 8.6%로밖에 보지 못했다면 손실은 약 2.45로 커진다. 확률을 더 낮게 줄수록 벌점은 가속도가 붙어 폭발적으로 늘어난다. 이렇게 “정답을 얼마나 확신했는가”를 벌점으로 환산해 두면, 이제 우리가 할 일은 분명해진다. 가중치와 편향을 조정해서 이 손실을 최대한 줄이는 것이다.
경마장에서 돈을 거는 상황을 떠올려 보자. 실제로 이긴 말에 전 재산을 걸었다면 손해는 없다. 그런데 이긴 말에 푼돈만 걸고 다른 말에 크게 걸었다면, 틀린 확신이 클수록 잃는 돈이 눈덩이처럼 불어난다. 교차 엔트로피 손실은 정확히 이런 벌점이다. “정답을 향한 확신이 부족할수록 가혹하게 벌한다.” 모델은 이 벌점을 줄이려 애쓰는 과정에서 점점 더 옳은 쪽에 확신을 싣는 법을 배운다.
05 — 막다른 길손잡이를 하나씩 돌려 보는 방법은 왜 통하지 않는가
가장 단순한 발상은 이렇다. 손잡이 하나를 아주 조금 돌려 보고, 손실이 줄었는지 늘었는지 확인한다. 줄었다면 그 방향이 옳은 것이다. 실제로 이 방법으로 손실이 줄어드는 방향을 “대략” 알아낼 수는 있다.
문제는 비용이다. 손잡이 하나의 영향을 알아내려면 모델 전체를 다시 한 번 계산해야 한다. 손잡이가 여섯 개라면 여섯 번, 백만 개라면 백만 번, 수십억 개라면 수십억 번을 다시 계산해야 한다. 게다가 “조금”의 크기를 미리 정해 둬야 해서 정밀도까지 떨어진다. 현실의 거대한 모델에서 이 방식은 사실상 불가능하다.
여기서 역전파가 등장한다. 손잡이를 일일이 흔들어 보지 않고도, 한 번의 계산으로 모든 손잡이가 손실에 미치는 영향을 정확히 구해 내는 방법이다. 비결은 의외로 고등학교 미적분에 등장하는 도구 하나, 바로 연쇄 법칙(chain rule)이다.
06 — 핵심 아이디어연쇄 법칙 — 영향은 곱셈으로 이어진다
연쇄 법칙의 직관은 톱니바퀴를 떠올리면 단번에 잡힌다. 기어 두 개가 맞물려 있다고 하자. 첫 번째 기어를 한 칸 돌리면 중간 기어가 두 칸 돈다. 그 중간 기어가 한 칸 돌면 마지막 기어는 네 칸 돈다. 그렇다면 첫 번째 기어를 한 칸 돌릴 때 마지막 기어는 몇 칸 돌까?
답은 단순한 곱셈이다. 2 × 4 = 8. 첫 기어를 한 칸 돌리면 마지막 기어는 여덟 칸 돈다. 각 단계의 “돌아가는 비율”을 차례로 곱하기만 하면 처음과 끝 사이의 전체 비율이 나온다. 이것이 연쇄 법칙의 전부다.
신경망도 똑같은 기어 열차다. 입력이 뉴런을 지나 점수가 되고, 점수가 소프트맥스를 지나 확률이 되고, 확률이 손실로 환산된다. 각 단계가 “바로 앞 값이 조금 변할 때 자기 값이 얼마나 변하는가”라는 비율을 가진다. 이 비율들을 끝에서부터 차례로 곱해 나가면, 맨 앞에 있는 가중치 하나가 맨 끝의 손실에 미치는 영향을 한 번에 구할 수 있다.
역전파라는 이름은 여기서 나왔다. 영향을 계산하는 순서가 출력 쪽에서 입력 쪽으로, 즉 신호가 흐른 방향과 거꾸로(back) 거슬러 가기 때문이다. 손실에서 출발해 “이 오차에 각 층이 얼마나 기여했는가”를 한 층씩 뒤로 전파(propagation)하며 따져 든다.
택배가 늦게 도착한 상황을 생각해 보자. 책임을 가리려면 배송의 마지막 단계부터 거꾸로 거슬러 올라간다. 최종 배달이 몇 분 늦었고, 그 단계는 분류 창고의 지연에서 비롯했고, 그 지연은 다시 출고 단계의 문제에서 시작됐다. 각 단계가 전체 지연에 “얼마나” 기여했는지를 끝에서부터 되짚어 가는 것 — 역전파가 신경망에서 하는 일이 정확히 이것이다. 오차라는 결과를 들고, 책임의 몫을 각 가중치에 거꾸로 분배한다.
07 — 거짓말처럼 단순한 결과복잡한 식이 한순간에 무너지다
이제 연쇄 법칙을 신경망에 적용해 보자. 앞서 소프트맥스가 가장 까다롭다고 했는데, 학습에 필요한 형태로 정리하는 순간 놀라운 일이 벌어진다. 교차 엔트로피 손실의 로그와 소프트맥스의 지수가 서로 정확히 상쇄되어, 점수에 대한 손실의 변화 비율이 한 줄로 줄어든다.
여기서 “정답표”는 정답 자리만 1이고 나머지는 0인 표를 말한다. 이를 원-핫 인코딩(one-hot encoding)이라 부른다. 예컨대 정답이 파리라면 정답표는 (파리=1, 마드리드=0, 베를린=0)이다. 모델이 (파리=0.09, 마드리드=0.91, 베를린=0.00)으로 잘못 예측했다면, 두 표를 빼는 것만으로 각 뉴런이 어느 방향으로 틀렸는지가 즉시 드러난다.
이 차이가 양수면 “그 뉴런의 점수를 키울수록 손실이 늘어난다”는 뜻이고, 음수면 “키울수록 손실이 줄어든다”는 뜻이다. 파리일 확률을 너무 낮게 본 위 예시에서 파리 뉴런의 차이는 0.09 − 1 = −0.91. 큰 음수다. 파리 뉴런의 점수를 올리면 손실이 빠르게 줄어든다는 신호다. 직관적으로도 당연한 결론이다. 정답을 향한 확신이 모자라니, 그 확신을 키우라는 것이다.
가중치까지 책임을 잇기 — 입력의 크기가 갱신폭을 정한다
점수에 대한 변화 비율까지 구했다면, 연쇄 법칙으로 한 칸만 더 거슬러 가면 가중치에 닿는다. 뉴런의 점수는 “가중치 × 입력 + 편향”이므로, 가중치가 조금 변할 때 점수가 얼마나 변하는지는 다름 아닌 입력값 자체다.
여기에서 깊은 통찰 하나가 따라 나온다. 가중치의 갱신폭은 그 뉴런에 들어온 입력의 크기에 좌우된다. 입력이 작으면 그 가중치는 손실에 거의 영향을 주지 못하니 크게 건드릴 필요가 없다. 반대로 입력이 크면 그 가중치 한 번의 변화가 결과를 크게 흔들므로 더 큰 폭으로 고쳐야 한다. 이 단순한 원리는 모델을 깊게 쌓을수록 더 중요해진다.
이렇게 모든 가중치와 편향마다 “손실에 대한 변화 비율”을 구해 한데 모은 것을 기울기 벡터(gradient vector)라 한다. 이 벡터가 바로 역전파가 내놓는 최종 산물이며, 사실상 모든 현대 인공지능의 학습을 끌고 가는 나침반이다. 화살표가 가리키는 방향이 “손실이 가장 빠르게 늘어나는 쪽”이므로, 우리는 그 반대로만 가면 된다.
08 — 내리막을 따라경사 하강법 — 기울기의 반대로 한 걸음씩
나침반(기울기 벡터)을 손에 쥐었으니 이제 움직일 차례다. 기울기는 손실이 가장 가파르게 증가하는 방향을 가리킨다. 우리가 원하는 것은 손실의 감소이므로, 각 가중치를 기울기의 반대 방향으로 조금씩 옮기면 된다.
여기서 학습률(learning rate)은 한 걸음의 보폭이다. 보통 아주 작게, 예컨대 0.001 같은 값으로 둔다. 기울기는 지금 서 있는 자리 근처에서만 믿을 수 있는 정보라서, 한 걸음 옮기고 나면 다시 그 자리의 기울기를 계산해 방향을 고쳐 잡는다. 이 과정을 수없이 반복하며 손실의 골짜기를 향해 조금씩 내려가는 것이 경사 하강법(gradient descent)이다.
짙은 안개 속, 산속에서 가장 낮은 골짜기로 내려가야 한다고 하자. 전체 지형은 보이지 않지만 발밑의 경사는 느낄 수 있다. 그렇다면 전략은 단순하다. 지금 서 있는 자리에서 가장 가파르게 내려가는 방향으로 한 걸음 딛고, 멈춰서 다시 경사를 가늠하고, 또 한 걸음 딛는다. 보폭이 학습률이다. 너무 크면 골짜기를 건너뛰어 반대편으로 튀고, 너무 작으면 한없이 더디다. 경사 하강법은 이 단순한 “느끼고-한 걸음” 규칙을 끈질기게 반복하는 일이다.
09 — 학습이 일어나는 장면지도가 스스로 제자리를 찾아가다
앞의 도시 맞히기 모델을 실제로 학습시키면 어떤 일이 벌어질까. 처음에는 가중치가 무작위 값이라 엉뚱한 답을 낸다. 어떤 위치를 파리라고 알려 주는데 모델은 마드리드라고 우긴다. 그러면 역전파가 파리 뉴런과 마드리드 뉴런 양쪽에 큰 기울기를 만들어 내고, 경사 하강법이 그 신호에 따라 가중치를 조금씩 고친다.
한 번 고칠 때마다 “이 지역은 파리”라고 판단하는 영역이 실제 파리 쪽으로 조금씩 이동한다. 수십 번을 반복하면 마드리드와 베를린의 영역이 제자리를 찾고, 파리의 영역도 점차 실제 위치에 포개진다. 모델은 누가 시키지 않아도, 오직 “틀린 정도를 거꾸로 되짚는” 절차만으로 지도 위에 스스로 경계를 그어 간다. 직선처럼 단순한 부품들이 모여, 마치 여러 장의 판자로 공간을 나누듯 도시별 영역을 분할하는 것이다.
10 — 직선 한 개의 한계세상에서 가장 복잡한 국경이 알려 주는 것
그런데 이 단순한 판자 한 장으로 가를 수 있는 모양에는 분명한 한계가 있다. 그 한계를 가장 극적으로 보여 주는 실제 장소가 있다. 벨기에와 네덜란드 국경에 자리한 바를러(Baarle)라는 작은 마을이다.
이곳의 국경은 흔히 세계에서 가장 복잡한 국경으로 꼽힌다. 바를러헤르토흐(Baarle-Hertog)는 벨기에 영토이면서 네덜란드 영토인 바를러나사우(Baarle-Nassau) 한가운데에 흩어져 있다. 두 지자체를 합치면 무려 서른 개의 비지(飛地)가 뒤엉켜 있는데, 네덜란드 안에 떠 있는 벨기에 땅이 스물두 조각, 그 벨기에 땅 안에 다시 박혀 있는 네덜란드 땅이 일곱 조각, 벨기에 본토 안의 네덜란드 땅이 한 조각이다. 국경선은 길과 상점은 물론 집과 카페의 한복판을 가로지른다. 어떤 집은 현관문이 어느 나라에 있느냐로 국적이 정해진다.
이렇게 뒤엉킨 영역을 직선 하나로 “여기는 벨기에, 저기는 네덜란드”라고 깔끔히 가르는 것은 불가능하다. 판자 한 장으로는 절대 안 된다. 신경망도 마찬가지다. 뉴런 하나, 직선 한 개로는 단순한 경계밖에 긋지 못한다.
해법은 부품을 더 쌓는 것이다. 뉴런을 여러 개, 여러 층으로 쌓아 직선들을 겹치고 휘면, 그 조합으로 임의의 복잡한 경계를 빚어낼 수 있다. 실제로 수학자들은 충분히 큰 신경망이 사실상 어떤 매끄러운 패턴이든 원하는 만큼 가깝게 흉내 낼 수 있음을 증명했다. 이것이 신경망을 굳이 “깊게(deep)” 쌓는 이유이며, 딥러닝(deep learning, 심층학습)이라는 이름의 출처이기도 하다. 그리고 그 깊은 그물의 모든 층을 한 번에 학습시키는 절차가, 다름 아닌 역전파다.
11 — 도시에서 언어로같은 원리가 거대한 언어 모델까지
놀라운 점은, 지금까지의 이야기가 규모만 키우면 거대한 언어 모델에도 그대로 적용된다는 사실이다. 언어 모델은 “파리”나 “마드리드” 같은 단어 하나하나를 수천 개의 숫자로 이루어진 긴 목록, 즉 고차원 벡터(vector)로 표현한다. “프랑스의 수도는”이라는 문장을 넣으면, 모델은 그 맥락을 하나의 벡터로 응축한 뒤 층을 거칠 때마다 그 벡터를 정답인 “파리” 쪽으로 조금씩 끌어당긴다.
여기서 바를러의 비유가 다시 빛을 발한다. “파리”라는 똑같은 답으로 이어져야 하는 문맥은 서로 멀찍이 떨어진 채 흩어져 있다. 어떤 문장은 역사 속 조약을 이야기하고, 어떤 문장은 여행을 이야기하지만, 둘 다 다음 단어로 “파리”를 부른다. 마치 네덜란드 곳곳에 흩어진 벨기에 땅 조각들이 모두 하나의 나라에 속하듯, 언어의 고차원 공간에서도 떨어져 있는 여러 영역이 같은 답을 가리키도록 하나로 엮여야 한다. 그 공간을 어떻게 나누고 어떤 모양으로 다시 짜야 하는지를, 모델은 역전파를 통해 스스로 배워 나간다.
도시 세 개를 맞히는 장난감 모델이든, 인터넷 전체를 읽고 글을 쓰는 거대한 언어 모델이든, 학습의 엔진은 똑같다. 오차를 측정하고, 연쇄 법칙으로 책임을 거꾸로 분배하고, 기울기의 반대로 한 걸음씩 내려간다. 달라지는 것은 손잡이의 수와 공간의 차원뿐이다.
12 — 거절당한 아이디어반세기를 돌아온 한 줄의 수학
이토록 우아하고 강력한 절차가 처음부터 환영받은 것은 아니다. 오히려 정반대였다. 역전파의 역사는 좋은 아이디어가 시대를 잘못 만나면 얼마나 오래 잊힐 수 있는지를 보여 주는 이야기다.
1960년, 스탠퍼드대학교의 버나드 위드로(Bernard Widrow)와 그의 제자 테드 호프(Ted Hoff)는 단순한 적응형 회로를 만들며 “오차를 줄이는 방향으로 가중치를 조금씩 고친다”는 발상을 정식 알고리즘으로 다듬었다. 단층, 즉 한 겹짜리 신경망에 대해서는 이것이 바로 경사 하강법의 원형이었다. 그러나 그들은 이 방법을 여러 층으로 어떻게 확장해야 할지 끝내 알아내지 못했다. 여러 겹을 한 번에 학습시키는 문제는 그 자리에서 멈춰 섰다.
그 매듭을 푼 사람은 1974년, 하버드대학교의 대학원생 폴 워보스(Paul Werbos)였다. 그는 박사학위 논문에서 여러 층으로 이루어진 신경망의 모든 가중치를 효율적으로 학습시키는 방법, 즉 오늘날 우리가 역전파라 부르는 절차를 명시적으로 적어 냈다. 그는 이 방법을 당대 인공지능의 거장 마빈 민스키(Marvin Minsky)에게 들고 가 함께 발전시키자고 제안하기까지 했다. 돌아온 것은 외면이었다. 당시 학계의 분위기는 신경망을 “결코 성공할 수 없는, 한물간 발상”으로 치부하고 있었고, 민스키 자신도 단층 신경망의 한계를 못 박은 영향력 있는 저작으로 그 분위기를 이끈 인물이었다.
민스키의 회의에는 나름의 근거가 있었다. 그는 이런 학습이 수렴이 너무 느리고, 어쩌면 아예 배우지 못할 수도 있다고 보았다. 무수한 반복이 필요하다는 점에서, 당시 컴퓨터 성능을 생각하면 그 우려는 일면 타당했다. 그러나 그가 끝내 놓친 것이 있었다. 이 단순한 절차가, 모델의 규모를 키우면 키울수록 상상하기 어려울 만큼 복잡한 문제까지 풀어낸다는 사실이었다. 단순함이 규모를 만나 폭발적인 능력으로 바뀌는 현상 — 오늘날 우리가 매일 목격하는 그 일을, 그는 과소평가했다.
역전파가 다시 빛을 본 것은 1986년이다. 데이비드 러멜하트(David Rumelhart), 제프리 힌턴(Geoffrey Hinton), 로널드 윌리엄스(Ronald Williams) 세 연구자가 이 방법을 재발견해 알기 쉽게 정리하고, 신경망이 스스로 의미 있는 내부 표현을 학습한다는 것을 실험으로 보였다. 이 논문이 도화선이 되어 신경망 연구가 되살아났다. 그 뒤로는 도미노였다.
- 1960 단층 학습 규칙의 등장. 한 겹 신경망에서 오차를 줄이는 경사 하강법의 원형이 만들어졌다. 그러나 여러 층 학습은 풀지 못했다.
- 1974 역전파의 첫 명시적 기술. 한 박사학위 논문에서 다층 신경망 학습법이 처음으로 또렷이 적혔다. 그러나 학계의 외면 속에 오래 묻혔다.
- 1986 재발견과 부활. 역전파가 다시 정리·확산되며, 신경망이 의미 있는 내부 표현을 학습한다는 사실이 실험으로 입증됐다.
- 1989 자율주행과 손글씨. 신경망 기반 자율주행 차량이 시연됐고, 비슷한 시기에 손글씨 숫자를 읽는 신경망이 등장했다. 이 계열은 훗날 미국에서 은행 수표와 우편번호를 읽는 데 실제로 쓰였다.
- 2012 이미지 인식의 전환점. 그래픽 처리 장치(GPU, Graphics Processing Unit)로 학습한 대형 신경망이 대규모 이미지 인식 대회에서 2위와 큰 격차로 우승하며, 오늘날의 딥러닝 시대를 열었다. 1986년 논문의 저자 가운데 한 사람도 이 연구진에 있었다.
한 가지 덧붙일 만한 사실이 있다. 역전파의 수학적 뿌리는 1970년대 초 자동 미분 분야에서 독립적으로도 나타났다. 같은 아이디어가 서로 다른 분야에서 여러 번 다시 발견됐다는 것은, 그만큼 이 절차가 자연스럽고 근본적이라는 방증이기도 하다.
13 — 단순함의 힘거장이 놓친 것
물리학의 운동 법칙이 그렇듯, 역전파는 단순하고 우아하다. 입력에서 출력으로 신호를 흘려보내 예측을 만들고(순전파), 그 예측이 틀린 정도를 측정하고, 연쇄 법칙으로 책임을 거꾸로 분배해 기울기를 구하고(역전파), 그 반대 방향으로 한 걸음 내려간다(경사 하강법). 이 짧은 절차의 반복이 전부다.
그러나 보기보다 훨씬 잘 “규모를 탄다.” 손잡이를 수십억 개로 늘리고, 데이터를 충분히 먹이고, 같은 절차를 묵묵히 반복하면, 글을 쓰고 그림을 그리고 길을 찾는 능력이 그 단순한 규칙으로부터 솟아난다. 거장이 과소평가한 것이 바로 이 지점이다. 그는 절차의 단순함에서 한계를 보았지만, 정작 그 단순함이 규모와 만났을 때 피어나는 창발(emergence)을 미처 내다보지 못했다.
오늘날 우리가 인공지능이라 부르는 거의 모든 것의 밑바닥에는, 한때 거절당했던 이 한 줄의 수학이 조용히 돌아가고 있다. 오차를 거꾸로 흘려보내는 것 — 그 단순한 발상 하나가, 기계가 배우는 방식을 영영 바꿔 놓았다.
· · ·