인공지능(Artificial intelligence)
사람이 하면 지능이 필요하다고 여길 일을 기계가 하게 만들려는 분야. 지식을 규칙으로 적어 넣는 길과 예에서 규칙을 찾는 길이 번갈아 앞섰고, 2010년대부터는 큰 신경망(neural network)을 많은 자료로 학습시키는 방법이 주류가 되었다.
체스를 두고, 사진 속 고양이를 알아보고, 영어 문장을 한국어로 옮기는 일은 사람이 하면 머리를 쓴다고 말하는 일입니다. 인공지능(AI)은 이런 일을 기계가 하게 만들려는 연구 분야의 이름입니다. 지능이 무엇인지에 대한 합의된 정의는 없어서 분야의 경계도 흐릿합니다. 한때 인공지능의 대표 문제였던 체스도, 컴퓨터가 세계 챔피언을 이긴 뒤에는 흔히 '결국 탐색일 뿐'이라는 말을 듣습니다. 그래서 이 페이지는 정의보다 역사를 따라갑니다. 그 역사는 두 길이 번갈아 앞선 이야기입니다. 사람이 아는 것을 기호와 규칙으로 적어 넣는 길, 그리고 예를 많이 보여 주고 규칙을 찾게 하는 길(기계 학습, machine learning)입니다.
이름이 생기기까지. 1950년 앨런 튜링은 「계산 기계와 지능」에서 '기계가 생각할 수 있는가'라는 물음을, 글로만 대화해서 기계와 사람을 구별할 수 있는가라는 시험(흉내 게임(imitation game), 오늘날의 튜링 테스트(Turing test))으로 바꾸어 묻자고 제안했습니다. 이것은 지능의 정의가 아니라 논쟁을 다룰 수 있게 만드는 한 방법이었습니다. 1955년 존 매카시, 마빈 민스키, IBM의 너새니얼 로체스터, 클로드 섀넌은 이듬해 여름 다트머스 대학에서 연구 모임을 열자는 제안서를 썼고, 'artificial intelligence'라는 이름은 이 제안서에서 만들어졌다고 알려져 있습니다. 제안서는 학습을 비롯한 지능의 모든 특징이 원리적으로 아주 정확히 기술될 수 있어서 기계가 흉내 내게 할 수 있다는 추측에서 출발했습니다. 1956년 여름의 모임 자체는 참석자들이 오가며 이야기를 나눈 느슨한 토론회였지만, 이 이름과 이 추측이 흩어져 있던 연구를 한 분야로 묶었습니다.
기호와 탐색(1950년대–1970년대). 초기 연구의 중심은 추론과 탐색이었습니다. 1956년 앨런 뉴얼, 허버트 사이먼, 클리프 쇼의 프로그램 '논리 이론가'는 러셀과 화이트헤드의 『수학 원리』 2장에 나오는 정리 52개 가운데 38개를 증명했습니다. 1958년 매카시는 람다 계산(lambda calculus)의 표기를 빌려 기호를 다루는 언어 LISP를 만들었습니다. 게임은 가능한 수를 나무 모양으로 펼쳐 따지는 게임 트리(game tree) 탐색으로, 증명은 규칙을 적용해 목표에 이르는 길 찾기로 다루었습니다. 1959년 IBM의 아서 새뮤얼은 스스로와 두며 수를 평가하는 방식을 고쳐 나가는 체커 프로그램을 발표했습니다. 이 프로그램은 몇 수 앞을 탐색하면서, 동시에 그 탐색이 쓰는 평가를 경험으로 고쳤습니다. 탐색과 학습이 처음부터 한 프로그램 안에 함께 있었던 것입니다. 낙관도 컸습니다. 사이먼은 1965년에 20년 안에 기계가 사람이 하는 어떤 일이든 할 수 있게 되리라고 썼습니다.
규칙을 적어 넣는 방법. 1970–80년대의 전문가 시스템(expert system)은 전문가의 지식을 '…이면 …이다' 꼴의 규칙 수백–수천 개로 적었습니다. 그리고 관찰한 사실에서 출발해 전제가 모두 참인 규칙을 찾아 결론을 하나씩 늘려 갔습니다(전방 연쇄, forward chaining). 아래는 교과서에 흔히 나오는 동물 맞히기 예를 줄인 것입니다. 관찰:
'치타'를 골라 단계를 넘겨 보면, R1이 '포유류'를, R4가 '육식동물'을, R5가 '치타'를 차례로 끌어냅니다. 규칙 하나하나는 'p이고 q이면 r' 꼴의 명제 논리(propositional logic) 함의이고(불 대수(Boolean algebra)), 규칙을 고르고 적용하는 절차에는 판단이 끼지 않습니다. 결론에 이르기까지 거친 규칙을 되짚어 '왜 치타인가'를 설명할 수 있다는 것이 큰 장점이었습니다. 1965년 스탠퍼드에서 시작한 DENDRAL은 질량 분석 자료로 분자 구조를 추론했고, 1970년대의 MYCIN은 혈액 감염의 원인균과 항생제를 추천해 평가에서 전문의에 견줄 만한 결과를 냈습니다. 다만 MYCIN은 병원에서 실제로 쓰이지는 않았습니다. 1980년 디지털 이큅먼트(DEC)의 XCON은 컴퓨터 주문의 부품 구성을 맞춰 회사 비용을 줄였습니다. 그러나 '고래'를 골라 보면 약점이 보입니다. 규칙에 없는 동물은 '포유류'에서 멈추고 아무 답도 내지 못합니다. '새는 난다' 같은 규칙에는 펭귄 같은 예외가 끝없이 붙고, 그때마다 사람이 규칙을 고쳐야 합니다. 전문가에게서 규칙을 뽑아내는 일(지식 획득, knowledge acquisition)은 느리고 비쌌으며, 사람이 굳이 말하지 않는 상식은 적어 넣기에 너무 많았습니다.
퍼셉트론(perceptron)과 두 번의 겨울. 다른 길도 일찍부터 있었습니다. 1943년 워런 맥컬러와 월터 피츠는 신호를 받아 켜지거나 꺼지는 단순한 인공 뉴런으로 논리 연산을 흉내 낼 수 있음을 보였습니다. 1958년 프랭크 로젠블랫의 퍼셉트론은 여기에 학습을 더했습니다. 규칙을 적는 대신 입력마다 곱하는 수(가중치, weight)를 두고, 예를 하나씩 보며 틀릴 때마다 그 수를 고쳤습니다. 1969년 민스키와 시모어 페이퍼트의 책 『퍼셉트론』은 한 층짜리 퍼셉트론이 XOR 같은 간단한 함수(function)도 계산하지 못함을 엄밀하게 보였습니다. 이 책이 신경망 연구를 얼어붙게 했다는 이야기가 널리 퍼져 있지만, 여러 층을 학습시킬 방법이 아직 알려지지 않았다는 사정과 연구비 사정이 함께 얽힌 일을 단순하게 줄인 이야기입니다. 1970년대 중반에는 기대에 못 미친 성과 때문에 영국(1973년 라이트힐 보고서)과 미국에서 인공지능 연구비가 크게 줄었습니다. 미국에서는 1969년 맨스필드 수정안 뒤로 국방 연구비가 군사적 쓸모가 분명한 과제에 몰리면서, 당장 쓸 데가 보이지 않는 기초(basics) 연구가 지원을 잃은 사정도 겹쳤습니다. 1980년대 후반에는 다시 전문가 시스템 붐과 LISP 전용 컴퓨터 시장이 무너졌습니다. 이 두 침체기를 흔히 'AI 겨울(AI winter)'이라 부릅니다. 두 번 모두 약속이 성과를 크게 앞섰다가 실망이 따랐습니다.
확률과 통계(1980년대 후반–2000년대). 그사이 방향이 바뀌었습니다. 확실한 규칙 대신 불확실한 믿음을 확률(probability)로 다루게 된 것입니다. 주디아 펄은 1988년 책에서 베이즈 망(Bayesian network)을 정리했습니다. 베이즈 망은 '비가 오면 땅이 젖는다'처럼 어떤 변수가 어떤 변수에 직접 영향을 주는지를 화살표로 그린 그래프입니다. 화살표로 직접 이어지지 않은 변수끼리는 사이의 변수를 알고 나면 서로에 대해 더 알려 주는 것이 없다고 보고(조건부 독립(independence)), 그 덕분에 큰 문제의 확률 계산을 작은 조각으로 나눌 수 있습니다. 이렇게 해서 베이즈 정리(Bayes' theorem)를 변수가 많은 문제에도 쓸 수 있게 되었습니다. 음성 인식은 은닉 마르코프 모델(hidden Markov model)으로, 기계 번역(machine translation)과 문장의 확률 모형은 말뭉치(corpus)에서 센 n-그램(n-gram)으로 옮겨 갔습니다. 1986년 데이비드 러멜하트, 제프리 힌턴, 로널드 윌리엄스는 여러 층의 신경망을 역전파(backpropagation)로 학습시키는 방법을 널리 알렸고, 1989년 벨 연구소의 얀 르쿤과 동료들은 손글씨 숫자를 합성곱 신경망(convolutional neural network)으로 읽었습니다. 보상으로 배우는 강화 학습(reinforcement learning)은 리처드 서튼과 앤드루 바토가 이론의 틀을 세웠고, 1992년 제럴드 테사우로의 TD-개먼은 스스로와 둔 백개먼 판으로 배워 최상급 선수에 가까운 수준에 이르렀습니다. 1990년대에서 2000년대 초까지 실용적인 중심은 블라디미르 바프니크의 통계적 학습 이론에 기댄 서포트 벡터 머신(support vector machine), 그리고 결정 트리(decision tree)와 랜덤 포레스트(random forest) 같은 방법이었습니다. 이렇게 인공지능은 통계학(statistics)과 가까워졌습니다. 한편 1997년 5월 IBM의 딥 블루가 가리 카스파로프를 3.5 대 2.5로 이긴 것은 학습보다는 전용 칩으로 1초에 약 2억 개의 국면을 살핀 탐색의 승리였습니다.
딥 러닝(2012년–). 2009년 페이페이 리와 동료들은 사람이 손으로 이름표를 붙인 사진 수백만 장의 자료집 ImageNet을 공개했고, 2010년부터 그 일부(1,000개 범주(category), 학습용 사진 약 120만 장)로 분류 대회가 열렸습니다. 2012년 알렉스 크리젭스키, 일리야 수츠케버, 힌턴의 합성곱 신경망 AlexNet은 GPU 두 장으로 학습해 상위 5 오류율(top-5 error rate) 15.3%를 기록했습니다. 상위 5 오류율은 모델이 가장 그럴듯하다고 고른 다섯 범주 안에 정답이 없는 사진의 비율입니다. 2위는 26.2%였습니다. 새 이론이 나왔다기보다 오래된 방법(역전파, 합성곱(convolution))에 큰 자료와 빠른 계산, 그리고 학습을 돕는 몇 가지 기법이 더해진 결과였습니다. 이를테면 뉴런이 음수를 0으로 바꾸고 양수는 그대로 내보내게 하는 단순한 함수(ReLU)를 써서 깊은 망도 빨리 배우게 했고, 학습 중에 뉴런 일부를 무작위로 꺼 두어(드롭아웃, dropout) 모델이 학습 자료를 통째로 외우지 않게 했습니다. 이어 음성 인식과 기계 번역도 신경망으로 넘어갔고(순환 신경망(recurrent neural network)과 LSTM), 2016년 3월 서울에서는 딥마인드의 알파고가 신경망과 몬테카를로 트리 탐색(Monte Carlo tree search), 강화 학습을 엮어 이세돌 9단을 4 대 1로 이겼습니다. 2018년도 튜링상(Turing Award)은 힌턴, 르쿤, 요슈아 벤지오에게 돌아갔습니다.
트랜스포머(transformer)와 대형 언어 모델(2017년–). 2017년 구글 연구자들은 순환 구조(cycle type) 없이 어텐션(attention)만으로 문장을 처리하는 트랜스포머를 발표했습니다. 병렬 계산이 쉬워 아주 큰 모델을 학습시킬 수 있었고, 글을 토큰(token)으로 쪼개 다음 토큰을 맞히는 언어 모델(language model)을 인터넷 규모의 글로 학습시키는 방식이 자리 잡았습니다. 모델의 크기는 매개변수(parameter)의 개수로 잽니다. 매개변수는 학습으로 값이 정해지는 수이고, 그 개수가 수천억에 이르렀습니다.
2020년 오픈AI 연구자들은 모델 크기, 자료량, 계산량 가운데 하나를 늘릴 때 나머지 둘이 발목을 잡지 않으면, 학습에 쓰지 않은 글에서 잰 손실이 거듭제곱 꼴로 줄어든다는 관찰을 보고했습니다. 손실은 모델의 답이 정답에서 얼마나 먼지를 잰 값으로, 작을수록 좋습니다. 거듭제곱 꼴로 준다는 것은 이를테면 크기를 10배 할 때마다 손실이 늘 같은 비율만큼 준다는 뜻입니다(규모의 법칙, scaling laws). 이것은 측정한 범위 안에서 맞는 경험 법칙이지 증명된 정리가 아닙니다.
사람의 선호로 답을 다듬는 인간 피드백 강화 학습을 거친 대화형 모델 ChatGPT가 2022년 11월에 공개되면서 언어 모델은 연구실 밖으로 나왔습니다. 그 뒤 몇 해 사이에 학습된 가중치를 누구나 내려받게 공개한 모델, 입력마다 모델의 일부만 쓰는 전문가 혼합(mixture of experts), 한 번에 아주 긴 글을 읽는 모델, 답하기 전에 풀이를 길게 적어 보는 추론 모델이 차례로 나왔습니다. 그 과정은 언어 모델의 발전사에 날짜순으로 정리되어 있습니다. 같은 시기에 잡음에서 그림을 되살리는 확산 모델(diffusion model)이 그림 생성의 주류가 되었습니다. 이 모델들이 무엇을 어떤 뜻에서 '이해'하는지, 왜 이렇게 잘 일반화하는지, 언제 그럴듯한 거짓을 내놓는지는 아직 연구 중인 질문입니다.
밑에 깔린 수학. 오늘날의 인공지능이 쓰는 수학은 대부분 이 위키의 다른 분야에 있습니다. 먼저 신경망의 한 층이 하는 계산을 숫자로 봅니다. 입력이 두 수 1과 2이고, 각 입력에 곱할 가중치가 0.5와 −1, 마지막에 더하는 수(치우침)가 2라고 합시다. 층은 입력에 가중치를 곱해 모두 더하고 치우침을 더합니다. 0.5 × 1 + (−1) × 2 + 2 = 0.5입니다. 그다음 비선형 함수를 거칩니다. ReLU라면 양수는 그대로 두므로 출력은 0.5입니다. 치우침이 1이었다면 합이 −0.5가 되고, ReLU가 음수를 0으로 바꾸어 출력은 0입니다. 출력이 여러 개면 가중치가 가로세로 표(행렬, matrix)를 이룹니다. 그래서 한 층은 행렬 곱을 하고 치우침을 더한 뒤 비선형 함수를 붙인 것입니다. 학습은 이 가중치와 치우침을 조금씩 바꿔 손실을 줄이는 일입니다.
이 계산을 둘러싼 수학은 다음 페이지들에 있습니다.
- 손실을 줄이는 길. 학습은 손실을 가장 작게 만드는 최적화(optimization)입니다. 가중치를 하나씩 조금 바꿀 때 손실이 얼마나 변하는지를 모은 것이 기울기 벡터(gradient vector)입니다. 이것은 합성 함수를 미분(differentiation)하는 규칙인 연쇄법칙(chain rule)을 기계적으로 적용하는 자동 미분(automatic differentiation)으로 얻습니다. 그리고 손실이 줄어드는 쪽, 곧 기울기(slope)의 반대 방향으로 조금씩 내려가는 것이 확률적 경사 하강법(stochastic gradient descent)입니다.
- 층을 거듭 지날 때. 입력 신호는 층을 지나며, 학습 때의 기울기는 층을 거꾸로 지나며 점점 커지거나 작아질 수 있습니다. 어느 쪽인지는 가중치 행렬이 벡터(vector)를 얼마나 늘이고 줄이는지에 크게 좌우됩니다. 그 정도를 재는 수가 고유값(eigenvalue)과 특잇값(singular value)입니다(비선형 함수의 기울기도 함께 곱해집니다).
- 출력을 확률로. 마지막 층의 수들은 소프트맥스(softmax)를 거쳐 모두 더하면 1인 확률이 됩니다. 이때 흔히 쓰는 손실은 교차 엔트로피입니다. 정답에 준 확률의 로그에 음수를 붙인 값으로, 정답에 준 확률이 1에 가까울수록 0에 가깝고 0에 가까울수록 한없이 커집니다. 이 손실을 줄이는 것은 학습 자료가 나올 확률(가능도, likelihood)을 키우는 것(최대가능도법(maximum likelihood))과 같습니다. 또 학습 자료가 보여 주는 분포와 모델 분포가 얼마나 다른지를 재는 쿨백–라이블러 발산(Kullback–Leibler divergence)을 줄이는 것과도 같습니다. 둘의 차이는 모델과 상관없는 상수(자료 분포의 엔트로피(entropy))뿐이기 때문입니다.
- 처음 보는 자료에서도 맞힐까. 학습 자료는 맞히지만 새 자료에서 틀리는 과적합(overfitting), 오차를 모델이 너무 단순해서 생기는 몫과 자료에 따라 흔들려서 생기는 몫으로 나누는 편향–분산 분해(bias–variance decomposition), 모델이 지나치게 복잡해지지 않게 벌점을 주는 정규화, 자료 일부를 떼어 두고 시험하는 교차 검증(cross-validation)이 이 통계의 질문을 다룹니다.
- 무엇을 계산할 수 있는가. 기계가 원리적으로 무엇을 계산할 수 있고 없는지라는 더 밑바닥의 질문은 튜링 기계(Turing machine), 정지 문제(halting problem), 처치–튜링 논제(Church–Turing thesis)에 있습니다.
이 위키의 AI 페이지들.
- 표에서 배우는 고전적인 방법. 점들에 가장 잘 맞는 직선을 찾는 최소제곱 회귀(least-squares regression), 예/아니요의 확률을 내는 로지스틱 회귀(logistic regression), 가장 가까운 예를 따르는 최근접 이웃 분류(k-nearest neighbors classification), 비슷한 점끼리 묶는 k-평균 군집(k-means clustering), 자료가 가장 많이 퍼진 방향을 찾는 주성분 분석(principal component analysis), 숨은 값을 추측과 갱신을 되풀이해 찾는 EM 알고리즘(algorithm).
- 그 방법들을 받치는 이론. 골짜기가 하나뿐인 문제를 다루는 볼록 최적화, 조건을 지키며 최적을 찾는 라그랑주 승수법, 차원이 높아지면 자료가 듬성듬성해지는 차원의 저주(curse of dimensionality).
- 신경망의 기초. 가장 단순한 학습 기계 퍼셉트론에서 여러 층의 신경망으로, 그것을 학습시키는 경사 하강법(gradient descent)과 역전파로.
- 자료의 모양에 맞춘 신경망. 그림을 읽는 합성곱 신경망, 순서가 있는 자료를 읽는 순환 신경망, 자료를 압축해 표현을 배우는 오토인코더(autoencoder), 잡음에서 그림을 만드는 확산 모델.
- 행동을 고르는 문제. 보상으로 배우는 강화 학습, 수를 미리 내다보는 게임 트리 탐색.
- 언어. 낱말 묶음의 빈도를 세는 n-그램과 낱말을 수의 목록으로 바꾸는 단어 임베딩(word embedding)에서 출발해, 글을 조각내는 토큰화, 문장 속 어디를 볼지 정하는 어텐션, 그것으로 쌓은 트랜스포머, 다음 토큰을 맞히는 언어 모델, 확률에서 실제 글을 뽑는 디코딩, 크기와 성능의 관계인 규모의 법칙, 사람의 선호로 답을 다듬는 인간 피드백 강화 학습으로 이어집니다.
이어지는 곳.
- 튜링: 기계가 생각할 수 있느냐는 물음을 시험해 볼 수 있는 물음으로 바꾸었습니다.
- 매카시: 분야에 이름을 붙이고 LISP를 만들었습니다.
- 민스키: 기호주의 인공지능을 이끌면서 퍼셉트론의 한계를 따져, 두 길의 긴장을 한 몸에 보여 줍니다.
- 로젠블랫: 반대편에서 배우는 기계를 처음 만든 사람 가운데 하나입니다.
- 새뮤얼: 스스로와 두며 나아지는 체커 프로그램으로, 학습하는 프로그램의 이른 예를 남겼습니다.
- 섀넌: 1950년 체스 논문에서 기계가 체스를 둔다면 무엇을 계산해야 하는지를 체계적으로 정리했습니다.
- 펄: 불확실성을 확률로 다루는 전환과 인과(causation) 추론을 이끌었습니다.
- 바프니크: 학습한 모델이 새 자료에서도 맞을지(일반화)를 수학으로 따지는 이론을 세웠습니다.
- 딥 러닝(deep learning)의 세 사람: 힌턴은 역전파와 표현 학습, 르쿤은 합성곱 신경망, 벤지오는 순서 자료와 언어 모델로 이어집니다.
- 서튼: 보상으로 배우는 이론의 뼈대를 세웠습니다.
- 페이페이 리: ImageNet을 만들어 자료가 알고리즘만큼 중요하다는 교훈을 남겼습니다.
- 가장 좋은 것 고르기: 좋은 답을 고르는 일반 원리.
- 무작위성: 학습과 탐색에 무작위성이 왜 도움이 되는지.
이 개념이 나오는 긴 글
이 개념을 언급하는 페이지
- 기계 학습
… 발산⟧과 상호 정보량에서 이어집니다. 이어지는 곳. 기계 학습은 기계에게 지능이 필요한 일을 시키려는인공지능의 한 갈래입니다. 본 자료에서 보지 못한 자료로 넓혀 말하는 문제는 통계학의 오랜 질문이고, 무작위로 …
- 합성곱 신경망
… 약 6천만 개의 AlexNet이 ImageNet 대회에서 큰 차이로 이기면서 딥 러닝의 시대가 열렸고(인공지능), 2015년 ResNet은 층을 건너뛰는 지름길 연결로 152층짜리 망을 학습시켰습니다. 2020년 …
- 언어 모델의 발전사: RLHF 이후
… 크기와 성능의 경험식인 규모의 법칙은 이 연표의 모든 줄에 걸쳐 있습니다. 2022년 이전의 이야기는인공지능과 언어 모델에서 시작합니다.