가우스-뉴턴 알고리즘

Gauss–Newton algorithm
가변 감쇠 계수 α를 갖는 가우스-뉴턴 알고리즘을 사용한 비대칭 피크 모델에 의한 노이즈 곡선의 피팅.
맨 위: 원시 데이터 및 모델.
아래: 오차 제곱의 정규화된 합의 진화.

가우스-뉴턴 알고리즘은 함수 값 제곱의 합을 최소화하는 것과 동일한 비선형 최소 제곱 문제를 해결하는 데 사용됩니다. 그것은 비선형 함수의 최소값을 찾기 위한 뉴턴의 방법의 확장입니다. 제곱의 합은 음수가 아니어야 하므로 알고리즘은 뉴턴의 방법을 사용하여 합의 성분의 0을 반복적으로 근사하고 따라서 합을 최소화하는 것으로 볼 수 있습니다. 이러한 의미에서 알고리즘은 과도하게 결정된 방정식 시스템을 해결하는 데 효과적인 방법이기도 합니다. 계산이 어려울 수 있는 2차 도함수가 필요 없다는 장점이 있습니다.[1]

비선형 최소 제곱 문제는 예를 들어 비선형 회귀 분석에서 발생하며, 여기서 모델의 매개 변수는 모델이 사용 가능한 관측치와 잘 일치하도록 모색됩니다.

이 방법은 수학자 칼 프리드리히 가우스아이작 뉴턴의 이름을 따서 명명되었으며, 가우스의 1809년 작품인 Sectionibus conicis solem ambientum에서 처음 등장했습니다.[2]

묘사

Given functions (often called residuals) of variables with 가우스-뉴턴 알고리즘은 제곱의[3] 합을 최소화하는 변수의 을 반복적으로 찾습니다.

최소 초기 추측 ( {\{\{\부터 시작하여 반복으로 방법을 진행합니다.

여기서, rβ가 열 벡터일 경우, 야코비안 행렬의 원소는

그리고 기호 행렬 전치를 나타냅니다.

각 반복에서 업데이트 δ = β (s ) - β (s ) {\displaystyle \Delta ={\boldsymbol {\beta }^{(s+1)}-{\boldsymbol {\beta }^{(s))}는 다음 두 단계에서 이전 방정식을 재정렬하여 찾을 수 있습니다.

A = textstyle A =\{r}} {J_}}, b = - Jr Tr(β(s)) {\displaystyle \mathbf {b} =-\mathbf {J_{r} ^{\mathsf {T}\mathbf {r} \left ({\boldsymbol {\beta }^{(s)}\right)}, 그리고 =δ {\displaystyle {x} = }, 이는 A x = b {\displaystyle A\mathbf {x} =\mathbf {b} 형태의 기존 행렬 방정식으로 바뀌며, 이후 다양한 방법으로 해결할 수 있습니다(참고 참조).

m = n이면 반복은 다음과 같이 단순화됩니다.

그것은 뉴턴의 방법을 1차원에서 직접적으로 일반화한 것입니다.

모델 함수 ( 일부 데이터 점 i ) 에 가장 잘 맞도록 매개 변수 β 를 찾는 것이 목표인 데이터 피팅에서 r 잔차입니다.

그러면 가우스-뉴턴 방법은 함수 f {\displaystyle \mathbf {의 Jacobian J f =- \ {J_{f}} =-\mathbf {J_{r}}를 과 같이 표현할 수 있습니다.

)- 1 J 의 왼쪽 의사 역입니다

메모들

알고리즘 문에서 가정 m ≥ n은 필요합니다. 그렇지 않으면 T r}} ^{{J_{r}}는 가역적이지 않고 정규 방정식을 풀 수 없습니다(적어도 유일하게).

가우스-뉴턴 알고리즘은 함수 ri 벡터를 선형적으로 근사함으로써 유도될 수 있습니다. 테일러의 정리를 사용하면 모든 반복에서 다음과 같이 쓸 수 있습니다.

δ =β -β (s) {\displaystyle \Delta ={\boldsymbol {\beta }-{\boldsymbol}}-{\beta }^{(s))}}. 우변의 제곱의 합을 최소화하는 δ {\displaystyle \Delta }를 찾는 작업; 즉,

는 선형 최소 squares 문제로, 알고리즘에서 정규 방정식을 산출하며 명시적으로 풀 수 있습니다.

정규 방정식은 알 수 없는 증분δdisplaystyle\Deltan개의 동시 선형 방정식입니다. 분해를 사용하거나 Jr {\QR 인수분해를 사용하여 한 단계로 해결할 수 있습니다 대규모 시스템의 경우 공액 구배법과 같은 반복적인 방법이 더 효율적일 수 있습니다. Jr 열 사이에 선형 의존성이 있으면 T 가 단수가 되므로 반복이 실패합니다.

When is complex the conjugate form should be used:

= {\beta {1}=362} 및 ^ 2 =0.556 {\{\beta }_{2= 0.556}(파란색) 대 관측 데이터(빨간색)

이 예제에서는 가우스-뉴턴 알고리즘을 사용하여 데이터와 모형 예측 사이의 오차 제곱의 합을 최소화하여 모형을 일부 데이터에 적합시킵니다.

효소 매개 반응에서 기질 농도[S]와 반응 속도의 관계를 연구하는 생물학 실험에서 다음 표의 데이터를 얻었습니다.

i 1 2 3 4 5 6 7
[S] 0.038 0.194 0.425 0.626 1.253 2.500 3.740
평가하다 0.050 0.127 0.094 0.2122 0.2729 0.2665 0.3317

형식의 곡선(모델 함수)을 찾는 것이 좋습니다.

max {\{max {\K_}}가 결정된 상태에서 최소 제곱 의미의 데이터에 가장 적합합니다.

Denote by and the values of [S] and rate respectively, with . Let and . 잔차의 제곱의 합이 되도록 를 구합니다.

최소화됩니다.

The Jacobian of the vector of residuals with respect to the unknowns is a matrix with the -th row having the entries

Starting with the initial estimates of and , after five iterations of the Gauss–Newton algorithm, the optimal values and {2}0.556}을(를) 얻습니다. 잔차의 제곱합은 초기값 1.445에서 다섯 번째 반복 후 0.00784로 감소했습니다. 오른쪽 그림의 그림은 관측된 데이터를 사용하여 최적 모수에 대해 모형에 의해 결정된 곡선을 보여줍니다.

수렴속성

가우스-뉴턴 반복은 다음 [4]4가지 조건에서 로컬 최소점 로 수렴됩니다. 함수 1 m 는 열린 볼록 집합 ∋ β^ D\n에서 연속적으로 두 번 미분 가능합니다. Jacobian ( })}는 전체 열 순위입니다. 초기 반복 ( ^{(는 β {\ 근처이고 로컬 최소값 ( 는 작습니다. 수렴은 = displaystyle S({\hat {\beta }}) = 0}인 경우 2차입니다.

증가분 δ는 S에 대한 하강 방향이며, 알고리즘이 수렴하면 한계는 S정지점임을 알 수 있습니다. 그러나 큰 최소값 S}})}의 경우 수렴이 보장되지 않으며, 뉴턴의 방법과 같은 로컬 수렴이나 일반적인 울프 조건에서의 수렴도 보장되지 않습니다.[6]

가우스-뉴턴 알고리즘의 수렴 속도는 이차적으로 접근할 수 있습니다.[7] 초기 추측이 최소값과 거리가 멀거나 행렬 {\ \{r { 잘못된 조건일 경우 알고리즘은 천천히 수렴하거나 전혀 수렴하지 않을 수 있습니다. 예를 들어, 다음과 같이 주어진 = 2 {\displaystyle m=2} 과 n = 1 {\displaystyle n=1} 변수에 대한 문제를 생각해 보십시오.

The optimum is at . (Actually the optimum is at for , because , but .) λ =displaystyle \ lambda =0}인 경우 문제는 실제로 선형적이며 이 방법은 한 번의 반복에서 최적을 찾습니다. λ < 1인 경우, 방법은 선형적으로 수렴되고 오차는 반복될 때마다 요인 λ에 따라 점근적으로 감소합니다. 그러나 λ > 1이면 메서드가 로컬로 수렴되지도 않습니다.

과도하게 결정된 방정식 체계 풀기

가우스-뉴턴 반복

방정식 체계를 (= 0displaystyle \mathbf {fmathbf {x}) =\mathbf {0}의 형태로 푸는 데 효과적인 방법입니다.
and where is the Moore-Penrose inverse (also known as pseudoinverse) of the Jacobian matrix of . 뉴턴 방법의 확장으로 간주될 수 있으며 고립된 정규 해를 향한 동일한 로컬 2차 수렴을 즐깁니다.

If the solution doesn't exist but the initial iterate is near a point at which the sum of squares ) ( \ _}^{m} f_{{n^{})\_{2}^{2}} 작은 로컬 최소값에 도달하면 가우스-뉴턴 반복은 x ^ mathbf {x}}}로 선형됩니다. 은 종종 과잉 결정된 시스템의 최소 제곱 해라고 불립니다.

뉴턴 방법에 의한 유도

다음은 근사를 통해 함수 최적화를 위한 뉴턴의 방법에서 가우스-뉴턴 알고리즘을 유도할 것입니다. 결과적으로, 가우스-뉴턴 알고리즘의 수렴 속도는 특정 규칙성 조건에서 이차적일 수 있습니다. 일반적으로 (약한 조건에서) 수렴 속도는 선형입니다.[9]

파라미터 의 함수 S를 최소화하기 위한 뉴턴의 방법에 대한 반복 관계는 다음과 같습니다.

여기서 gS기울기 벡터나타내고, H는 S의 헤센 행렬을 나타냅니다.

= ∑ = 1r 2 {\textstyle S =\sum _{i=1}^{m}r_{i}^{2}} 이므로 구배는 다음과 같이 주어집니다.

헤센의 요소는 k _대해 기울기 요소 {\를 미분하여 계산됩니다

가우스-뉴턴 방법은 2차 도함수 항(이 식에서 두 번째 항)을 무시함으로써 얻어집니다. 즉, 헤시안은 다음과 같이 근사됩니다.

= ∂ / ∂ βj {\textstyle J_{}={\partial r_{i}}/{\beta \partial _{j}}는 야코비안 J의 항목입니다. 정확한 헤센을 정확한 적합도에 가깝게 평가할 때 우리는 거의 0에 가까운 ri {\display r_{i}를 가지므로 두 번째 항도 거의 0에 가까워지므로 근사를 정당화합니다. 기울기와 근사 헤시안은 행렬 표기법으로 다음과 같이 쓸 수 있습니다.

이 식을 위의 순환 관계에 대입하여 연산 방정식을 구합니다.

가우스-뉴턴 방법의 수렴은 모든 경우에 보장되지 않습니다. 어림셈

2차 도함수 항들을 무시할 수 있도록 유지되어야 하는 것은 수렴이 예상되는 두 가지 경우에서 유효할 수 있습니다.[10]

  1. 함수 값 크기는 최소값 정도로 작습니다.
  2. 는 "순한" 이므로 ∂ rβ j ∂ k frac {\^{ _j}\partial \beta _{k}}}는 크기가 상대적으로 작습니다.

개선된 버전

가우스-뉴턴 방법에서는 잔차 S의 제곱합이 반복될 때마다 감소하지 않을 수 있습니다. 그러나 δ는 하강 방향이므로 Ss) S\}}^{right)}가 정지점이 s+ αδ) < Sβ s) S\left}}^{ \Delta \right)< 작은 > 모두에 대해 S\left}\ 따라서, 발산이 발생하는 경우, 한 가지 해결책은 업데이트 공식에 증가 벡터 δ의 분수 {\ \를 사용하는 것입니다.

즉, 증가 벡터는 너무 길지만 여전히 "아래쪽 언덕"을 가리키므로 일부만 이동하면 목적 함수 S가 감소합니다. α 에 대한 최적의 값은 line search 알고리즘, 즉, 의 크기는 일반적으로 0< < 1 0 < 에서 직접 검색 방법 또는 Armijo-line 검색과 같은 역추적 라인 검색을 사용하여 S를 최소화하는 값을 찾음으로써 결정됩니다. 일반적으로 Wolf 조건 또는 Goldstein 조건을 만족하도록 선택해야 합니다.[11]

시프트 벡터의 방향이 최적의 분수 α가 0에 가까울 정도인 경우, 발산을 처리하기 위한 대안적인 방법은 신뢰 영역 방법인 Levenberg-Marquardt 알고리즘을 사용하는 것입니다.[3] 정규 방정식은 증가 벡터가 가장 가파른 하강 방향으로 회전하는 방식으로 수정됩니다.

여기서 D는 양의 대각선 행렬입니다. D가 항등 행렬 I이고 λ → +∞ {\ \lambda \to +\infty}일 때, then {to-J}^{\ {따라서 방향은 음의 J Tr -} { r} 방향에 접근합니다.

이른바 Marquardt 매개 변수λ displaystyle\lambda }도 라인 검색으로 최적화할 수 있지만 λ \lambda }이(가) 변경될마다 시프트 벡터를 다시 계산해야 하므로 비효율적입니다. 보다 효율적인 전략은 다음과 같습니다. 발산이 발생하면 S가 감소할 때까지 Marquardt 파라미터를 증가시킵니다. 그런 다음 한 반복에서 다음 반복으로 값을 유지하되 가능하면 컷오프 값에 도달할 때까지 값을 줄인다. 마르콰르트 매개변수를 0으로 설정할 수 있을 때 S의 최소화는 표준 가우스-뉴턴 최소화가 됩니다.

대규모 최적화

대규모 최적화를 위해, 가우스-뉴턴 방법은 행렬 대략 헤센 Tr {\}}\mathbf {J_{r보다 희소하기 때문에 특별한 관심이 있습니다 이러한 경우 단계 계산 자체는 일반적으로 공액 구배법과 같이 크고 희박한 문제에 적합한 대략적인 반복 방법으로 수행되어야 합니다.

이러한 종류의 접근 방식이 작동하려면 적어도 제품을 계산하는 효율적인 방법이 필요합니다.

어떤 벡터 p에 대하여. 희소 행렬 저장의 경우 으로 {\ _ 행을 압축된 형태(예: 0 항목 없음)로 저장하여 전치로 인해 위의 제품을 직접 계산하는 것이 까다롭습니다. 그러나 행렬 cii로 정의하면 다음과 같은 단순 관계가 성립합니다

모든 행이 제품에 부가적으로 독립적으로 기여하도록 합니다. 이 표현식은 실제적인 희소 저장 구조를 존중할 뿐만 아니라 병렬 계산에 매우 적합합니다. 모든 행 ci 해당 잔차 ri 기울기이므로 위의 공식은 잔차가 서로 독립적으로 문제에 기여한다는 사실을 강조합니다.

관련 알고리즘

준뉴턴 방식으로, 예를 들어 데이비드슨, 플레처, 파월 또는 브로이든에 의한 것과 같은 방식으로,플레처-골드파브-샤노(BFGS 방법) 전체 ∂ 2 ∂ β j ∂ β k {\{\ ^{2}S}{\partial \beta _{j}\partial \beta _{k}}}는 1차 도함수 ∂ r β j {\textstyle {\frac {\partial r_{i}}{\partial \beta _{j}}}를 사용하여 수치화됩니다. n번의 정제 사이클 후에 그 방법은 성능 면에서 뉴턴의 방법과 거의 유사합니다. 준뉴턴 방법은 일반적인 실수 값 함수를 최소화할 수 있는 반면, 가우스-뉴턴, 레벤버그-마르콰르트 등은 비선형 최소 제곱 문제에만 적합합니다.

1차 도함수만을 사용하여 최소화 문제를 해결하기 위한 또 다른 방법은 구배 하강법입니다. 그러나 이 방법은 2차 도함수를 대략적으로 고려하지도 않습니다. 결과적으로 매개변수가 강한 교호작용을 갖는 경우 많은 함수에서 매우 비효율적입니다.

구현 예

줄리아.

Julia의 다음 구현은 제공된 Jacobian을 사용하는 한 가지 방법과 자동 미분이 가능한 또 다른 컴퓨팅을 제공합니다.

"""     gaussnewton(r,J,β₀,maxiter,tol)  'β ₀'에서 시작하는 Jacobian 'J'로 잔차 함수 'r'을 최소화하기 위해 Gauss-Newton 최적화를 수행합니다. 알고리즘은 단계의 norm이 tol보다 작거나 maxiter를 반복한 후에 종료됩니다. """ 기능. 가우스뉴턴(r,J,β,맥시미터,)     β = 알았다.(β)     위해서 _ 안에 1:맥시미터          = J(β);         Δ  = -('*) \ ('*r(β))          β += Δ         한다면 sqrt((abs2,Δ)) <              브레이크.         끝.     끝.     돌아가다 β 끝.  수입품 추상미분 ~하듯이 AD, 지고테 백엔드의 = AD.자이고트 백엔드() # 다른 백엔드를 사용할 수 있습니다.  """     gaussnewton (r,β ₀,maxiter,tol)  'β ₀'에서 시작하는 잔차 함수 'r'을 최소화하기 위해 Gauss-Newton 최적화를 수행합니다. 관련 Jacobian은 부호 자동 미분을 사용하여 계산됩니다. 알고리즘은 단계의 norm이 tol보다 작거나 maxiter를 반복한 후에 종료됩니다. """ 기능. 가우스뉴턴(r,β,맥시미터,)     β = 알았다.(β)     위해서 _ 안에 1:맥시미터         ,  = AD.value_and_jacob의(백엔드의,r,β)         Δ  = -([1]'*[1]) \ ([1]'*)          β += Δ         한다면 sqrt((abs2,Δ)) <              브레이크.         끝.     끝.     돌아가다 β 끝. 

메모들

  1. ^ Mittelhammer, Ron C.; Miller, Douglas J.; Judge, George G. (2000). Econometric Foundations. Cambridge: Cambridge University Press. pp. 197–198. ISBN 0-521-62394-4.
  2. ^ Floudas, Christodoulos A.; Pardalos, Panos M. (2008). Encyclopedia of Optimization. Springer. p. 1130. ISBN 9780387747583.
  3. ^ a b 비외르크(Björck) (1996)
  4. ^ a b J.E. Dennis, Jr. and R.B. Schnabel (1983). Numerical Methods for Unconstrained Optimization and Nonlinear Equations. SIAM 1996 reproduction of Prentice-Hall 1983 edition. p. 222.
  5. ^ Björck (1996), p. 260.
  6. ^ Mascarenhas (2013), "The divergence of the BFGS and Gauss Newton Methods", Mathematical Programming, 147 (1): 253–276, arXiv:1309.7922, doi:10.1007/s10107-013-0720-6, S2CID 14700106
  7. ^ Björck (1996), p. 341, 342.
  8. ^ 플레처 (1987), 페이지 113.
  9. ^ "Archived copy" (PDF). Archived from the original (PDF) on 2016-08-04. Retrieved 2014-04-25.{{cite web}}: CS1 유지관리: 제목으로 보관된 복사본(링크)
  10. ^ Nocedal (1999), p. 259.
  11. ^ Nocedal, Jorge. (1999). Numerical optimization. Wright, Stephen J., 1960-. New York: Springer. ISBN 0387227423. OCLC 54849297.

참고문헌

외부 링크

  • 확률, 통계추정 이 글에서 예로 든 생물학 실험에 알고리즘을 상세하게 설명하고 적용합니다(추정치의 불확실성과 함께 84페이지).

구현

  • Artelys Nitro는 Gauss-Newton 방법을 구현한 비선형 솔루션입니다. C로 작성되었으며 C++/C#/Java/Python/MATLAB/R에 대한 인터페이스가 있습니다.