최소자승법

오류 제보
수치해석 통계 마지막 수정: 2026-09-28 04:14:22

○ 공개 검수 대기 AI 보조 작성 표시 기준 보기

1. 개요

최소자승법(Least Squares Method, 최소제곱법)은 주어진 데이터와 모델 사이의 잔차 제곱합(sum of squared residuals)을 최소화하는 방향으로 모델의 미지 계수를 결정하는 방법이다. 방정식보다 관측이 더 많아 정확히는 풀 수 없는 과결정계(overdetermined system)를 다룰 때, “완벽하게 맞출 수 없다면 가장 덜 틀리게 맞추자”는 타협의 산물이다. 1805년 르장드르(Legendre)가 처음 발표했고, 가우스는 자기가 먼저 썼다고 우겼다.1

우선권 논쟁의 사료를 뒤져 “가우스가 정말 1795년부터 썼는가”를 따진 스티글러의 논문이 이 분야의 표준 참고문헌이다.2 측정에는 오차가 따르므로 데이터 개수가 미지수보다 많은 상황이 오히려 정상이다. 이때 모든 데이터를 동시에 만족시키는 해는 없지만, 오차를 통계적으로 가장 잘 상쇄하는 “최선의 근사해”는 존재한다. 최소자승법은 회귀분석, 곡선맞춤, 데이터 보정, 나아가 보간과 근사의 근사(approximation) 쪽을 떠받치는 기둥이다.

2. 문제 설정과 정규방정식

mm개의 데이터를 nn개의 미지수(m>nm > n)로 설명하는 선형 모델을 세우면 과결정 연립방정식 Ax=bA\mathbf{x} = \mathbf{b}가 된다. AA는 m×nm \times n 직사각 행렬이라 일반적으로 정확한 해가 없다. 대신 잔차 r=b−Ax\mathbf{r} = \mathbf{b} - A\mathbf{x}의 유클리드 노름 제곱을 최소화한다.

min⁡x  ∥Ax−b∥22\min_{\mathbf{x}} \; \|A\mathbf{x} - \mathbf{b}\|_2^2

이 목적함수를 x\mathbf{x}로 미분해 0으로 놓으면 그 유명한 정규방정식(normal equations)이 나온다.

A⊤A x=A⊤bA^\top A\, \mathbf{x} = A^\top \mathbf{b}

A⊤AA^\top A는 n×nn\times n 정사각 대칭 행렬이므로, 이론적으로는 가우스 소거법이나 촐레스키 분해로 바로 풀 수 있다. 기하학적으로 보면 이 해는 b\mathbf{b}를 AA의 열공간(column space)에 정사영(orthogonal projection)한 것이다. 잔차가 열공간에 수직이 되는 지점, 즉 더 이상 줄일 수 없는 최선의 자리다.3

3. 정규방정식의 함정

정규방정식은 깔끔해 보이지만 실무에서는 지뢰다. A⊤AA^\top A를 만드는 순간 조건수(condition number)가 제곱으로 나빠지기 때문이다. AA의 조건수가 κ\kappa라면 A⊤AA^\top A의 조건수는 κ2\kappa^2가 된다.

κ(A⊤A)=κ(A)2\kappa(A^\top A) = \kappa(A)^2

여기서 κ\kappa는 조건수다. 원래도 아슬아슬하던 문제가 정규방정식을 세우는 순간 수치적으로 폭발할 수 있다는 뜻이다. 그래서 정밀도가 중요한 상황에서는 A⊤AA^\top A를 아예 만들지 않고 AA를 직접 분해하는 길을 택한다.

3.1. 검산: 뢰힐리 행렬

이 함정이 말장난이 아니라는 걸 보여주는 표준 반례가 뢰힐리(Läuchli) 행렬이다.4

A=[11ε00ε],b=[2εε]  ⇒  x참=(1, 1)A = \begin{bmatrix} 1 & 1 \\ \varepsilon & 0 \\ 0 & \varepsilon \end{bmatrix}, \qquad \mathbf{b} = \begin{bmatrix} 2 \\ \varepsilon \\ \varepsilon \end{bmatrix} \;\Rightarrow\; \mathbf{x}_\text{참} = (1,\,1)

AA 자체는 κ(A)≈2/ε\kappa(A) \approx \sqrt{2}/\varepsilon 로 멀쩡한데, A⊤AA^\top A를 만드는 순간 대각 밖 성분이 11, 대각이 1+ε21+\varepsilon^2 이 되어 ε2\varepsilon^2 이 배정밀도 반올림에 먹힌다. 배정밀도로 실제로 돌려 보면 이렇게 나온다.

ε\varepsilonκ(A)\kappa(A)κ(A⊤A)\kappa(A^\top A)정규방정식QRSVD
1e-41.41e+42.00e+85.0e-92.2e-163.5e-16
1e-71.41e+71.99e+141.1e-23.1e-164.4e-16
1e-81.41e+85.96e+16촐레스키 실패0.03.5e-16

ε=10−8\varepsilon = 10^{-8}, 즉 κ(A)≈1.4×108\kappa(A) \approx 1.4\times10^8 밖에 안 되는 순한 문제에서 이미 A⊤AA^\top A가 수치적으로 양정치가 아니게 되어 촐레스키 분해가 죽는다. 같은 문제를 QR로 풀면 오차가 10−1610^{-16} 수준이다. ε=10−7\varepsilon = 10^{-7} 줄은 더 고약하다 — 아무 경고 없이 답이 1% 틀린 채로 리턴된다.

3.2. 검산: 다항식 맞춤에서의 실측

인위적인 반례만 그런 게 아니다. [0,1][0,1] 구간의 등간격 점 40개에서 y=exy = e^x 를 차수 pp 다항식으로 맞추는, 실무에서 널리 하는 그 작업이다.

차수 ppκ(A)\kappa(A)κ(A⊤A)\kappa(A^\top A)정규방정식 상대오차QR 상대오차
31.16e+21.35e+41.5e-135.2e-15
61.94e+43.76e+81.4e-84.7e-13
93.52e+61.24e+131.2e-41.1e-10
126.92e+83.11e+171.45 (전멸)2.6e-9

차수 12면 계수가 통째로 무의미해지는데, 이때도 κ(A)\kappa(A) 자체는 7×1087\times10^8 로 QR 에겐 여유가 있다. 여기서 두 가지를 같이 읽어야 한다. (1) 정규방정식이 잃는 자릿수는 log⁡10κ(A)2\log_{10}\kappa(A)^2, QR 이 잃는 건 log⁡10κ(A)\log_{10}\kappa(A) 다. (2) 그럼에도 12차 다항식 맞춤 자체가 나쁜 모델이다 — 근본 처방은 기저를 직교 다항식(체비쇼프 다항식 등)으로 바꿔 κ(A)\kappa(A) 를 애초에 키우지 않는 것이다.

4. QR과 SVD 기반 풀이

수치적으로 견고한 정공법은 QR 분해를 쓰는 것이다. A=QRA = QR로 분해하면(QQ는 직교, RR은 상삼각) 직교행렬이 노름을 보존하므로 최소자승 문제가 다음으로 축소된다.

Rx=Q⊤bR\mathbf{x} = Q^\top \mathbf{b}

RR이 상삼각이므로 후진대입으로 곧장 풀린다. 조건수를 제곱하지 않으니 정규방정식보다 훨씬 안정적이다.

더 극단적으로 병든 문제나 AA가 계수 부족(rank-deficient)인 경우에는 특이값 분해(SVD)가 최후의 보루다. A=UΣV⊤A = U\Sigma V^\top로 분해한 뒤 무어-펜로즈 유사역행렬 A+=VΣ+U⊤A^+ = V\Sigma^+ U^\top을 쓰면, 해가 유일하지 않을 때조차 노름이 가장 작은 해를 골라준다.5 계산량은 SVD가 가장 비싸지만, 신뢰성만큼은 최고다.

랭크가 애매한 경우 LAPACK 은 세 갈래 드라이버를 준다 — dgels(풀랭크 가정 QR), dgelsy(열 피벗 QR), dgelsd(분할정복 SVD). 잔차만 필요하면 dgels, 랭크 판정까지 필요하면 dgelsy, 특이값 스펙트럼을 직접 보고 자르고 싶으면 dgelsd 가 국룰이다. 아예 정규화로 문제를 바꾸는 길도 있다 — 작은 특이값을 자르는 대신 λ∥x∥2\lambda\|\mathbf{x}\|^2 항을 더하는 티호노프 정규화(통계 쪽 이름은 능형회귀)가 그것이다.

덧붙여, 최소자승법은 오차가 b\mathbf{b} 에만 있다고 가정한다는 점을 잊으면 안 된다. AA 쪽 측정값에도 오차가 있으면 추정이 계통적으로 0 쪽으로 치우치며(회귀 희석), 이때는 수직거리가 아니라 직교거리를 최소화하는 전체 최소자승법이 맞는 도구다.

방법수치 안정성비용계수 부족 대응
정규방정식나쁨(κ2\kappa^2)저렴불가
QR 분해좋음중간제한적
특이값 분해최고비쌈완벽

5. 곡선맞춤

최소자승법의 대표 응용은 데이터에 곡선을 맞추는 곡선맞춤(curve fitting)이다. 다항식 맞춤 y=c0+c1x+⋯+cpxpy = c_0 + c_1 x + \cdots + c_p x^p을 예로 들면, 데이터를 대입해 만든 반데르몬드(Vandermonde) 행렬이 곧 AA가 되고, 계수 벡터가 미지수 x\mathbf{x}가 된다. 여기서 주의할 점은 여기는 보간이 아니라 근사라는 것. 곡선이 모든 점을 통과할 필요는 없고, 전체적으로 가장 잘 지나가면 된다.6

가중치를 붙이면 신뢰도가 높은 데이터에 더 큰 발언권을 줄 수 있고(가중 최소자승, WLS), 이는 측정 분산이 제각각인 실험 데이터를 다룰 때 통계적으로 정당화된다. 잔차가 독립 정규분포를 따른다는 가정 아래에서 최소자승해는 최대우도추정량(MLE)과 일치한다는 점이, 이 방법이 통계학과 수치해석 양쪽에서 사랑받는 이유다.

5.1. 검산: 가중치가 실제로 분산을 줄이는가

이건 말로 때울 게 아니라 몬테카를로 방법으로 확인할 수 있다. y=1+2xy = 1 + 2x 에 표준편차가 σ(x)=0.05+0.4x\sigma(x) = 0.05 + 0.4x 로 자리마다 다른 잡음을 얹어 200점을 만들고, 이 실험을 2만 번 반복해 기울기 추정값의 분산을 쟀다.

  • 가중치 없는 보통 최소자승(OLS): Var⁡=5.183×10−3\operatorname{Var} = 5.183\times10^{-3}
  • wi=1/σiw_i = 1/\sigma_i 를 준 가중 최소자승(WLS): Var⁡=2.488×10−3\operatorname{Var} = 2.488\times10^{-3}

분산이 2.08배 작다. 둘 다 편향은 10−410^{-4} 수준으로 동일하니(둘 다 불편추정량이다) 순수하게 효율만 좋아진 것이고, WLS 쪽 실측 분산은 이론값 [(WA)⊤(WA)]−1[(WA)^\top(WA)]^{-1} 의 해당 성분 2.452×10−32.452\times10^{-3} 과 1.5% 안에서 맞는다. 가중치를 안 주면 잡음 큰 구간이 추정을 끌고 다닌다 — 가우스-마르코프 정리가 “최소분산 불편추정”을 보장하는 건 어디까지나 오차 분산이 같을 때다.

6. 비선형 최소자승

모델이 계수에 대해 비선형이면 정규방정식을 한 번에 풀 수 없다. 대신 현재 추정값 주변에서 모델을 선형화하고 선형 최소자승을 반복적으로 푸는 전략을 쓴다. 대표 알고리즘이 가우스-뉴턴법과, 여기에 감쇠 항 λ\lambda 를 더해 안정성을 높인 레벤버그-마쿼트 방법이다. 뿌리를 따라가면 뉴턴-랩슨법의 사촌뻘이다. 곡선 하나 맞추자고 반복 수렴을 기도하게 되는 순간, 수치해석러의 삶이 시작된다.

(J⊤J+λ diag(J⊤J)) Δp=−J⊤r(J^\top J + \lambda\, \mathrm{diag}(J^\top J))\,\Delta\mathbf{p} = -J^\top \mathbf{r}

λ→0\lambda \to 0 이면 가우스-뉴턴, λ→∞\lambda \to \infty 면 보폭이 작은 경사하강이 된다. 마쿼트가 1963년에 한 일이 바로 “두 방법 사이를 최적으로 보간한다”는 이 해석이고, 감쇠 항 자체는 1944년 레벤버그가 먼저 제안했다.

6.1. 검산: 초기값을 망쳤을 때

y=aebty = a e^{bt} 모델(a=2.5a=2.5, b=−1.3b=-1.3, 잡음 σ=0.01\sigma=0.01, 25점)에 초기 추정값만 바꿔 가며 두 알고리즘을 돌렸다.

초기값 (a0,b0)(a_0, b_0)가우스-뉴턴레벤버그-마쿼트
(1.0, −1.0)9회 수렴8회 수렴
(8.0, 1.5)15회 수렴13회 수렴
(0.1, 3.0)6회 만에 오버플로22회 수렴
(0.05, 4.0)6회 만에 오버플로26회 수렴

초기값이 그럭저럭이면 둘 다 잘 되고 수렴 횟수도 거의 같다. 차이는 지수가 양수인 엉뚱한 곳에서 출발했을 때 갈린다 — b0=3b_0 = 3 이면 e3te^{3t} 가 t=3t=3 에서 이미 8000이고, 가우스-뉴턴은 그 기울기를 그대로 믿고 뛰어 여섯 번 만에 inf 를 찍는다. LM 은 그 스텝이 잔차 제곱합을 줄이지 못하면 λ\lambda 를 10배씩 키워 보폭을 줄이므로 살아남는다. 수렴한 네 경우의 추정값은 모두 a=2.5018a = 2.5018, b=−1.3066b = -1.3066 으로 동일하다 — LM 이 더 좋은 답을 주는 게 아니라, 답에 도달하기를 포기하지 않는 것이다.

7. 시뮬레이션 속의 최소자승

최소자승법은 통계 교과서 밖, 시뮬레이션 코드 곳곳에도 숨어 있다. 유한체적법에서 비정렬 격자(unstructured mesh)의 기울기(gradient)를 계산할 때가 대표적이다. 셀 하나에 이웃이 여러 개 붙어 있으면 그 값들로부터 기울기를 정확히 결정할 수 없는 과결정 상황이 되는데, 이때 최소자승 기울기 재구성(least-squares gradient reconstruction)이 표준 처방이다. 바스-예스퍼슨(Barth–Jespersen)이 1989년에 정리한 그 방식으로, 이웃 값들의 차이를 가장 잘 설명하는 기울기 벡터를 최소자승으로 뽑아낸다.

min⁡∇u∑j∈N(i)wj[∇u⋅(xj−xi)−(uj−ui)]2,wj=1∥xj−xi∥\min_{\nabla u} \sum_{j \in N(i)} w_j \left[ \nabla u \cdot (\mathbf{x}_j - \mathbf{x}_i) - (u_j - u_i) \right]^2, \qquad w_j = \frac{1}{\|\mathbf{x}_j - \mathbf{x}_i\|}

7.1. 검산: 재구성 기울기의 정확도

중심 셀 주위에 이웃 6개를 무작위 방향·거리로 뿌린(비정렬 격자를 흉내 낸) 스텐실에서 위 식을 풀었다.

  • 선형장 u=3+2x−5yu = 3 + 2x - 5y: 재구성 기울기가 (2,−5)(2, -5) 와 9.9×10−169.9\times10^{-16} 이내로 일치한다. 즉 이 재구성은 선형장을 정확히 재현한다(linear exactness). 유한체적 코드가 2차 정확도를 주장하려면 반드시 통과해야 하는 관문이다.
  • 매끄러운 비선형장 u=sin⁡x eyu = \sin x \, e^{y}: 스텐실 크기 hh 를 0.2에서 0.025까지 줄이며 50개 무작위 스텐실의 평균 오차를 재면 5.41e-2 → 2.71e-2 → 1.36e-2 → 6.81e-3, 수렴 차수가 0.996 · 0.997 · 0.998 로 정확히 1차다.

두 번째 결과가 중요하다. “최소자승 기울기는 2차 정확”이라는 말을 자주 듣지만, 그건 스텐실이 대칭이라 2차 오차항이 상쇄될 때의 이야기다. 무작위 비정렬 스텐실에서는 상쇄가 일어나지 않아 기울기 자체는 1차로 떨어진다(그래도 플럭스 재구성을 거치면 유한체적법 해는 2차를 유지한다). 격자 품질이 떨어지는 부분에서 정확도가 조용히 새는 주된 경로가 여기다.

축소차수모델(reduced-order modeling)이나 대리 모델(surrogate model) 구축에서도 최소자승은 약방의 감초다. 비싼 시뮬레이션을 몇 번 돌려 얻은 샘플에 다항식이나 방사기저함수(RBF)를 최소자승으로 맞춰, 값싼 근사 모델을 세운다. 위상 최적화 같은 최적설계에서 설계 공간을 훑을 때 매번 풀 해석을 돌리는 대신 이 대리모델을 쿼리하면 시간을 극적으로 아낄 수 있다.7 데이터가 있는 곳이라면 최소자승은 늘 근처를 어슬렁거린다.

8. 관련 문서

9. Footnotes

  1. 가우스는 1809년 저서에서 “나는 1795년부터 이 방법을 썼다”고 주장했다. 우선권 논쟁은 수학사의 국룰이지만, 가우스는 오차의 정규분포(가우스 분포)와 최소자승을 통계적으로 연결하는 이론까지 세워버려서 사실상 판정승을 거뒀다. ↩

  2. 스티글러의 결론은 “가우스의 주장은 아마 사실이지만, 1805년 이전에 그 방법을 남에게 설명한 기록은 없다”에 가깝다. 우선권은 발명이 아니라 발표에 붙는다는 게 과학사의 잔인한 국룰이다. ↩

  3. 잔차 r\mathbf{r}이 AA의 열공간에 수직이라는 조건 A⊤r=0A^\top\mathbf{r}=0을 풀어 쓰면 그대로 정규방정식이 된다. 즉 정규방정식은 “잔차를 열공간에 직교시켜라”는 기하학적 명령을 대수로 옮긴 것이다. ↩

  4. 1961년 뢰힐리가 요르단 소거와 최소자승을 비교하며 내놓은 예다. 60년이 지나도 여전히 정규방정식의 위험을 보여주는 표준 교보재로 쓰인다 — 수치해석에서 반례는 늙지 않는다. ↩

  5. SVD는 특이값이 0에 가까운 성분을 잘라내는(truncated SVD) 방식으로 잡음까지 걸러낼 수 있다. 이 성질 덕분에 SVD는 영상 압축, 추천 시스템, 주성분 분석(PCA) 등 최소자승 바깥에서도 만능 열쇠 취급을 받는다. ↩

  6. 이걸 헷갈려서 “데이터 10개에 9차 다항식을 맞췄더니 완벽하게 통과한다”며 좋아하는 사람이 있는데, 그건 과적합(overfitting)의 교과서적 사례다. 점 사이에서 곡선이 미친 듯이 요동치는 룽게 현상을 목격하게 된다(과적합 문서가 이 이야기를 통계 쪽에서 다룬다). ↩

  7. 대리 모델을 잘못 믿으면 최적점이 아니라 근사 오차가 만든 가짜 골짜기로 수렴하는 참사가 벌어진다. 그래서 실무에서는 대리모델을 맹신하지 않고 주기적으로 진짜 시뮬레이션으로 검산하는 절차를 끼워 넣는다. 공짜 근사에는 늘 세금이 붙는다. ↩

검증 자료

이 문서의 주요 출처

  1. Å. Björck, Numerical Methods for Least Squares Problems (SIAM, 1996)
  2. N. J. Higham, Accuracy and Stability of Numerical Algorithms, 2nd ed. (SIAM, 2002) — Ch. 20 The Least Squares Problem
  3. P. Läuchli, "Jordan-Elimination und Ausgleichung nach kleinsten Quadraten", Numer. Math. 3 (1961) 226–240
  4. S. M. Stigler, "Gauss and the Invention of Least Squares", Ann. Statist. 9 (1981) 465–474
  5. D. W. Marquardt, "An Algorithm for Least-Squares Estimation of Nonlinear Parameters", J. SIAM 11 (1963) 431–441
  6. K. Levenberg, "A method for the solution of certain non-linear problems in least squares", Quart. Appl. Math. 2 (1944) 164–168
  7. T. J. Barth & D. C. Jespersen, "The design and application of upwind schemes on unstructured meshes", AIAA-89-0366 (1989)
  8. LAPACK Users' Guide, 3rd ed. — Linear Least Squares Problems (driver routines)
이 문서가 문제를 푸는 데 도움이 됐나요? 한 번의 클릭이 다음 검수 순서를 정합니다.

의견을 반영할게요. 감사합니다.

다음으로 읽기 축소차수모델 약 5분 더 탐색 →