총최소제곱

오류 제보
수치해석 통계 마지막 수정: 2026-10-16 04:49:03

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

1. 개요

총최소제곱
Total Least Squares (TLS)
문제Ax ≈ b 에서 A 와 b 둘 다 오차를 허용
뿌리에이드콕 (1878), 피어슨 (1901), 데밍 (1943)
이름 · 수치 분석골럽 · 밴 론 (1980)
계산증강 행렬 [A b] 의 SVD — 최소 특이벡터
가정모든 성분의 오차가 독립 · 같은 분산
별칭직교 회귀, 오차-변수 모형의 해법

보통 최소제곱은 xx 를 믿고 yy 만 의심한다. 둘 다 측정했다면 둘 다 의심해야 한다.

총최소제곱(total least squares, TLS)은 과결정 선형계 Ax≈bA\mathbf x \approx \mathbf b 를 풀 때 우변 b\mathbf b 뿐 아니라 계수행렬 AA 에도 오차가 있다고 보고, 두 쪽의 수정량을 합쳐 가장 작게 만드는 해를 찾는 방법이다. 보통의 최소자승법(OLS)이 ”AA 는 정확하다”고 가정하고 수직 거리만 줄이는 것과 달리, TLS 는 데이터 점에서 맞춤 초평면까지의 수직이 아닌 직교 거리를 줄인다.

통계 쪽에서는 오차-변수 모형(errors-in-variables)의 직교 회귀로 19세기부터 알려져 있었고, 1980년 골럽·밴 론이 특이값 분해를 이용한 수치 해법과 존재·유일성 조건을 정리하며 지금의 이름을 붙였다.1 이후 신호처리(ESPRIT·시스템 식별), 컴퓨터 비전, 그리고 잡음 낀 스냅숏으로 고유값을 뽑는 동적 모드 분해의 편향 보정에 쓰인다.

2. 문제 설정

A∈Rm×nA\in\mathbb R^{m\times n}, b∈Rm\mathbf b\in\mathbb R^m (m>nm > n) 에 대해

min⁡ΔA, Δb ∥[ ΔA  Δb ]∥Fs.t.(A+ΔA) x=b+Δb.\min_{\Delta A,\ \Delta\mathbf b}\ \bigl\|[\,\Delta A\ \ \Delta\mathbf b\,]\bigr\|_F \quad\text{s.t.}\quad (A+\Delta A)\,\mathbf x = \mathbf b + \Delta\mathbf b.

OLS 는 ΔA=0\Delta A = 0 을 강제한 특수한 경우다. 제약은 “증강 행렬 C=[ A  b ]C = [\,A\ \ \mathbf b\,] 에 수정 ΔC\Delta C 를 가해 (x,−1)(\mathbf x, -1) 이 영공간에 들어가게 하라”, 즉 C+ΔCC+\Delta C 의 랭크를 하나 떨어뜨려라는 뜻이다. 그런데 프로베니우스 노름으로 랭크를 하나 떨어뜨리는 최소 수정은 에카르트-영 정리가 이미 답해 두었다(저랭크 근사) — 가장 작은 특이값 성분을 지우는 것이다.

3. SVD 해법

C=UΣVTC = U\Sigma V^{\mathsf T}, 특이값 σ1≥⋯≥σn+1\sigma_1\ge\dots\ge\sigma_{n+1} 이라 하자. 최소 수정은 ΔC=−σn+1un+1vn+1T\Delta C = -\sigma_{n+1}\mathbf u_{n+1}\mathbf v_{n+1}^{\mathsf T} 이고, 잔차 노름은 σn+1\sigma_{n+1} 이다. 마지막 우특이벡터 vn+1\mathbf v_{n+1} 을 (v1:n, vn+1,n+1)(\mathbf v_{1:n},\ v_{n+1,n+1}) 로 나누면

xTLS=−v1:nvn+1,n+1.\mathbf x_{\text{TLS}} = -\frac{\mathbf v_{1:n}}{v_{n+1,n+1}}.

vn+1,n+1=0v_{n+1,n+1} = 0 이면 해가 없다(비생성, nongeneric 문제). 골럽·밴 론의 충분조건은 AA 자체의 최소 특이값 σn′\sigma'_n 이 증강 행렬의 최소 특이값보다 엄격히 크다는 것, σn′>σn+1\sigma'_n > \sigma_{n+1} 이다. 이게 성립하면 해가 유일하고 닫힌꼴로도 쓸 수 있다.

xTLS=(ATA−σn+12I)−1ATb.\mathbf x_{\text{TLS}} = \bigl(A^{\mathsf T}A - \sigma_{n+1}^2 I\bigr)^{-1}A^{\mathsf T}\mathbf b.

OLS 의 정규방정식 (ATA)−1ATb(A^{\mathsf T}A)^{-1}A^{\mathsf T}\mathbf b 와 비교하면 대각에서 σn+12\sigma_{n+1}^2 를 빼고 있다. 티호노프 정규화가 λI\lambda I 를 더해 해를 줄이는 것과 정반대 — TLS 는 역정규화(deregularization)다. 그래서 TLS 해는 OLS 해보다 노름이 크고, σn′\sigma'_n 과 σn+1\sigma_{n+1} 이 가까우면 조건이 나빠져 폭주한다.2 실무에서 잡음이 크고 문제가 나쁜 조건이면 작은 특이값을 여러 개 버리는 절단 TLS 나 정규화된 TLS 를 쓴다.

동차형. b\mathbf b 를 따로 두지 않고 Cz≈0C\mathbf z \approx \mathbf 0, ∥z∥=1\|\mathbf z\| = 1 을 풀면 답은 바로 z=vn+1\mathbf z = \mathbf v_{n+1} 이다. 컴퓨터 비전의 직접 선형 변환(DLT)으로 호모그래피·기본행렬을 추정할 때 “SVD 의 마지막 열을 취한다”는 국룰이 이 동차 TLS 다.

4. 직선 맞춤 — OLS 는 기울기를 깎는다

2차원 점 (xi,yi)(x_i, y_i) 에 직선을 맞추는 경우 TLS 는 직교 회귀가 된다. 평균을 뺀 공분산 행렬 (sxxsxysxysyy)\begin{pmatrix}s_{xx} & s_{xy}\\ s_{xy} & s_{yy}\end{pmatrix} 의 가장 큰 고유벡터 방향이 직선의 방향이고, 이것은 주성분 분석의 첫 주성분과 같다. 피어슨(1901)의 “점들에 가장 가까운 직선과 평면” 논문이 PCA 의 기원이자 TLS 의 기원으로 함께 꼽히는 이유다.

xx 에 오차가 있을 때 OLS 의 문제는 분명하다. 참값 ξ\xi 의 분산이 σξ2\sigma_\xi^2, xx 의 측정오차 분산이 σx2\sigma_x^2 이면 OLS 기울기는 대표본에서

β^OLS→β σξ2σξ2+σx2\hat\beta_{\text{OLS}} \to \beta\,\frac{\sigma_\xi^2}{\sigma_\xi^2 + \sigma_x^2}

로 0 쪽으로 깎인다. 이것을 감쇠 편향(attenuation, regression dilution)이라 한다. 데이터를 아무리 늘려도 줄지 않는다 — 분산이 아니라 편향이기 때문이다.

4.1. 검산 — 감쇠와 그 보정

참 기울기 2, ξ∼U(−1,1)\xi\sim U(-1,1) (σξ2=1/3\sigma_\xi^2 = 1/3), N=2000N=2000 점, 20회 반복 평균(± 표준편차).

경우OLSTLS역회귀(xx 를 yy 로)데밍
σx=σy=0.3\sigma_x = \sigma_y = 0.31.574 ± 0.0191.999 ± 0.0242.134 ± 0.026(TLS 와 동일)
σx=0.1, σy=0.5\sigma_x = 0.1,\ \sigma_y = 0.51.9332.295—1.993

첫 줄에서 OLS 는 이론 감쇠값 2×1/31/3+0.09=1.5752\times\frac{1/3}{1/3+0.09} = 1.575 에 정확히 떨어졌고, TLS 는 참값을 회복했다. 역회귀는 반대쪽으로 과대평가하므로, OLS 와 역회귀가 참값을 양쪽에서 끼운다는 고전적 사실도 보인다.

둘째 줄이 함정이다. TLS 는 모든 성분의 오차 분산이 같다고 가정한다. yy 오차가 xx 오차보다 5배 큰데 TLS 를 그대로 쓰면 2.30 으로 OLS 보다 더 틀린다. 분산비 δ=σy2/σx2\delta = \sigma_y^2/\sigma_x^2 를 알면 yy 를 δ\sqrt\delta 로 나눠 축척을 맞춘 뒤 TLS 를 하면 되는데, 이것이 데밍 회귀(Deming, 1943)다. 기울기 닫힌꼴은

β^=syy−δsxx+(syy−δsxx)2+4δsxy22sxy\hat\beta = \frac{s_{yy} - \delta s_{xx} + \sqrt{(s_{yy}-\delta s_{xx})^2 + 4\delta s_{xy}^2}}{2s_{xy}}

이고, 위 표에서 1.993 으로 참값을 되찾았다. 변수의 단위를 바꾸면 TLS 답이 바뀐다 — OLS 에는 없는 성질이라, 단위가 다른 열을 섞을 때는 반드시 오차 분산으로 스케일링부터 한다.3

5. 변종과 확장

  • 혼합 LS-TLS. AA 의 일부 열(예: 절편용 상수 열, 정확히 아는 입력)은 오차가 없다. 그 열들은 QR 로 먼저 사영해 빼고 나머지만 TLS 를 한다. 위 직선 맞춤에서 “평균을 먼저 뺀다”는 단계가 정확히 이것이다.
  • 가중·일반화 TLS. 오차 공분산이 대각이 아니거나 행마다 다르면 백색화 변환을 걸고 TLS 를 한다. 공분산을 알 때만 할 수 있다.
  • 구조적 TLS. AA 가 한켈·퇴플리츠처럼 구조가 있으면 무구조 수정 ΔA\Delta A 는 그 구조를 깬다. 구조를 지키는 수정만 허용하는 구조적 TLS(STLS)는 비볼록 최적화가 되고, 시스템 식별·지수 맞춤에서 쓴다.
  • 비선형으로. 모형이 비선형이면 직교 거리 회귀(orthogonal distance regression, ODR)가 된다. SciPy 의 scipy.odr 이 ODRPACK 을 감싼 구현이다.

6. 시뮬레이션에서 만나는 곳

  • DMD 편향 보정. 스냅숏 행렬 XX 와 X′X' 에 둘 다 측정잡음이 있으면 표준 DMD 의 A=X′X+A = X'X^{+} 는 OLS 라서 고유값이 단위원 안쪽으로 끌려간다(감쇠 과대평가). 헤마티 외(2017)의 TLS-DMD 는 [X; X′][X;\ X'] 를 쌓아 SVD 로 공통 부분공간에 사영한 뒤 DMD 를 해 이 편향을 없앤다. 감쇠 편향의 고차원판이다. 쿠프만 연산자 근사에서 같은 문제가 그대로 나온다.
  • 실험 데이터로 물성 맞춤. 응력-변형률, 온도-점도처럼 양쪽을 다 측정한 데이터로 계수를 뽑으면서 OLS 를 쓰면 기울기(탄성계수·활성화 에너지)가 체계적으로 작게 나온다. 측정 오차 예산을 알면 데밍/ODR 이 정답이다.
  • ESPRIT·주파수 추정. 신호 부분공간의 회전 불변성 방정식 U1Φ≈U2U_1\Phi\approx U_2 에서 U1U_1, U2U_2 둘 다 추정치라 TLS-ESPRIT 가 LS-ESPRIT 보다 편향이 적다.
  • 기하 처리. 점구름에서 평면·법선 추정, 메시 노멀 계산은 국소 공분산의 최소 고유벡터 — 동차 TLS 그 자체다.

7. 관련 문서

8. Footnotes

  1. 사실 “총”(total)이라는 이름은 ”AA 와 b\mathbf b 의 오차를 총합으로 본다”는 뜻이다. 다 합쳐서 최소라 총최소, 이름이 정직하다. ↩

  2. 정규화는 해를 겸손하게 만들고, 역정규화는 해를 자신만만하게 만든다. 잡음 많은 데이터에서 자신만만한 해가 어떻게 되는지는 다들 알 것이다. ↩

  3. 실험실에서 “같은 데이터인데 mm 로 바꾸니까 기울기가 바뀌었어요”라는 질문이 나오면 십중팔구 누군가 직교 회귀를 스케일링 없이 돌린 것이다. ↩

검증 자료

이 문서의 주요 출처

  1. Golub & Van Loan (1980), An analysis of the total least squares problem, SIAM J. Numer. Anal. 17(6), 883-893
  2. Van Huffel & Vandewalle (1991), The Total Least Squares Problem: Computational Aspects and Analysis, SIAM
  3. Markovsky & Van Huffel (2007), Overview of total least-squares methods, Signal Processing 87(10), 2283-2302
  4. Pearson (1901), On lines and planes of closest fit to systems of points in space, Phil. Mag. 2(11), 559-572
  5. Hemati, Rowley, Deem & Cattafesta (2017), De-biasing the dynamic mode decomposition for applied Koopman spectral analysis of noisy datasets, Theor. Comput. Fluid Dyn. 31, 349-368
이 문서가 문제를 푸는 데 도움이 됐나요? 한 번의 클릭이 다음 검수 순서를 정합니다.

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

다음으로 읽기 특이값 분해 약 5분 더 탐색 →