수학 개념 지도
데이터와 학습(Data and learning)

기계 학습(Machine learning)

규칙을 사람이 적어 넣는 대신 예에서 규칙을 찾게 하는 방법. 목표는 본 예를 외우는 것이 아니라 처음 보는 예에서 맞히는 것(일반화)이라서, 성능은 학습에 쓰지 않은 시험 데이터⁠(test set)⁠로 잰다.

f^=arg⁡min⁡f∈F1n∑i=1nℓ(f(xi), yi)\hat f = \arg\min_{f \in \mathcal{F}} \frac{1}{n}\sum_{i=1}^{n} \ell\bigl(f(x_i),\, y_i\bigr)
먼저 보면 좋은 개념함수확률최적화

스팸 메일을 걸러 내는 프로그램을 만든다고 합시다. '무료'라는 낱말이 있으면 스팸, 보낸 사람이 주소록에 있으면 정상, … 하는 식으로 규칙을 손으로 적을 수도 있지만, 규칙은 끝이 없고 스팸을 보내는 쪽은 규칙을 금세 피해 갑니다. 다른 길이 있습니다. 사람이 '스팸'과 '정상'으로 이름표를 붙여 둔 메일 수만 통을 보여 주고, 이름표를 가장 잘 맞히는 규칙을 컴퓨터가 찾게 하는 것입니다. 이렇게 예에서 규칙을 찾는 방법을 기계 학습이라 합니다.

무엇을 하는가. 조금 정확히 말하면 이렇습니다. 입력 x(메일)와 정답 y(스팸인지)의 짝 n개, 곧 학습 데이터⁠(training set)⁠가 있습니다. 미리 정해 둔 규칙들의 모임 F\mathcal F(예컨대 '낱말마다 점수를 매겨 합이 문턱⁠(threshold)⁠을 넘으면 스팸'인 규칙 전부)가 있고, 규칙 f가 한 예에서 얼마나 틀렸는지 재는 손실 ℓ이 있습니다. 학습은 학습 데이터에서 평균⁠(mean)⁠ 손실이 가장 작은 규칙을 고르는 일, 곧 위의 식입니다. 그런데 진짜 목표는 따로 있습니다. 우리가 바라는 것은 이미 이름표를 아는 메일을 맞히는 것이 아니라 내일 올 메일을 맞히는 것입니다. 앞으로 올 예들도 학습 데이터와 같은 확률⁠(probability)⁠분포에서 나온다고 가정하고, 그 분포 위의 평균 손실을 작게 하는 것이 목표입니다. 이것을 일반화라 합니다. 학습 데이터에서의 성적은 이 목표의 어림일 뿐이고, 둘 사이가 벌어지는 것이 과적합⁠(overfitting)⁠입니다.

가장 단순한 예로 봅시다. 수 하나로 나타낸 예들이 파랑과 노랑 두 무리에서 나오는데, 두 무리의 분포(곡선)가 겹쳐 있습니다. 어느 무리인지 알고 뽑은 학습 데이터 n = 개(각 무리에서 절반씩)로 규칙을 배웁니다. 규칙의 모임은 입니다. 새 표본

곡선은 두 무리의 실제 분포, 아래 두 줄의 점은 학습 데이터입니다. 가운데 띠의 색이 배운 규칙의 답이고, 흰검은 선은 배운 경계, 점선은 가장 좋은 경계(0)입니다.

학습 데이터에서 틀린 비율은 , 새 예에서 틀릴 비율(시험 오차)은 입니다. 어떤 규칙도 두 분포가 겹친 부분에서는 틀릴 수밖에 없어서, 가장 좋은 규칙인 '0보다 크면 노랑'도 21.2%는 틀립니다. '문턱 하나'는 규칙의 모임이 단순해서 학습 데이터에서도 조금 틀리지만, 그 대신 학습 오차가 시험 오차와 가깝습니다. n을 키우면 배운 문턱이 0으로 다가가고 시험 오차는 가장 좋은 값에 붙습니다. '가장 가까운 예 따라 하기'는 새 예에 가장 가까운 학습 예의 이름표를 그대로 답하는 규칙(최근접 이웃 분류⁠, k-nearest neighbors classification⁠)이라, 학습 데이터에서는 언제나 0% 틀립니다(같은 값에 다른 이름표가 붙은 점이 없다면). 그러나 겹친 부분에 섞인 점 하나하나를 그대로 외우느라 띠가 조각나고, 시험 오차는 문턱 규칙보다 높습니다. 학습 오차 0%가 좋은 학습을 뜻하지 않는다는 것, 그래서 성능은 반드시 학습에 쓰지 않은 데이터로 재야 한다는 것이 기계 학습의 첫 교훈입니다.

학습 데이터의 크기에 따른 시험 오차(표본⁠(sample)⁠ 80개의 평균). 청록: 문턱 하나, 분홍: 가장 가까운 예 따라 하기. 아래 점선은 가장 좋은 규칙의 오차, 위 점선은 예가 한없이 많을 때 '따라 하기'가 다가가는 값입니다.

예가 많아지면 문턱 규칙의 시험 오차는 가장 좋은 값 21.2%로 내려갑니다. 그러나 따라 하기는 예가 늘어도 거의 나아지지 않고 28–29% 안팎에 머뭅니다. 예가 한없이 많아져도 두 분포가 겹친 곳에서는 가장 가까운 예의 이름표가 그 자리의 확률대로 우연히 정해지기 때문에, 오차는 약 29.2%로 다가갑니다(1967년 토머스 커버와 피터 하트는 이 극한값이 가장 좋은 오차의 두 배를 넘지 않음을 보였습니다). 따라 하기를 고치려면 가장 가까운 예 하나 대신 여러 개에게 투표를 시키고, 예가 늘어날수록 투표하는 수도 함께 키워야 합니다. 다만 예의 수보다는 느리게 키워야, 투표하는 이웃들이 여전히 가까이에 있습니다. 규칙의 모임을 고르는 것은 이렇게 저울질입니다(편향–분산 분해⁠, bias–variance decomposition⁠). 너무 단순하면 참모양을 따라가지 못하고(과소적합⁠, underfitting⁠), 너무 유연하면 잡음을 외웁니다(과적합). 그래서 실제로는 자료를 세 몫으로 나눕니다. 규칙을 고르는 학습 데이터, 모임의 크기나 학습률⁠(learning rate)⁠ 같은 설정을 고르는 검증 데이터⁠(validation set)⁠, 그리고 모든 선택이 끝난 뒤 한 번만 들여다보는 시험 데이터입니다. 자료가 적으면 검증 몫을 돌아가며 바꿔 오차를 평균하는 교차 검증⁠(cross-validation)⁠을 씁니다.

세 가지 학습. 정답이 붙은 예로 배우는 것을 지도 학습⁠(supervised learning)⁠이라 합니다. 답이 스팸/정상처럼 몇 가지 가운데 하나면 분류, 집값처럼 수이면 회귀라 부릅니다. 최소제곱 회귀⁠(least-squares regression)⁠, 로지스틱 회귀⁠(logistic regression)⁠, 퍼셉트론⁠(perceptron)⁠, 결정 트리⁠(decision tree)⁠, 서포트 벡터 머신⁠(support vector machine)⁠, 최근접 이웃 분류, 신경망⁠(neural network)⁠이 여기 속합니다. 정답 없이 자료만 주고 그 안의 구조를 찾게 하는 것은 비지도 학습입니다. 비슷한 것끼리 무리 짓는 k-평균 군집⁠(k-means clustering)⁠, 자료가 가장 넓게 퍼진 방향을 찾는 주성분 분석⁠(principal component analysis)⁠, 함께 나오는 낱말들로 낱말의 뜻을 벡터⁠(vector)⁠로 적는 단어 임베딩⁠(word embedding)⁠, 입력을 좁은 병목으로 압축했다가 되살리는 오토인코더⁠(autoencoder)⁠가 그 예입니다. 마지막으로 강화 학습⁠(reinforcement learning)⁠은 정답 대신 보상으로 배웁니다. 바둑을 두는 프로그램은 수마다 정답을 듣지 못하고 판이 끝나서야 이겼는지 졌는지를 압니다. 그래서 어떤 수가 결국 좋은 결과로 이어졌는지를 스스로 따져야 하고, 아는 좋은 수를 쓸지 모르는 수를 시험해 볼지도 저울질해야 합니다. 앞날에 받을 보상의 합을 지금 상태의 값으로 거꾸로 계산하는 식은 1950년대 리처드 벨먼의 동적 계획법⁠(dynamic programming)⁠에서 왔고, 이 식을 경험으로 어림해 푸는 것이 많은 강화 학습 알고리즘⁠(algorithm)⁠의 뼈대입니다.

배우는 방법. 규칙의 모임이 매개변수⁠(parameter)⁠, 곧 규칙을 정하는 조절 손잡이 같은 수들(스팸 필터라면 낱말마다의 점수)로 적혀 있다면 학습은 그 수들을 맞추는 최적화⁠(optimization)⁠입니다. 손실을 매개변수로 미분⁠(differentiation)⁠해 내려가는 경사 하강법(실제로는 자료 일부로 기울기⁠(slope)⁠를 어림하는 확률적 경사 하강법⁠(stochastic gradient descent)⁠), 층이 깊은 신경망에서 그 미분값을 싸게 얻는 역전파⁠(backpropagation)⁠가 오늘날의 일꾼입니다. 확률로 보면 손실을 줄이는 것은 대개 자료의 가능도⁠(likelihood)⁠를 키우는 것이어서, 분류기가 줄이는 교차 엔트로피⁠(cross-entropy)⁠ 손실은 최대가능도법⁠(maximum likelihood)⁠과 같습니다(쿨백–라이블러 발산⁠, Kullback–Leibler divergence⁠). 베이즈 정리⁠(Bayes' theorem)⁠로 믿음을 고쳐 가는 방법, 거리로 이웃을 찾는 방법, 짧은 설명을 고르는 방법(콜모고로프 복잡도⁠, Kolmogorov complexity⁠)도 모두 같은 질문, 곧 본 것에서 보지 못한 것으로 어떻게 넓혀 갈지에 대한 서로 다른 답입니다. 이 점에서 기계 학습은 통계학⁠(statistics)⁠과 한 뿌리입니다.

역사. 1943년 워런 맥컬러와 월터 피츠는 뉴런을 켜짐과 꺼짐만 있는 논리 소자로 보는 모형을 내놓았습니다. 1950년 앨런 튜링은 「계산 기계와 지능」에서 어른의 마음을 흉내 내는 프로그램 대신 아이의 마음을 만들어 가르치자고 제안했습니다. 1958년 코넬 항공 연구소의 프랭크 로젠블랫은 틀릴 때마다 가중치⁠(weight)⁠를 고치는 퍼셉트론을 발표했고, 1959년 IBM의 아서 새뮤얼은 스스로와 두며 실력이 느는 체커 프로그램에 관한 논문 제목에 'machine learning'이라는 말을 써서 흔히 이 말을 처음 쓴 사람으로 꼽힙니다. 1969년 마빈 민스키와 시모어 페이퍼트가 한 층짜리 퍼셉트론의 한계를 엄밀히 보인 뒤 신경망 연구는 한동안 가라앉았고, 1986년 데이비드 러멜하트, 제프리 힌턴, 로널드 윌리엄스가 여러 층의 신경망을 역전파로 학습시키는 방법을 널리 알리면서 되살아났습니다. 1989년 벨 연구소의 얀 르쿤과 동료들은 손으로 쓴 우편번호 숫자를 합성곱 신경망(작은 필터⁠(filter)⁠ 하나를 사진 위로 미끄러뜨리며 같은 무늬를 찾는 신경망)으로 읽었고, 1990년대에는 같은 연구소의 블라디미르 바프니크 등이 일반화의 이론 위에 두 무리 사이의 빈 띠를 가장 넓히는 경계를 고르는 서포트 벡터 머신을 세웠습니다. 2012년 알렉스 크리젭스키, 일리야 수츠케버, 힌턴의 깊은 신경망이 GPU로 학습해 120만 장짜리 사진 분류 대회(페이페이 리가 만든 ImageNet)에서 큰 차이로 이기면서, 층을 여러 겹 쌓은 깊은 신경망으로 배우는 '딥 러닝⁠(deep learning)⁠'의 시대가 열렸습니다. 2016년 3월 서울에서는 강화 학습과 신경망에 몬테카를로 트리 탐색⁠(Monte Carlo tree search)⁠을 엮은 딥마인드의 알파고가 이세돌 9단을 4 대 1로 이겼고, 2017년 구글 연구자들이 발표한 트랜스포머⁠(transformer)⁠ 구조(문장 속 낱말마다 다른 낱말을 얼마나 참고할지 계산하는 신경망)는 오늘날의 대형 언어 모형의 바탕이 되었습니다.

이 위키의 학습 페이지들. 뉴런 하나와 학습 규칙은 퍼셉트론, 층을 쌓은 모형은 신경망, 그 학습은 경사 하강법⁠(gradient descent)⁠과 역전파, 일반화의 함정은 과적합, 편향–분산 분해, 정규화, 교차 검증, 차원의 저주⁠(curse of dimensionality)⁠에서 다룹니다. 거리로 배우는 방법은 최근접 이웃 분류, k-평균 군집, 코사인 유사도⁠(cosine similarity)⁠, 마할라노비스 거리⁠(Mahalanobis distance)⁠에, 선형대수⁠(linear algebra)⁠로 배우는 방법은 최소제곱 회귀와 주성분 분석에 있습니다. 확률 모형으로 배우는 쪽은 최대가능도법, 베이즈 정리, 마르코프 연쇄⁠(Markov chain)⁠, 은닉 마르코프 모델⁠(hidden Markov model)⁠이고, 언어를 배우는 모형은 n-그램⁠(n-gram)⁠과 단어 임베딩에서 토큰화, 어텐션⁠(attention)⁠, 트랜스포머, 언어 모델⁠(language model)⁠로 이어집니다. 분류 모형으로는 로지스틱 회귀, 결정 트리, 서포트 벡터 머신이, 깊은 신경망의 갈래로는 합성곱 신경망⁠(convolutional neural network)⁠, 순환 신경망⁠(recurrent neural network)⁠, 오토인코더, 확산 모델⁠(diffusion model)⁠이 있고, 보상으로 배우는 쪽은 강화 학습입니다. 손실과 정보의 관계는 쿨백–라이블러 발산과 상호 정보량⁠(mutual information)⁠에서 이어집니다.

이어지는 곳. 기계 학습은 기계에게 지능이 필요한 일을 시키려는 인공지능⁠(artificial intelligence)⁠의 한 갈래입니다. 본 자료에서 보지 못한 자료로 넓혀 말하는 문제는 통계학의 오랜 질문이고, 무작위로 섞은 학습 순서와 초기값이 왜 도움이 되는지는 무작위성에서, 손실을 가장 작게 하는 일반적인 원리는 가장 좋은 것 고르기에서 이어집니다. 기계가 무엇을 계산할 수 있는지라는 더 오래된 질문은 튜링 기계⁠(Turing machine)⁠에서 시작합니다. 2022년 이후 큰 언어 모델에서 일어난 일은 언어 모델의 발전사에 날짜순으로 모여 있습니다.

이 개념이 나오는 큰 생각쌍대성

이 개념이 나오는 긴 글

비유클리드 기하 평행선의 반란 유클리드의 다섯 번째 공준은 2,000년 동안 증명되지 않았다. 증명을 포기한 사람들이 찾은 것은 새로운 우주였다. 거리와 유사도 까마귀와 택시 까마귀는 곧장 날고 택시는 블록을 돌아간다. '얼마나 먼가'에는 답이 하나가 아니고, 어떤 거리를 고르느냐가 통계와 기계 학습의 답을 바꾼다. 신경망과 기계 학습 배우는 기계 예를 보여 주면 규칙을 스스로 찾는 기계. 1958년의 퍼셉트론에서 오늘의 심층 신경망까지, 그 밑바닥에는 미분과 연쇄법칙이 있다. 게임과 증명 이기는 쪽이 존재한다 "이 판은 백이 이겼다"는 흑이 어떻게 두든 백에게 답이 있다는 말이다. 체스의 체르멜로 정리, ε–δ, 님의 이진법, 폰 노이만의 최소최대와 쌍대성, 논리의 한계를 재는 게임, 끝나지 않는 게임과 선택공리, 대화로 읽는 증명, 겨루며 배우는 신경망까지. 수학의 참을 두 사람의 게임으로 읽는다.

이 개념 위에 세워진 것

이 개념을 언급하는 페이지

이 페이지가 가리키는 개념