가우스-뉴턴법

편집 역사 토론
수치해석 시뮬레이션 마지막 수정: 2026-07-20 04:07:15

1. 개요[편집]

가우스-뉴턴법
Gauss-Newton method
분야비선형 최소자승 · 최적화
목적함수잔차 제곱합 최소화
핵심 아이디어헤세 행렬을 자코비안 곱으로 근사
수렴잔차 작으면 준-2차, 크면 느림/발산
확장레벤버그-마쿼트, 신뢰 영역

가우스-뉴턴법(Gauss-Newton method)은 비선형 최소자승법 문제, 즉 잔차의 제곱합 12iri(x)2\frac{1}{2}\sum_i r_i(\mathbf{x})^2 을 최소화하는 문제를 풀기 위한 반복 최적화 알고리즘이다. 핵심은 뉴턴-랩슨법이 요구하는 헤세 행렬을 잔차 함수의 자코비안 행렬만으로 근사해버리는 것. 2차 미분을 계산하기 싫어서 1차 미분으로 때운다는 게 이 방법의 알파이자 오메가다.1

곡선 맞춤(curve fitting), 카메라 캘리브레이션, 로봇의 상태 추정, 역문제의 파라미터 식별 등 “모델을 데이터에 끼워 맞추는” 거의 모든 곳에서 등장한다. 순수 뉴턴법보다 계산이 싸고, 잔차가 작은 문제에서는 거의 2차 수렴에 가까운 속도를 낸다는 점 때문에 실무 최적화 라이브러리의 국룰 중 하나다.

2. 문제 설정과 유도[편집]

우리가 풀려는 것은 다음 목적함수의 최소화다.

S(x)=12i=1mri(x)2=12r(x)r(x)S(\mathbf{x}) = \frac{1}{2} \sum_{i=1}^{m} r_i(\mathbf{x})^2 = \frac{1}{2} \mathbf{r}(\mathbf{x})^\top \mathbf{r}(\mathbf{x})

여기서 r=(r1,,rm)\mathbf{r}=(r_1,\dots,r_m)^\top 은 잔차 벡터, xRn\mathbf{x}\in\mathbb{R}^n 은 추정할 파라미터다. SS 의 기울기(gradient)와 헤세는 다음과 같이 정확히 쓸 수 있다.

S=Jr,2S=JJ+i=1mri2ri\nabla S = \mathbf{J}^\top \mathbf{r}, \qquad \nabla^2 S = \mathbf{J}^\top \mathbf{J} + \sum_{i=1}^{m} r_i \nabla^2 r_i

여기서 J\mathbf{J} 는 잔차의 자코비안 행렬(Jij=ri/xjJ_{ij}=\partial r_i/\partial x_j)이다. 헤세의 뒷항 iri2ri\sum_i r_i \nabla^2 r_i 은 각 잔차의 2차 미분이 들어가서 계산이 번거롭고 비싸다. 가우스-뉴턴법의 발상은 이 뒷항을 통째로 버리는 것이다.

2SJJ\nabla^2 S \approx \mathbf{J}^\top \mathbf{J}

이 근사가 정당화되는 이유는 두 가지다. 잔차 rir_i 가 작거나(해에 잘 맞는 모델), 모델이 파라미터에 대해 거의 선형이라(2ri0\nabla^2 r_i \approx 0) 뒷항이 무시할 만할 때. 이 근사를 뉴턴 스텝 2SΔx=S\nabla^2 S \, \Delta\mathbf{x} = -\nabla S 에 넣으면 각 반복에서 다음 정규방정식(normal equation)을 푼다.

JJΔx=Jr,xk+1=xk+Δx\mathbf{J}^\top \mathbf{J} \, \Delta \mathbf{x} = -\mathbf{J}^\top \mathbf{r}, \qquad \mathbf{x}_{k+1} = \mathbf{x}_k + \Delta \mathbf{x}

이 식은 각 반복에서 잔차를 선형화(r(x+Δx)r+JΔx\mathbf{r}(\mathbf{x}+\Delta\mathbf{x})\approx \mathbf{r}+\mathbf{J}\Delta\mathbf{x})한 선형 최소자승 문제를 푸는 것과 완전히 동일하다. 즉 가우스-뉴턴법은 “비선형 최소자승 = 선형 최소자승의 반복”이라는 우아한 그림을 준다.

3. 순수 뉴턴법과의 관계[편집]

뉴턴-랩슨법을 최적화에 그대로 쓰면 정확한 헤세 JJ+ri2ri\mathbf{J}^\top\mathbf{J}+\sum r_i\nabla^2 r_i 를 매 반복 계산·저장·역행렬해야 한다. 잔차가 수만 개인 문제에서 각 잔차의 2차 미분 텐서를 계산하는 것은 현실적으로 미친 짓에 가깝다.2 가우스-뉴턴법은 이 부담을 자코비안 한 번으로 줄여준다. 대가는 명확하다.

  • 잔차가 작은 문제(small-residual): 버린 뒷항이 작아 근사가 정확하고, 뉴턴법에 준하는 준-2차(near-quadratic) 수렴을 보인다.
  • 잔차가 큰 문제(large-residual): 버린 뒷항이 무시 못 할 크기라서 수렴이 선형으로 떨어지거나, 최악의 경우 발산한다.

또한 JJ\mathbf{J}^\top\mathbf{J} 는 항상 준양정치(positive semidefinite)라서 스텝 방향이 최소한 하강 방향(descent direction)이 됨은 보장된다. 하지만 J\mathbf{J} 가 랭크 결손이거나 열이 거의 종속이면 JJ\mathbf{J}^\top\mathbf{J}조건수가 폭발해 스텝이 엉뚱하게 튄다. 이 때문에 정규방정식을 직접 풀기보다 J\mathbf{J}QR 분해특이값 분해로 푸는 것이 수치적으로 안전하다.3

4. 안정화 — 라인서치와 감쇠[편집]

날것의 가우스-뉴턴 스텝은 목적함수를 늘려버릴 수 있다(특히 초기값이 나쁘거나 잔차가 클 때). 이를 막는 두 가지 국룰:

첫째, 라인서치를 얹는다. 스텝 방향 Δx\Delta\mathbf{x} 는 유지하되 보폭 α\alpha 를 줄여가며 S(xk+αΔx)<S(xk)S(\mathbf{x}_k + \alpha\,\Delta\mathbf{x}) < S(\mathbf{x}_k) 를 만족시킨다. Armijo 조건 등으로 충분한 감소를 강제하면 전역 수렴성이 상당히 개선된다.

둘째, 대각 감쇠를 더한다. 정규방정식을 다음처럼 바꾸면

(JJ+λI)Δx=Jr(\mathbf{J}^\top \mathbf{J} + \lambda \mathbf{I}) \, \Delta \mathbf{x} = -\mathbf{J}^\top \mathbf{r}

λ\lambda 가 크면 스텝이 짧아지며 경사하강법 방향으로 기울고, λ\lambda 가 작으면 순수 가우스-뉴턴으로 돌아간다. 이 감쇠 파라미터를 반복마다 적응적으로 조절하는 것이 바로 레벤버그-마쿼트 방법이다. 사실상 오늘날 “가우스-뉴턴을 쓴다”고 하면 대부분은 이 감쇠 버전이나 신뢰 영역 방법 틀에 얹은 버전을 의미한다.

5. 활용 분야[편집]

  • 곡선/모델 맞춤: 실험 데이터에 비선형 모델(지수·시그모이드·다항 혼합)을 피팅하는 표준 도구.
  • 컴퓨터 비전: 번들 조정(bundle adjustment), 카메라 자세 추정에서 수십만 파라미터를 희소 JJ\mathbf{J}^\top\mathbf{J} 구조(희소행렬)로 푼다.
  • 로보틱스 SLAM: 그래프 기반 위치추정의 백엔드가 사실상 대규모 가우스-뉴턴/LM 솔버다.
  • 역문제와 파라미터 식별: 민감도 해석으로 얻은 자코비안을 그대로 재활용해 물성·경계조건을 역추정한다.
  • 불확실성 정량화: 수렴점에서의 JJ\mathbf{J}^\top\mathbf{J} 는 근사 공분산(Fisher 정보)의 역할을 해, 추정 파라미터의 신뢰구간까지 덤으로 준다.

6. 관련 문서[편집]

7. Footnotes[편집]

  1. 이름은 가우스와 뉴턴이 붙어 있지만, 정작 두 사람이 만나 이 방법을 논의한 적은 없다. 가우스는 최소자승법의 아버지고, 뉴턴은 반복 근사의 아버지일 뿐. 후대가 두 거인의 성을 하이픈으로 이어붙인 조합 상품이다.

  2. 잔차가 mm 개, 파라미터가 nn 개면 정확한 헤세의 뒷항은 mm 개의 n×nn\times n 텐서 합이다. 자동 미분(자동 미분) 시대라 계산 자체는 가능해졌지만, 그래도 자코비안 한 장으로 끝나는 가우스-뉴턴의 가성비를 이기긴 어렵다.

  3. 정규방정식 JJ\mathbf{J}^\top\mathbf{J} 를 만드는 순간 조건수가 제곱된다. 원래 조건수가 10410^4 이면 10810^8 이 되어 배정밀도의 유효자릿수를 절반 날려먹는다. “정규방정식은 편하지만 위험하다”는 수치해석계의 오래된 경고.