수학 개념 지도
확률과 통계(Probability and statistics)

최소제곱 회귀(Least-squares regression)

점들 사이를 가장 잘 지나는 직선. '잘'의 기준은 세로 오차의 제곱 합이 최소인 것이고, 그 직선은 투영으로 한 번에 구해진다.

min⁡m,b∑i(yi−(mxi+b))2,m=Cov⁡(x,y)Var⁡(x)\min_{m,b} \sum_i \bigl(y_i - (m x_i + b)\bigr)^2, \qquad m = \frac{\operatorname{Cov}(x,y)}{\operatorname{Var}(x)}
먼저 보면 좋은 개념분산과 표준편차정사영

흩어진 점들을 한 직선으로 요약하려면 "어떤 직선이 가장 좋은가"부터 정해야 합니다. 최소제곱법⁠(method of least squares)⁠은 각 점에서 직선까지의 세로 오차를 한 변으로 하는 정사각형을 그리고, 그 넓이⁠(area)⁠의 합을 가장 작게 만드는 직선을 고릅니다. 점을 끌어 보세요. 지금은 이고, 정사각형 넓이의 합은 입니다(최솟값 ).

분홍 정사각형 하나가 점 하나의 오차 제곱입니다. '직접 맞추기'에서는 노란 손잡이로 직선을 움직여 넓이 합을 줄여 보세요.

왜 제곱일까요? 제곱 합은 기울기⁠(slope)⁠에 대한 매끄러운 포물선⁠(parabola)⁠이라 최적화⁠(optimization)⁠가 쉽습니다. 아래 그래프는 기울기마다(절편은 그 기울기에 맞게 최선으로 두고) 오차 제곱 합을 그린 것입니다. 바닥, 곧 미분계수⁠(derivative)⁠가 0인 곳이 답입니다. 계산해 보면 그 기울기는 x와 y의 공분산(x가 평균⁠(mean)⁠보다 클 때 y도 평균보다 큰 경향을 재는 값)을 x의 분산⁠(variance)⁠으로 나눈 값입니다.

기울기 m에 따른 오차 제곱 합. 노란 점이 지금 직선, 청록 점이 최소입니다.

선형대수⁠(linear algebra)⁠로 보면 더 깔끔합니다. 점이 여섯 개라면, 여섯 관측값 y를 한 줄로 세운 것을 6차원 벡터⁠(vector)⁠ y⃗\vec y로 봅니다. 직선 y=mx+by = mx + b가 여섯 x에서 내놓는 예측값도 6차원 벡터 mx⃗+b1⃗m\vec x + b\vec 1입니다(1⃗\vec 1은 성분이 모두 1인 벡터). m과 b를 바꿔 가며 만들 수 있는 예측값 벡터들은 두 벡터 x⃗\vec x, 1⃗\vec 1이 펼치는 평면을 이루는데, 두 벡터를 열로 세운 행렬⁠(matrix)⁠ A의 열공간⁠(column space)⁠입니다. 오차 제곱 합은 y⃗\vec y에서 이 평면 위 점까지의 거리의 제곱이므로, 가장 가까운 점, 곧 y⃗\vec y를 평면에 정사영⁠(orthogonal projection)⁠한 점이 회귀 직선의 예측값입니다.

정사영에서는 남은 오차 벡터가 평면과 수직입니다. 이 조건을 내적⁠(dot product)⁠으로 쓰면(오차가 x⃗\vec x와도 1⃗\vec 1과도 내적이 0) 계수 β⃗=(m,b)\vec\beta = (m, b)에 대한 정규방정식⁠(normal equations)⁠ A⊤A β⃗=A⊤y⃗A^\top A\,\vec\beta = A^\top \vec y가 나오고, 이것은 미지수 두 개짜리 연립일차방정식⁠(system of linear equations)⁠이라 바로 풀 수 있습니다. 단, x값이 모두 같으면 x⃗\vec x와 1⃗\vec 1이 한 방향이 되어 평면이 직선으로 쪼그라들고, 기울기가 하나로 정해지지 않습니다.

변수가 수백만 개인 모형에서는 정규방정식을 푸는 대신, 오차 제곱 합의 기울기 반대쪽으로 조금씩 내려가는 경사 하강법⁠(gradient descent)⁠으로 같은 바닥을 찾습니다.

세로 오차 대신 직선에 수직으로 잰 거리(점에서 직선까지의 가장 짧은 거리)를 줄이면 다른 직선이 나옵니다. 그것이 주성분 분석⁠(principal component analysis)⁠의 첫 번째 축입니다. x와 y의 역할이 대칭인지, x로 y를 예측하려는지에 따라 고르면 됩니다.

관측값과 직선의 예측값의 차이를 잔차라고 합니다. 잔차⁠(residual)⁠의 제곱 대신 절댓값⁠(absolute value)⁠의 합을 줄이면(L1 회귀⁠, L1 regression⁠), 평균 대신 중앙값⁠(median)⁠을 쓰는 것처럼 동떨어진 이상값⁠(outlier)⁠ 하나에 덜 흔들리는 직선이 나옵니다.

최소제곱법은 1805년 프랑스의 르장드르가 혜성 궤도⁠(orbit)⁠ 계산에 쓰면서 처음 발표했습니다. 가우스는 1809년, 자신은 1795년부터 이 방법을 써 왔고 1801년 사라진 소행성 세레스의 궤도도 이것으로 찾았다고 밝혔습니다. 두 사람은 누가 먼저인지를 두고 다투었습니다.

이 방법에 '회귀'라는 이름이 붙은 것은 골턴 때문입니다. 1880년대 그는 키가 큰 부모의 자식이 대개 부모만큼 크지는 않고 평균 쪽으로 돌아온다는 것을 보고 이를 평균으로의 회귀⁠(regression to the mean)⁠라 불렀는데, 부모 키로 자식 키를 예측하는 이 직선에 그 이름이 그대로 붙었습니다. 기울기는 상관계수⁠(correlation coefficient)⁠에 두 표준편차⁠(standard deviation)⁠의 비 σy/σx\sigma_y/\sigma_x를 곱한 값입니다. 점들이 한 직선 위에 있지 않으면 상관계수의 크기가 1보다 작으니, x가 평균에서 표준편차 하나만큼 벗어나도 예측값은 평균에서 표준편차 하나보다 덜 벗어납니다. 이것이 곧 회귀입니다.

오차를 어떻게 재느냐는 선택입니다. 제곱의 합(L2), 절댓값의 합(L1)은 모두 어떤 Lp 노름⁠(Lp norm)⁠으로 오차 벡터의 길이를 재느냐의 차이입니다. 계수 자체에 벌점을 더하기도 합니다. 오차 제곱 합에 계수들의 절댓값 합을 더한 것을 최소로 하는 방법을 라소(LASSO)라 하는데, 기여가 작은 변수들의 계수를 정확히 0으로 만드는 경향이 있어서 변수를 골라 주는 효과가 있습니다. 계수에 벌점을 주는 까닭은 직선 대신 고차 다항식⁠(polynomial)⁠처럼 유연한 모형을 쓸 때 데이터에 섞인 잡음까지 외워 버리는 과적합⁠(overfitting)⁠을 막기 위해서입니다. 예측할 값이 수가 아니라 예/아니오라면 직선을 그대로 맞추는 대신, 직선의 값을 S자 곡선에 넣어 '예일 확률⁠(probability)⁠'로 바꾸는 로지스틱 회귀⁠(logistic regression)⁠를 씁니다.

이 개념이 나오는 긴 글

확률 도박판에서 온 편지 1654년, 도중에 멈춘 내기의 판돈을 어떻게 나눌까? 두 수학자가 주고받은 편지에서 확률론이 태어났다. 삼각함수 원에서 파동으로 별의 위치를 재던 현의 표가 사인이 되고, 열의 흐름을 풀던 푸리에가 모든 파동을 사인으로 쪼갰다. 최소제곱과 선형대수 잃어버린 소행성 1801년, 발견 몇 주 만에 태양 뒤로 사라진 세레스. 스물네 살의 가우스는 흩어진 관측값에서 궤도를 되찾았다. 혼돈 나비의 날갯짓 방정식이 정해져 있으면 미래도 정해질까? 소수점 아래 몇 자리를 버린 계산이 날씨 예보의 한계를 드러냈다. 통계와 인과 담배와 폐암 상관관계는 인과관계가 아니라고들 한다. 그렇다면 담배가 폐암을 일으킨다는 것은 어떻게 알게 되었을까? 거리와 유사도 까마귀와 택시 까마귀는 곧장 날고 택시는 블록을 돌아간다. '얼마나 먼가'에는 답이 하나가 아니고, 어떤 거리를 고르느냐가 통계와 기계 학습의 답을 바꾼다. 계산언어학 말을 세는 기계 문법은 규칙일까, 확률일까? 파니니의 문법에서 촘스키의 위계, 섀넌의 영어 엔트로피, 오늘날의 언어 모델까지. 신경망과 기계 학습 배우는 기계 예를 보여 주면 규칙을 스스로 찾는 기계. 1958년의 퍼셉트론에서 오늘의 심층 신경망까지, 그 밑바닥에는 미분과 연쇄법칙이 있다. 역문제 거꾸로 푸는 문제는 왜 어려운가 원인에서 결과를 계산하기는 쉽다. 흐린 사진, CT, 블랙홀 사진은 왜 결과에서 원인을 되찾기 어려웠을까? 작은 특잇값이 잡음을 키우는 벽과, 정규화·릿지 회귀·베이즈 사전확률이 사실은 같은 처방이라는 이야기.

이 개념 위에 세워진 것

이 개념을 언급하는 페이지

이 페이지가 가리키는 개념