6장 비선형 최적화
6.1 상태 추정 문제
6.1.1 배치 상태 추정 및 최대 사후 추정
K는 카메라 내부 파라미터, s는 픽셀거리 R_k 는 회전행렬, t_k는 병진 벡터, y_j는 랜드마크의 위치이다.
이제 노이즈의 영향을 받았을 때, 데이터가 어떻게 변경되는지 보자.
w_k, v_k 의 평균이 0인 가우시안 분표를 충족한다고 가정할 때,
두 가지 방법이 있는데
1. 증분/점진적 방법 : 현재의 추정 값을 기반으로 다음 추정값을 구하는 방법
2. 배치단위 추정법 : 항상 최적의 경로를 얻어 내지만, 모든 data를 저장해두어야 하는 방법
배치단위 측정법이 현재의 주류 방법이며, 극단적인 경우 드론의 모든 순간의 데이터를 수집 후 컴퓨팅 센서로 다시 가져와 통합할 수 있다는 sfm에서 사용되는 주된 방법이다. 지금부터 배치 방법에 대해 알아보자.
모든 순간에 대한 입력은 u로 z는 모든 순간한 관측이 된다. 이는, u, z가 주어진 상태에서 x, y를 추정하는 조건부 확률로 나타낼 수 있다.
위의 식을 베이지안 식으로 풀면
일반적으로 사후 확률의 최댓값을 찾는 것은 어렵지만, 위와 같이 베이지안 룰로 풀어낸 다음 최대화 되는 최적점을 찾는 것은 가능하다. 우도를 최대로 하는는 지점을 찾으면 된다. 이를 최대 우도 추정법 MLE 라고 한다.
직관적으로 우도는 현재의 포즈에서 어떤 종류의 관찰데이터가 생성될 수 있는지를 나타낸다고 생각하면 된다.
6.1.2 최소 제곱법의 소개
가우스 분포의 가정하에 MLE는 더 쉽게 풀 수 있다.
임의의 고차원 가우시안 분포로 가정했을 때, 확률 밀도 함수 또한 확장해보면
이 때 양변에 음의 로그를 붙히면 아래 식과 같다.
이 식에서 왼쪽은 x가 들어가 있지 않기 때문에 상수 취급이라, 따로 연산에 고려할 필요가 없고, 오른쪽만 최소화 하면 되는데, 이 방식이 결국 노이즈 항을 최소화 하는 2차 항과 동일하다는 것을 알 수 있다.
이 2차항을 마하라노비스 거리 라고 한다. 일반적으로 입력과 관찰이 독립이라고 가정할 수 있는데, 각 입력이 서로 독립이고, 각 관찰 간에도 독립이며, 입력과 관찰 사이도 독립이라는 것을 의미한다.
이렇게 하면 최소 제곱 문제가 생성되며, 이는 상태의 최대 우도 추정값과 동일함을 볼 수 있다. 6.13을 자세히 살펴보면,
1. 모션오류는 x_{k-1}, x_k 에만 관련되고, 관측 오류는 x_k, y_j 에만 관련된다.
2. 증분을 위해 리 대수를 사용하면, 비 제약 최소 제곱 문제가 된다.
3. L2-norm을 사용했다.
6.1.3 예: 배치 상태 추정
첫째, 배치 상태 변수 x = [x_0, x_1, x_2, x_3] 로, 배치 관찰을 z = [z1, z2, z3] 로 설정하고, 동일한 방식으로 입력 u = [u1, u2, u3] 를 정의할 때, 이전 추론을 통해 우리는 MLE를 알고 있다.
모션 방정식의 각 항을 뜯어보면,
이전 설명에서 오류 변수를 다음과 같이 작성할 수 있다.
MLE 목적 함수는 다음과 같다.
이때 y = [u, z]T 로 정의하면, 행렬 H를 작성할 수 있다.
그리고 sigma를 (Q1, Q2, Q3, R1, R2, R3) 에 대해서 전체 문제를 다음과 같이 나타낼 수 있는데,
6.2 비선형 최소 제곱 문제
이를 최적화 하는 방법은 f(x)를 미분하여 0이 되는 지점을 찾게 되면, 미분 0의 극값을 얻을 수 있고, 함수 값의 크기를 하나씩 비교하면, 최댓값, 최솟값 안장점에 도달할 수 있는데, 일반적으로 f(x) 가 복잡하면 저 미분을 구하는 것이 매우 어렵기 때문에, 쉽지 않고, 이를 미분하는 방법은 일반적으로 3가지 방법이 있는데, 1. 테일러 급수로 확장하거나, 이게 결국 gradient descent 방법이다.
2. 가우스 뉴튼 방법을 사용하거나, 3. 레벤베르크-마쿠아트 방법을 사용하거나 인데 이는 책에 잘 설명되어 있기 때문에 책을 참고하는 것을 추천한다.