Newton Method for IK
Newton Method
- 잘 모르는 문제를 풀 때 사용하는 방식이다.
- Jacobian 과는 다르게 점진적으로 문제의 해를 찾는 방식이다.
- 순서
- Problem definition
- Problem linearization
- Iterative update
- Convergence check
- f(x+σ)≈f(x)+[∇f(x)]T+21σTHj(x)σ
- 테일러 시리즈의 2차 형태를 기반으로 한다.
- 이때 Hessian 계산이 포함되어있기 때문에 느리다.
- BFGS 라는 방식으로 근사화 해서 최적화를 한다.
Newton Method pros and cons
advantages
- Fast convergence : 초기값이 맞는 경우 매우 빠르다.
- Quadratic convergence : 문제와 condition을 잘 신경쓴 경우 errror가 감소한다.
- Applicability to nonlinear problem : 직관적인 값을 준다. (jacobian의 경우는 풀리지 않는 해가 존재하는 경우도 있는 것과 비교되는 점)
disadvantages
- Sensitivity to initial conditions : 초기값을 제대로 찾지 못하면 결과가 좋지 못하다.
- Computation of Jacobian and Hessian : jacobian과 hessian을 모두 계산해야 답이 나오기 때문에 계산이 많다.
- Inverse of Jacobian : jacobian의 inverse까지 계산해야 하는 경우가 존재한다.
그러나..
- iterative 방식이기 때문에 최적화를 하여 결론적으로 Newton method가 더 빠른 방식이다.
Taylor Series
- power series
- ∑n=1∞an(x−c)n
- 위의 형태로 나타나는 형태
- taylor 급수는 power series의 한 형태이다.
- f(x)=f(a)+1!f′(a)(x−a)+2!f′′(a)(x−a)2+...
- 만약 a = 0 인 경우는 Maclaurim series expansion 이라고 부른다.
- 3차 미분 이후의 것은 함수에 큰 영향을 주지 않아서 무시한다
Newton-Raphson Method and IK
- IK 문제에 있어서는 Newton method와 같은 말이다.
- Newton-Raphson Method는 non linear function의 root 를 찾는 것이 목적이다.
-> 0이 되는 값을 찾기
- IK의 목표가 F(x)=sd−f(θ)=0의 θ를 찾는 것이었음
-> 이 문제를 Newton-Raphson으로 풀어보기
- 우리가 알고 있는 것은 sd와 함수 f(x)이다.
- x축이 θ이고, y축이 F(x)인 좌표 평면에서..
- 이때 x에 θ0라는 임의의 초기값을 찍어서 대입한 후 계산을 한다.
- 계산한 그 점에서 기울기를 구하면 −∂θ∂f(θ0)가 된다.
- 이 기울기와 점을 지나는 직선을 하나 그린 후 x축과 닿은 점을 다시 θ1 이라고 설정한 후 위의 과정을 반복한다.
- 반복하다보면 θ 값이 θd 로 점점 가까워지게 된다.
-> 이것을 판단하기 위해서는 F(θd)=0 을 이용한다.
-> 0의 값은 threshold 로 계산 (정확히 0 아님)
- 일반항을 구해보면 θn+1=θn+f′(θn)sd−f(θn) 이 된다.
-> 다른 방식으로 표현하면, xn+1=xn−F′(xn)F(xn)
Newton-Raphson Method and Optimization Problem
- optimization은 목적함수가 최소가 되는 값을 찾는 것
-> root finding은 0을 찾는 것
- root finding 과 optimization은 서로 전환이 가능하다.
-> sd−f(θd) 가 0이 되는 θ 찾기
-> −f(θd) 가 최소가 되는 θ 찾기
- 닿지 못하는 곳에 있는 sd의 경우..
- 끝까지 가서 값을 구하는 것이 아니라 iterative하게 풀어서 빠르게 convergence한 값을 찾기
- 계산
- F(θ0+Δθ)=F(θ0)+1!F′(θ0)(Δθ)+2!F′′(θ0)(Δθ)2 + ...
식을 한번 미분한 값이 0이 되는 점들을 찾기 (local min, local max, saddle point)
- 위의 식에서 2차 미분 이후 것들은 무시
- 일반항을 구하면 Δθ=−F′′(θ0)F′(θ0
- 그림으로 생각하면 2차 함수 형태가 목적함수와 기울기가 같은 점을 찾은 후 2차 함수의 1차 미분이 0이 되는 값의 x값으로 θ값을 업데이트 해가는 모습이다.
Multivariate Newton Method
- 그러나... IK문제는 변수가 달랑 x만 있는 문제가 아니다.
-> 함수도, 변수도 여러가지가 존재한다.
- root finding : by Jacobian
-> update function에 1차미분 있기 때문에
- optimization : by Hessian
-> update function에 2차미분 있기 때문에
Multivariate root finding problem
- θ=[θ0,θ1,...]T
- F(θ) : nxn 행렬 -> F1(θ1,θ2,...), F2(θ1,θ2,...), ...각각을 row 로 가지는 행렬
- F(θn+1)=F(θn)+J(θn)(Δθ)+O(Δθ2)
-> 한번 미분한 항이 jacobian으로 바뀐 형태
- F(0n+1)=0 인 값을 찾아야 하기 때문에 일반항은 θn+1=θn−F(θn)J(θn)
Multivariate optimization problem
- F(θ)=∑(sd−f(θd))2
- F(θn+1)=F(θn)+HF(θn)(Δθ)
- ∇F(θ)=0인 값을 찾아야 하기 때문에 일반항은 θn+1=θn−HF(θn)∇F(θn)
정리
- root finding은 error가 0이 되도록 하는 값을 찾는 것
- optimization은 error2 값의 합의 루트값이 최소가 되는 값을 찾는 것
- reciprocal : 2차미분의 값을 분모로 가지는 분수형태
- reciprocal 값을 통해 함수의 curvature를 구할 수 있다. -> curvature 값을 통해 오차 줄이기!
- curvature가 크면, 조금만 이동해야 오차가 적음
- curvature가 작으면, 많이 이동해도 오차가 적어서 많이 이동 가능