Gauss-Newton Method

Gauss-Newton Method 정의

  • Gauss-Newton은 뉴턴법(Newton’s Method)의 변형으로, 비선형 최소제곱 문제(Non-Linear Least Squares) 를 해결하기 위한 반복적 최적화 방법이다.
  • 모델이 데이터에 얼마나 잘 맞는지 측정하는 잔차(Residuals)의 제곱합을 최소화하는 파라미터를 찾는 데 사용되며, 뉴턴법과 달리 Hessian을 직접 계산하는 대신 Jacobian을 사용하여 근사함으로써 계산 비용을 줄인다.
  • 뉴턴법에서는 목적 함수 자체를 2차 테일러 급수로 근사하지만, 가우스-뉴턴에서는 목적 함수가 와 같은 잔차 제곱합 형태일 때, 뉴턴법의 아이디어를 적용하되, 잔차 함수 를 선형 근사하는 것이 더 효율적이라는 접근이다.
  • Least Squares 문제는 개의 변수 개의 데이터에 대한 잔차 벡터가 일 때, 잔차의 제곱합을 최소화하는 를 찾는다.

Non-Linear Least Squares

  • Least Squares 문제는 모델이 예측한 값과 실제 관측값의 차이인 Residual의 제곱합을 최소화하는 것 이다.
  • Linear Least Squares는 Residual이 최적화 변수에 에대해 선형인 문제이며 다음과 같다.
  • 이러한 Linear Least Squares 는 정규 방정식(Normal Equation) 등의 방법으로 최적 파라미터를 계산할 수 있다.
  • Non-Linear Least Squares는 Residual이 최적화 변수 에 대해 비선형인 문제이다.
  • 잔차 제곱합의 형태는 동일하지만 잔차 함수, 즉 구하고자 하는 함수 또는 Fitting하고자 하는 함수의 형태가 비선형인 경우를 말한다.
  • 예를 들어, 아래 지수함수의 최적 파라미터를 구하는 Least Squares는 다음과 같다.
  • Gauss-Newton Method는 이러한 Non-Linear Least Squares를 반복적 계산을 통해 최적해를 구하는 방법이다.

Gauss-Newton Method 방법

목적함수와 잔차함수의 정의

  • Non-Linear Least Squares 문제는 잔차들의 제곱합을 최소화하는 파라미터 를 찾는 것이며 따라서, 목적함수는 다음과 같다.
  • 여기서 는 잔차 벡터이며, 개의 데이터에 대한 잔차 벡터는 다음과 같다.
  • 잔차함수 는 다음과 같이 정의된다.
  • 여기서 는 비선형이라 가정하며, 가 비선형이라면 잔차 함수 역시 비선형이 된다.
  • 이처럼 잔차 함수가 비선형이기 때문에, 잔차의 제곱합을 최소화하는 문제에서는 Least Square Method에서 사용되는 정규방정식처럼 직접적인 대수적 해를 구할 수 없다.

현재 추정값과 업데이트량 정의

  • 현재 파라미터 추정값을 라고 할 때, 다음 스텝으로 이동할 변화량을 라고 할 수 있다.
  • 다음 스텝의 파라미터 은 다음과 같이 표현할 수 있다.
  • Gauss-Newton Method는 반복적으로 를 계산하고 파라미터를 업데이트해 나간다.

잔차 함수의 선형 근사

  • Gauss-Newton Method는 현재 파라미터 추정치 에서 잔차 함수 테일러 급수 (Taylor series)의 1차 항까지 선형 근사한다.
  • 일변수 스칼라 함수 위치에서 1차 테일러 전개의 표준은 다음과 같다.
  • 이 테일러 전개를 현재점() + 변화량() 로 나타내면 아래와 같다.
  • 즉, 현재 위치에서 만큼 이동 했을 때의 변화량은 기울기 에 이동량 를 곱한 것 정도로 본다.
  • 현재 추정값에서 조금 이동한 에서 잔차의 각 성분에 대해 1차 테일러 전개를 적용하면 다음과 같다.
  • 여기서 두 번째 항은 다변수 함수의 테일러 전개의 일반화 형태이며 파라미터 벡터 의 각 요소 에 대한 편미분을 모두 고려해야 한다.
  • 이 식을 벡터 형태로 정리하면 다음과 같다.
  • 위 식들은 모두 같은 의미를 가지며, 현재 파라미터 에서 만큼 이동했을 때의 잔차를 계산하는 것이다.

Jacobian의 활용

  • 잔차 함수를 1차 테일러 전개로 근사한 식에서 Jacobian은 잔차 벡터 을 파라미터 벡터 에 대해 미분한 행렬이다.
  • 데이터 수 :
  • 파라미터 수 :
  • 파라미터 벡터 :
  • 잔차 함수 :
  • 잔차 벡터 :

선형 최소제곱 문제로의 변환

  • 목표는 목적 함수 을 최소화하는 를 찾는 것이며, 현재 반복 단계 에서 를 기준으로 잔차 함수를 선형 근사했으므로, 이제 이 선형 근사된 잔차 벡터의 제곱합을 최소화하는 를 찾아야 한다.
  • 목적 함수에 현재 파라미터 에 대한 근사 식을 대입하면 다음과 같다. 편의상 라고 한다.
  • 정규방정식을 이용해 가 최소가 되는 에 대한 표현은 다음과 같다.
  • 이 식이 Gauss-Newton의 정규방정식이 된다.

파라미터 업데이트

  • 다음 스텝의 파라미터 는 현재 스텝의 파라미터와 파라미터 변화량을 더한 로 표현할 수 있다.
  • 정규방정식을 에 대해 정리하면 다음과 같다.
  • 다음 스텝 파라미터의 최종 업데이트 식은 다음과 같다.
  • 여기서, 실제 계산에서는 를 직접 계산하지 않고, QR 분해Cholesky 분해 등의 선형 시트템 풀이 방법을 사용한다.

Gauss-Newton을 이용한 Circle Fitting 예시

문제 정의

  • 다음 5개의 데이터 가 주어지고, 이 점들을 가장 잘 설명하는 원 방정식의 파라미터 를 구한다.

+full

  • 중심이 이고 반지름이 원의 방정식은 다음과 같다.

잔차함수 정의

  • 원의 방정식은 형태가 아니기 때문에, 원의 방정식 자체를 0으로 만드는 형태로 잔차함수를 정의하여 Gauss-Newton 을 적용할 수 있다.
  • 만약 데이터 포인트 가 완벽하게 원 위에 있다면 다음 식이 성립해야 한다.
  • 따라서 잔차함수 를 다음과 같이 나타내면 이 잔차는 번째 데이터 포인트가 현재 파라미터 로 정의된 원의 방정식으로부터 얼마나 벗어나 있는지를 나타낸다.
  • 이때, 파라미터 벡터 와 잔차 벡터 은 다음과 같다.
  • 잔차 벡터의 제곱합을 최소화하기 위한 목적함수는 다음과 같다.

Jacobian 계산

  • Jacobian은 잔차 벡터를 파라미터 벡터에 대해 미분한 행렬이므로, 잔차 5개 x 파라미터 3개로 은 다음과 같다.
  • 잔차함수를 에 대해 각각 편미분한 것은 다음과 같다.
  • 따라서, 전체 Jacobian은 다음과 같이 정리된다.

초기 파라미터 설정 및 계산

  • 초기 파라미터 를 다음과 같이 설정한다.
  • 즉, 초기 추정 원의 중심은 (6, 6)이고 반지름은 5이다.
  • 초기 파라미터와 데이터를 이용해 대한 잔차 벡터를 계산하면 다음과 같다.
  • 초기 파라미터와 잔차 벡터에 대해 Jacobian을 계산하면 다음과 같다.

파라미터 업데이트

  • Gauss-Newtom의 정규방정식을 이용해서 구하여 파라미터를 업데이트 한다.
  • 을 계산하면 다음과 같다.
  • 위 정규방정식을 연립방정식을 풀어 를 구하면 다음과 같다.
  • 이 것을 이용하여 다음 스텝의 파라미터 을 구할 수 있다.
  • 수렴 조건을 만족할 때 까지 이 과정을 반복하여 최적해에 접근하도록 업데이트 할 수 있다.
  • 초기 파라미터 의 원과 한 번 업데이트한 의 원을 나타내면 다음과 같이 기존 데이터에 더 fitting됨을 알 수 있다.

+full