기계 학습(Machine learning)
규칙을 사람이 적어 넣는 대신 예에서 규칙을 찾게 하는 방법. 목표는 본 예를 외우는 것이 아니라 처음 보는 예에서 맞히는 것(일반화)이라서, 성능은 학습에 쓰지 않은 시험 데이터(test set)로 잰다.
스팸 메일을 걸러 내는 프로그램을 만든다고 합시다. '무료'라는 낱말이 있으면 스팸, 보낸 사람이 주소록에 있으면 정상, … 하는 식으로 규칙을 손으로 적을 수도 있지만, 규칙은 끝이 없고 스팸을 보내는 쪽은 규칙을 금세 피해 갑니다. 다른 길이 있습니다. 사람이 '스팸'과 '정상'으로 이름표를 붙여 둔 메일 수만 통을 보여 주고, 이름표를 가장 잘 맞히는 규칙을 컴퓨터가 찾게 하는 것입니다. 이렇게 예에서 규칙을 찾는 방법을 기계 학습이라 합니다.
무엇을 하는가. 조금 정확히 말하면 이렇습니다. 입력 x(메일)와 정답 y(스팸인지)의 짝 n개, 곧 학습 데이터(training set)가 있습니다. 미리 정해 둔 규칙들의 모임
가장 단순한 예로 봅시다. 수 하나로 나타낸 예들이 파랑과 노랑 두 무리에서 나오는데, 두 무리의 분포(곡선)가 겹쳐 있습니다. 어느 무리인지 알고 뽑은 학습 데이터 n =
학습 데이터에서 틀린 비율은
예가 많아지면 문턱 규칙의 시험 오차는 가장 좋은 값 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년 이후 큰 언어 모델에서 일어난 일은 언어 모델의 발전사에 날짜순으로 모여 있습니다.
이 개념이 나오는 긴 글
이 개념 위에 세워진 것
이 개념을 언급하는 페이지
- 베이즈 정리
… 확률을 "증거에 따라 갱신되는 믿음"으로 읽는 이 관점을 베이즈 통계라고 부르며, 오늘날 통계학과기계 학습의 큰 기둥입니다. 관측 하나가 두 가설 가운데 한쪽으로 믿음을 평균적으로 얼마나 밀어 주는지도 잴 수 …
- 최근접 이웃 분류
… 점은 그 자리에 Q를 놓았을 때의 답입니다. 이것이 k-최근접 이웃 분류의 전부이고, 예로부터 규칙을 찾는기계 학습의 가장 단순한 방법입니다. 규칙을 따로 배우지 않고 예를 모두 기억해 두었다가, 물어볼 때마다 가까운 …
- k-평균 군집
… 이웃 분류⟧와 달리, k-평균은 정답 이름표 없이 데이터만 보고 구조를 찾는 비지도 학습입니다(기계 학습). 무리마다 정규분포를 가정하고 점을 확률로 부드럽게 나눠 배정하면 가우스 혼합 모형이 되고, …
- 퍼셉트론
… 프랭크 로젠블랫이 발표했습니다. 규칙을 사람이 적어 넣지 않고 예로부터 기계가 스스로 고쳐 나가게 한,기계 학습의 첫 모형 가운데 하나입니다. 그 바탕은 1943년 신경생리학자 맥컬러와 젊은 논리학자 피츠가 …
- 신경망
… 리⟧가 연 대규모 이미지 인식 대회(ImageNet)에서 다른 방법들을 큰 차이로 이기면서 딥러닝이기계 학습의 중심이 되었습니다. 낱말을 수의 벡터로 바꾸는 단어 임베딩은 작은 신경망이 배운 가중치이고, 앞 …
- 과적합
… 두고 맞추는 데에는 쓰지 않은 검증 데이터입니다. 학습에 쓰지 않은 새 데이터에서도 잘 맞는지(일반화)가기계 학습이 정말로 바라는 것이고, 검증 데이터는 그것을 재는 잣대입니다. 새 표본 노란 곡선은 흰 점만 보고 맞춘 …
- 상호 정보량
… 조건이 바로 충분성입니다. 상호 정보량은 여러 곳에서 '관련성'의 잣대로 쓰입니다. 자료에서 규칙을 배우는기계 학습에서는 예측에 쓸 입력 변수(특징) 가운데 정답과의 상호 정보량이 큰 것을 고릅니다. 예/아니오 질문을 …
- 쿨백–라이블러 발산
… 되니, 튜링의 데시반은 이 덧셈을 손으로 하기 위한 단위였습니다. 오늘날 가장 많이 계산되는 KL 발산은기계 학습의 손실 함수, 곧 모형이 얼마나 틀렸는지를 재어 줄여 나가는 값에 숨어 있습니다. 분류하는 신경망은 …
- 통계학
… 회귀⟧. 계산으로 하는 통계: 몬테카를로 방법과 마르코프 연쇄. 자료에서 규칙을 배우는 쪽은기계 학습입니다. 이어지는 곳. 통계학과 기계 학습은 같은 질문을 다른 말투로 묻습니다. '본 자료에서 보지 …
- 최대가능도법
… 평균이 쿨백–라이블러 발산입니다. 추정 전반은 통계학에서, 자료에서 규칙을 배우는 넓은 틀은기계 학습에서 이어집니다.
- 인공지능
… 사람이 아는 것을 기호와 규칙으로 적어 넣는 길, 그리고 예를 많이 보여 주고 규칙을 찾게 하는 길(기계 학습)입니다. 이름이 생기기까지. 1950년 앨런 튜링은 「계산 기계와 지능」에서 '기계가 생각할 수 …