최적화는 여러 방법을 통해서 Δθ를 구해서 기존 θ에 업데이트 해주는 방법이다.
그렇지만 회전의 경우 제약 조건이 존재한다. det(R)=1, RRT=RTR=I 다음과 같이 determinant가 1인 직교 행렬이어야 한다.
즉, 회전은 비선형(제약 조건이 있는) 공간에 있다는 문제점이 있다.
따라서 lie algebra를 이용해서 선형적인 공간으로 만들어서 Δθ를 구하는 것이 목표이다.
먼저 리 군과 리 대수에 대해서 알아야 한다.
Lie Group (리 군)
군의 정의

- ⋅에 의해 연산된 결과는 여전히 리 군에 닫혀있어야 한다.
- Identity가 존재해야 한다.
- 리 군의 inverse가 리 군 내에 존재해야 한다.
- 결합 법칙이 성립해야 한다.
위는 군의 정의이다. 리 군은 역시나 군에 속하기 때문에 위의 정의에 만족해야 한다.
이러한 군에 Smooth Manifold라는 제약 조건이 붙은 것을 Lie Group이라고 정의한다.
여기서 Manifold는 국소적으로는 유클리드 공간과 유사한 특성을 갖는 공간을 얘기한다.
제약 조건이 있는 높은 차원의 데이터에서 더 낮은 차원이 n인 공간이 있다고 하자.
이 공간이 유클리드 공간과 비슷해보이는 n차원이면 Manifold라고 부른다.
그리고 Smooth는 sharp edge와 spike가 없는 즉, 미분할 수 없는 공간이 없는 공간을 얘기한다.
예를 들어, 3차원인 구면 공간에서는 제약 조건 [(x,y,z),x2+y2+z2=1]인 공간인데, 접면(tangent space)은 평면([(a,b)])으로 제약 조건이 없는 유클리드 공간이다.
이러한 접면을 Manifold라고 부른다.
회전행렬의 수학 기호로는 SO(n)라 하며, Special Orthogonal Group(특수 직교 군)을 얘기한다.
n는 차원 수로 3차원 회전이면 n는 3, 2차원 회전이면 n는 2인 형태이다. (freedom 차원 수)
외에 Translation과 회전행렬을 포함하는 리 군을 수학 기호로 SE(n), 특수 유클리드 군이라고 한다.
Lie Algebra (리 대수)

리 대수는 리 군의 항등원(ex> Identity matrix)에서의 tangent space를 lie algebra라고 얘기한다.
엄밀한 수학적인 정의에서는 다음과 같다.
리 대수는 벡터 공간의 구조와 함께 Lie 괄호(Lie Bracket)라는 추가적인 이항 연산을 가지며 반대칭성과 Jacobi 항등식을 만족해야 한다.
(리 괄호는 리 대수 집합에서 정의된다.)
반대칭성(Anti-symmetric) : 모든 x,y∈g에 대해 [x,y]=−[y,x]
Jacobi 항등식(Jacobi Identity) : 모든 x,y,z∈g에 대해 [x,[y,z]]+[y,[z,x]]+[z,[x,y]]=0
회전 행렬의 리 대수는 skew-symmetric matrix이다. (lie algebra가 반드시 skew-symmetric matrix여야 하는 것은 아니다. 뒷쪽에서 회전 행렬이 skew-symmetric matrix 임을 증명한다.)
행렬의 리 대수에서는 다음과 같은 Lie 괄호를 정의하여 Lie 대수를 다룬다. [A,B]=AB−BA (이것은 lie bracket을 성립하는 하나의 연산 예이다.)
행렬은 교환법칙이 성립하지 않기 때문에 (항등원이 아니면) 해당 리 대수는 0이 아니게 된다.
조금 더 깊게 들어가면
R1R2=R2R1 인 교환법칙이 성립하지 않는 것(비가환성)을 곡률로 해석하는 방법을 응용하는 것이다.
여기서 곡률이란 일반적인 리만 기하학이 아닌, "작은 이동의 순서를 바꾸면 결과가 달라지는 구조"에 대한 곡률이다.
lie bracket은 1차 곡률을 측정하는 연산이다.
'Lie group의 항등원(Identity matrix)에서 정의된 Tangent space'와 '비가환성을 가진 rotation의 항등원(Identity matrix)의 좁은 공간'에서의 곡률 사이의 비가환성을 측정하는 것이다.
리 군과 리 대수의 변환 관계 (Exp 연산자, Log 연산자)

파란색 구는 lie group을 시각화를 위해 나타낸 것이고, 빨간색 평면은 lie algebra의 tangent space를 시각화를 위해 평면으로 나타낸다.
리 대수는 exp 연산자를 통해서 리 군으로 되고, 리 군은 log 연산자를 통해서 리 대수가 된다.

1차원에서의 complex number를 lie group으로 생각하면 조금 더 이해하기 쉽다.
1차원 complex number는 x축이 실수, y축이 허수로 2차원이 된다. 다만 제약 조건으로 z∗z=1 이다.
해당 제약 조건의 공간을 수학식으로 나타내면 다음과 같다.
eiθ=cosθ+i×sinθ
identity인 1에서의 tangent space는 (즉, lie algebra) 1차원이 된다.
그리고 iθ가 리 대수가 된다. 여기서 i를 축(1D basis vector) 해석할 수 있다는 점을 기억하자!
또한 exp 연산을 통해서 리 군(eiθ)으로 되는 것을 볼 수 있다. 반대로 log 연산을 통해 리 대수가 된다.
여기서 θ가 −π≤θ≤π 로 제한되어야 되는 것을 볼 수 있다. 왜냐하면 리 군에서 리 대수로의 매핑이 1대1 함수가 아니기 때문이다. (sin, cos에 의해)

2차원에서의 회전을 보면 제약 조건은 RTR=RRT=1, det(R)=1이다.
그리고 수학식으로 R을 나타내면 다음과 같다.
R=[cosθsinθ−sinθcosθ]=Icosθ+[1]×sinθ[1]×:=[01−10]
1D complex number와 마찬가지로 오일러 법칙에 따라서 리군의 x축이 I, y축이 [1]× (i역할) 인 것으로 eθ[1]×로 정리할 수 있다.
Identity matrix에서의 tangent space로 보면 θ[1]×(:=[θ]×)를 리 대수로 해석할 수 있다.
위와 같은 논리로 3D도 표현이 가능하다.
2차원 회전과 마찬가지로 3차원도 같은 제약식을 갖는다.
3차원 회전에서의 수학식을 보겠다. 여기서 3차원 회전은 오일러 회전, 쿼터니언 회전, 로드리게스 회전 중 로드리게스 회전의 수학식이다.
로드리게스 회전이란 특정 축으로의 회전을 얘기한다. 아래 식에서 w가 회전하려는 축의 방향벡터를 얘기한다.
여기서 τ는 θu로 정의된다. (∣u∣=1)
로드리게스 회전 공식은 반드시 τ가 unit vector일 필요는 없다.
다만 unit vector인 경우가 정확히 원뿔 궤적을 그리지만 unit vector가 아닌 경우 유사하게 원뿔 궤적을 그린다고 한다.
R=I+θsinθτ^+θ21−cosθτ^2
여기서 w는 cross product의 matrix 형태를 얘기한다. (로드리게스 회전 공식을 정리한 결과임)
τ×v=⎣⎢⎡τyvz−τzvyτzvx−τxvzτxvy−τyvx⎦⎥⎤=⎣⎢⎡0τz−τy−τz0τxτy−τx0⎦⎥⎤⎣⎢⎡vxvyvz⎦⎥⎤=w^v
로드리게스 회전 공식에서부터 출발하면 다음과 같다.
I+θsinθτ^+θ21−cosθτ^2=I+(1−3!θ2+5!θ4+⋅⋅)τ^+(2!1−4!θ2+6!θ4+⋅⋅)τ^2=I+τ^+2!1τ^2+3!1τ^3+⋅⋅=exp(τ^)
2번째 행의 sinθ와 cosθ를 테일러 급수로 만들고 정리하면 나온다.
3번째 행은 τ=∣τ∣u=θu(θ:=∣τ∣)으로부터 아래의 정리한 결과로부터 나온다.
θ2=τTτ(τ^)2i+1=(−1)iθ2iτ^(τ^)2i+2=(−1)iθ2iτ^2
4번째 행은 ex의 테일러 급수의 정의로부터 정리된다.
이처럼 3차원 회전행렬도 exponential 형태로 만들 수 있다.
그렇다면 그림은 그릴 수 없지만 tangent space의 리 대수는 다음과 같을 것이다.
τ^=τx⎣⎢⎡0000010−10⎦⎥⎤+τy⎣⎢⎡00−1000100⎦⎥⎤+τz⎣⎢⎡010−100000⎦⎥⎤
exp 연산자를 진행했던 과정을 반대로 하면 log 연산자가 된다.
Exponential Mapping의 파생 과정
위가 여러 리 군 중 일부에 대한 실제 계산 과정이라면 이 다음은 모든 리 군에 대해서 성립하는 것에 대한 증명이다.
(inverse 대신에 transpose를 사용해도 동일한 결과)
R(t)R(t)−1=I
양변을 미분하면 아래와 같다.
R′(t)R(t)−1+R(t)R(t)′−1=0R′(t)R(t)−1=−R(t)R(t)′−1R′(t)R(t)−1=−(R(t)′R(t)−1)−1
즉, R′R−1는 skew-symmetric matrix이다. 이는 다시 말하면 임의의 리 대수라고 볼 수 있다.
R′(t)R(t)−1=τ^
양변의 우측에 R을 붙이면 R−1R=I에 의해서 다음과 같이 정리된다.
R′(t)=τ^R(t)
리 군인 R의 기울기는 tangent space를 얘기한다.
lie algebra의 정의가 identity에서의 tangen space(lie algebra)라고 했다.
따라서 t = 0일 때 R(0) = I로 설정하는 경우 다음과 같이 된다.
R′(0)=τ^
즉, 해당 공간이 lie algebra 공간이 된다.
R(t)=eτ^tR0 라고 가정을 해보자. (R0는 초기 조건 행렬이다.)
(이렇게 가정되는 이유는 R′(t)=τ^R(t)에서 Continuous time을 Discrete time으로 바꾼 것이다. 양변 적분하고, t=0 조건을 넣어주면 된다.)
그리고 이를 t에 대해서 미분하면 다음과 같다.
R′(t)=τ^eτ^tR0
lie algebra의 정의가 identity에서의 tangen space(lie algebra)라고 했다.
따라서 t = 0일 때 R(0) = I로 설정하는 경우 다음과 같이 된다.
R′(0)=τ^
즉 위에서 나왔던 수식과 동일하므로 우리는 lie algebra에서 R=eτ^로 설정할 수 있다.
hat 연산자와 vee 연산자
회전 행렬의 리 대수는 skew-symmetric matrix이다.
즉, 3차원 회전이라고 가정하면 아래와 같은 형태가 된다.
τ^=⎝⎜⎛0τ3−τ2−τ30τ1τ2−τ10⎠⎟⎞
따라서 3개의 변수만으로, 회전행렬을 리 대수로 바꾸는 경우를 표현할 수 있다.
hat(τ^) 연산자는 3차원 벡터 τ를 3x3 skew-symmetric matrix로 변환하는 연산자이고, vee(τˇ) 연산자는 3x3 skew-symmetric matrix를 3차원 벡터로 변환하는 연산자이다.


리 대수의 더하기 연산자, 빼기 연산자
+와 -는 리 군에서 정의된 연산으로, 리 대수를 리 군과 리 대수의 관계와 맞게끔 새롭게 +, - 연산자를 새롭게 정의해야 된다.
그런데 리 대수의 경우 +와 -에서 교환 법칙이 성립하지 않기 때문에 우측 연산자와, 좌측 연산자를 별개로 정의해줘야 한다.
또한 리 대수의 연산임을 나타내기 위해 +, -를 각각 ⊕,⊖로 정의한다.
right-⊕ : Y=X⊕Xτ:=X⋅Exp(Xτ)∈M
- 좌측 항은 리 군, 우측 항은 리 대수로 계산되어 리 군이 결과로 나온다. 따라서 Manifold(리 군)에 값이 존재하게 된다.
- ⊕의 정의는 (identity의 tangent space가 아닌) X의 tangent space에서 Xτ 벡터만큼 이동하는 것이다. 여기서 위첨자로 X를 붙이는 것은 X의 tangent space를 의미한다. Identitiy 위치의 경우 ετ로 표기한다.
right-⊖ : Xτ=Y⊖X:=Log(X−1⋅Y)∈TXM
- 좌측 항과 우측항 모두 리 군이고, 계산 결과는 tangent space(리 대수)에 값이 나온다.
- ⊖의 정의는 X의 tangent space에서 X에서부터 Y의 까지의 lie algebra에서의 리 대수 값이다. 따라서 X를 log 매핑한 위치로부터의 리 대수가 된다.
lie algebra는 identity에서의 tangent space를 얘기한다고 했는데, X의 tangent space에서의 lie algebra vector라는 말이 나오는게 모순으로 느껴진다. 하지만 이것이 성립하는 이유는 exponential 함수와 log 함수(exponential 함수의 역함수)으로 matrix multiplication 가능하기 때문이다.
예를들어 Identity에서의 회전 행렬 RX가 있다고 하자. 이를 lie algebra (tangent veector)로 표현하면 ετX 이다.
X의 tangent space에서 Y라는 곳으로 이동하는 임의의 tangent vector XτY가 있다고 하자.
원래는 identity space에서만 정의되므로 XτY는 존재할 수 없지만 exponential 함수에 의해서 RXRY 인 matrix multiplication이 가능하다. (RY는 X space에서 Y space로 가는 회전행렬로 정의)

따라서 RXRY로 X space를 거쳐서 Y space로 갔는데 RXRY를 log함수로 identity space에 정의된 tangent vector εRY로 정의할 수 있으므로 X에서의 tangent space라는 것을 정의할 수 있게 된다.
다만 ετY=XτY이다. 따라서 adjX(XτY)=ετY라는 adjoint operation을 사용해야 한다. 이는 Adjoint 섹션에서 설명한다.
우측 연산자의 설명을 보면 모두 X의 tangent space를 얘기한다. 이와 반대로 좌측 연산자는 Identity에서의 tangent space에서 출발하는 연산자를 얘기한다.
left-⊕ : Y=ετ⊕X:=Exp(ετ)⋅X∈M
- 좌측 항은 리 대수가 되고, 우측 항은 리 군이다. 계산 결과는 Manifold 안의 원소(리 군)가 된다.
- Identity 접점에서 리 대수 ϵτ 만큼 이동을 한 것을 다시 리 군으로 갖고와서 행렬 연산을 진행한다.
left-⊖ : ετ=Y⊖X:=Log(Y⋅X−1)∈TεM
- 좌측 항과 우측 항 모두 리 군이다. 그리고 계산 결과는 (Identity의 접점인) Tangent Space에 존재하여 Identity 접점의 위치에서의 리 대수가 된다.
- Y⋅X−1을 계산한 결과인 리 군을 Z라고 보자. 그럼 log(Z) 인데 Z=exp(τ^)로 ε⊕τ로 해석할 수 있으므로 Identity 접점 위치에서의 리 대수가 된다.
정리하면 우측 연산자는 특정 리 군에서의 tangent space에서 출발하는 리 대수 / 리 군이고,
좌측 연산자는 Identity의 접점에서 출발하는 리 대수 / 리 군이다.
Xτ를 local frame이라고 부르며, ετ를 global frame이라고 부른다.
여기서 유의하고 넘어갈 점은 Xτ=ετ인 점이다. (교환 법칙이 성립하지 않으므로)
회전 행렬의 리 대수가 skew-symmetric matrix인 이유
회전 행렬의 리 대수가 skew-symmetric matrix인 이유는 회전 변환의 기하학적 성질로 인해서이다.
lie algebra가 항등원에서의 tnagent space이다.
Manifold가 극소적인 범위에서 유클리드 공간을 따르기 때문에 리 대수를 tangent space의 항등원의 접점를 원점으로 두는 위치 벡터로 해석할 수 있다.
이러한 위치 벡터 뿐만 아니라 속도라는 개념으로 해석이 가능하다.
리 대수 각각을 점으로 두었을 때 점에서의 속도를 다음과 같이 근사하여 표현할 수 있다.
limt−>0tR−I
3차원 회전을 예로 들어보자.
그러면 항등원은 아래와 같이 될 것이다.
I=⎣⎢⎡100010001⎦⎥⎤
그럼 각 열은 basis 벡터일 텐데 아래와 같이 접 평면에 대한 matrix로 표현할 수 있을 것이다.

Identity Matrix의 각 열에서의 평면은 다음과 같을 것이다.
TxM=⎣⎢⎡0ab⎦⎥⎤TyM=⎣⎢⎡c0d⎦⎥⎤TzM=⎣⎢⎡ef0⎦⎥⎤
즉, 3차원의 행렬은 다음과 같은 형태로 보이는 것을 볼 수 있다.
하지만 여전히 skew-symmetric이 성립되는 것은 아니다.
exp(τ^)는 lie algebra의 원점에서 탄젠트 벡터 τ 만큼 이동하는 것으로 해석할 수 있다고 위에서 얘기했다. 즉, 회전은 exp(τ^)에 대한 테일러 급수로 나타낼 수 있다. 그런데 시간 t에 대해 0에 가깝게 테일러 급수로 exp(τ^t) 이와 같이 표현할 수 있을 것이다.
R=exp(τ^t)=I+τ^t+2!1(τ^t)2+3!1(τ^t)3+⋅⋅
다만 limt−>0에 가깝기 때문에 2차항까지만 근사를 하겠다.
R=exp(τ^t)=I+τ^t
RTR=I이 성립하므로 아래와 같이 나타낼 수 있다.
RTR=(I+τ^t)T(I+τ^t)=(I+(τ^t)T)(I+τ^t)=I+(τ^T+τ^)t+τ^T⋅τ^⋅t2
t2 항은 t가 0에 가까우므로 무시할 수 있다.
따라서 τ^T+τ^=0 으로 되어야 하고, τ^=−τ^T로 skew-symmetric matrix임이 증명된다.
다만, 회전 행렬은 제약 조건으로 다음 조건도 만족해야 한다.
이는 아래와 같은 이유로 똑같이 증명된다.
det(eτ^t)=det(etr(τ^)t)=det(e0)=1
따라서 회전행렬의 리 대수는 skew-symmetric matrix가 된다.
(tr(τ^)=0인 이유는 위의 그림에 의해서 확인할 수 있다.)
Adjoint Representation in lie group

⊕, ⊖ 연산자에서 말했 듯이 좌측 연산자와 우측 연산자는 교환법칙이 성립하지 않는다.
그리고 좌측 연산자는 identity의 tangent space에서 출발하고, 우측 연산자는 X에 해당하는 tangent space에서 출발하는지로 해석이 달라진다.
lie algebra는 리 군의 identity에서의 tangent space이다.
그리고 adjoint는 특정 리 군의 tangent space를 identity에서의 tangent space로 변경하는데 사용된다.
ετ=Xτ 인 리 대수가 존재한다.
⊕,⊖에서 왼쪽으로 연산하냐, 오른쪽에 연산하냐에 따라서 identity의 tangent space인지, 특정 리 군에서의 tangent space인지가 분리된다고 했다.
수식적으로 생각해보면 어떤 다른 리 대수 ετ,Xτ를 아래와 같이 같다라고 정의할 수 있을 것이다.
Exp(ετ)X=XExp(Xτ)
리 군 관점에서
identity의 tangent space에서 ετ만큼 이동한 다음에 Exp(ετ)로 어떠한 행렬을 만들고 X와 곱하는 것과,
X의 tangent space에서 Xτ만큼 이동한 다음에 Exp(Xτ)로 어떠한 행렬을 만들고 X와 곱하는 것은 똑같게 정의할 수 있다.
(τ가 어떤 값인지는 모르지만, 한 쪽을 알면 다른 한 쪽을 알 수 있는 형태)
X는 역행렬이 존재할 수 있으므로 아래와 같이 정리할 수 있다.
exp(ετ^)=Xexp(Xτ^)X−1Xexp(Xτ^)X−1=exp(XXτ^X−1)ετ^=XXτ^X−1
이게 무슨 뜻이냐면, 리 군(행렬)의 정의에 따라서 리 군 X를 역행렬을 곱해서 identitiy로 보내고, identity 위치에서의 tangent space에서 계산을 한 후에, 다시 X의 위치로 보내는데 이러한 변환이 성립하는 리 대수 값을 구할 수 있다는 것이다.
따라서 리 대수의 정의가 identity에서의 tangent space이지만, 임의의 리 군에서의 tangent space 또한 identity에서의 tangent space에서 출발하는 것과 동일한 효과를 낼 수 있다는 것이다.
2행의 경우 exp(Xτ^)를 테일러 급수를 통해서 변환하여 증명할 수 있다.
기호 또한 AdX를 통해 정의되며, 정리하면 다음과 같다.
AdX(τ^):=Xτ^X−1Xτ→ετ,AdX(Xτ^)=ετ^
지금까지의 내용을 응용하면 다음과 같이 정리할 수 있다.
X⊕Xτ=(AdXXτ)⊕XAdX−1=AdX−1AdXY=AdXAdY
optimization 작업을 할 때 좌측 연산을 사용할 때도 있고, 우측 연산을 사용할 때도 있다.
보통 좌측 연산자는 전역적인 데이터를 다룰 때 모든 rotation을 전역 좌표계에서 계산하고, 우측 연산자는 특정 지점에서의 국소적인 좌표계에서의 미소 변화에 초점을 둔다.
좌측 연산자(global frame)는 변환이 큰 범위 내에서 일어나며, 변환 후의 결과가 원래 위치와 다를 수 있다. 이는 비선형적 변환을 고려해야 한다는 점에서 복잡성이 증가한다. 이에 반해 우측 연산자(local frame)은 변환이 작은 범위 내에서 일어나므로 변환 후의 결과가 원래 위치와 가깝다.
정리하면 리 군의 adjoint representation은 리 군 G의 원소 g∈G가 리 대수 g의 원소 τ∈g에 작용하는 방식이다.
왼쪽 자코비안 vs 오른쪽 자코비안
더하기 연산자와 빼기 연산자가 좌측, 우측에 따라서 달라지듯이 자코비안도 마찬가지다.
여기서 말하는 자코비안은 function:liegroup(M)−>liegroup(N)인 함수의 자코비안을 얘기한다.
즉, 리 대수의 함수가 아니라, 리 군에 대한 함수임을 유의하자.
right-jacobian
DXXDf(X):=τ→0lim=τf(X⊕τ)⊖f(X)=τ→0limτLog(f(X)−1⋅f(X⋅Exp(τ)))=∂τ∂Log(f(X)−1⋅f(X⋅Exp(τ)))∣τ=0∈Rn×m
right-jacobian은 우측 연산자에 맞춰서 τ는 Xτ이다.
left-jacobian
DXεDf(X):=τ→0lim=τf(τ⊕X)⊖f(X)=τ→0limτLog(f(Exp(τ)⋅X)⋅f(X)−1)=∂τ∂Log(f(Exp(τ)⋅X)⋅f(X)−1)∣τ=0∈Rn×m
left-jacobian은 좌측 연산자에 맞춰서 τ는 ετ이다.

함수 f(x)를 리 군(M)에서 또 다른 리 군(N)으로 보내는 함수라고 하자. (ex> M : Dim(3), N : Dim(2))
함수 f(x)의 식을 1차 테일러 근사한다고 하면 우측/좌측 연산자에 따라서 다음과 같이 2가지로 쓸 수 있다. (τ가 0에 가까운 경우)
f(X⊕Xτ)≈f(X)⊕(DXXDf(X)Xτ)∈N
f(ετ⊕X)≈(DXεDf(X)ετ)⊕f(X)∈N
위 식에서 가로쳐져 있는 부분은 위의 그림에서의 초록색 실선의 역할을 한다. 즉 아래의 리 대수로 각각 표현할 수 있다.
(a)f(X)σ=DXXDf(X)Xτ(b)εσ=DXεDf(X)ετ
그리고 Adjoint에서 말했듯이 특정 리 군의 원소에 해당하는 tangent space를 identity의 tangent space로 Ad 연산자를 통해 옮길 수 있다.
(c)ετ=AdXXτ(d)εσ=Adf(X)f(X)σ
(c), (d)를 (b)에 대입하면 다음과 같다.
Adf(X)f(X)σ=DXεDf(X)AdXXτ
(a)를 위의 식에 대입하면 아래와 같이 정리된다.
Adf(X)DXXDf(X)Xτ=DXεDf(X)AdXXτDXεDf(X)AdX=Adf(X)DXXDf(X)
이처럼 left-right 자코비안은 M과 N의 adjoint로 표현할 수 있다.
만약 그림에서의 초록 점선과 같이 local frame to global frame에서의 자코비안과, global frame to local frame의 경우 f(x)의 식을 1차 테일러 근사한 것에 (c), (d)를 대입한 것과 같다.
XDXεDf(X)=εDXεDf(X)AdX=Adf(X)XDXf(X)Df(X)
εDXf(X)Df(X)=XDXf(X)Df(X)AdX−1=Adf(x)−1εDXεDY
그림을 보면 이해하기 쉽다.
함수를 먼저 미분을 하고서 특정 리군 위치로 이동할 것인지, 특정 리군 위치로 이동하고 함수를 미분할 것인지이라고 생각하면 된다.
자코비안을 리 군에서 리 군으로 이동시켜주는 함수라고 생각하면 편하다.
bDaDbw이면 b의 tangent space에 있는 리 대수(w)가 a의 tangent space로 이동한다고 보면된다.
f(X⊕Xτ)≈f(X)⊕(DXXDf(X)Xτ)=f(X)⊕(AdX−1XDXεDf(X)Xτ)=AdXAdX−1XDXεDf(X)Xτ⊕f(X)=XDXεDf(X)Xτ⊕f(X)
X에서 출발했으므로 1행에서 2행으로 넘어갈 수 있다.
f(ετ⊕X)≈(DXεDf(X)ετ)⊕f(X)=f(X)⊕Adf(x)−1(DXεDf(X)ετ)=f(X)⊕(εDXf(x)Df(X)ετ)
우측 oplus 연산자에 의해서 f(x)로부터 시작해야 하므로 Adf(x)−1를 곱해서 넘겨야 된다.
리 대수를 통한 분산 계산
right-⊕,⊖에서의 covariance
X=Xˉ⊕XτXτ=X⊖Xˉ∈TXˉM
(local frame) Xˉ의 tangent space에서 분산은 다음과 같이 정의한다.
X∑X:=E[XτXτT]=E[(X⊖Xˉ)(X⊖Xˉ)T]∈Rm×m
이를 통해서 Xˉ의 Manifolds에서 Gaussian 값으로 정의할 수 있다.
X ~ N(Xˉ,∑X)
left-⊕,⊖에서의 covariance
X=ετ⊕Xˉετ=X⊖Xˉ∈TεM
(global frame) identity의 tangent space에서 분산은 다음과 같이 정의한다.
ε∑X:=E[ετετT]=E[(X⊖Xˉ)(X⊖Xˉ)T]∈Rm×m
adjoint를 통해 두 covariance는 다음과 같이 표현할 수 있다.
ε∑X=AdXX∑XAdXT
이와 마찬가지로 Jacobian을 통해서 함수의 propagation 또한 covariance를 구할 수 있다.
f:M→N 라고 하자.
∑f(X)≈DXDf(X)∑XDXDf(X)T∈Rn×n
리 대수의 이산 적분
X(t)=X0⋅Exp(vt)는 상수(constant) 속도 v∈TX0M를 연속 시간으로 적분한 것과 같다.
만약 속도(vk∈TXk−1M)가 상수(constant)가 아닌 경우 다음과 같이 이산 시간으로 적분을 할 수 있다.

Xk=X0⋅Exp(v1∂t1)⋅Exp(v2∂t2)⋅Exp(v3∂t3)⋅⋅⋅Exp(vk∂tk)=X0⊕v1∂t1⊕v2∂t2⊕v3∂t3⋅⋅⋅⊕vk∂tk
선 속도 v 뿐 아니라 각 속도 w로도 정의가 가능하다.
DIFFERENTIATION RULES ON MANIFOLDS
여기서부터 얘기하는 모든 Jacobian은 우측 자코비안을 얘기한다.
좌측 자코비안을 유도하는 방법은 위에서(자코비안 섹션) left-right 자코비안의 Adjoint 변환으로 바로 유도할 수 있다.
우측 자코비안을 여기서는 다음과 같이 정의하겠다.
JXf(X):=DXDf(X)
the chain rule
Y=f(X),Z=g(Y)라 하자. 한 줄로 적으면 다음과 같을 것이다. Z=g(f(X))
이는 chain rule로 간단히 표현히 가능하다.
DXDZ=DYDZDXDYorJXZ=JYZJXY
우측 자코비안을 통해 간단히 증명이 가능하다.
g(f(X⊕τ))=g(f(X)⊕JXYτ)=g(f(X))⊕JYZJXYτ=g(f(X))⊕JXZτ
Jacobian 섹션의 1차 테일러 급수를 통해서 나오는 것을 응용한 것이다. 이때 τ는 0에 가까운 값이다.
좌측 자코비안도 다음과 같이 chain rule이 성립한다.
εDXZDZ=YDYZDZεDXYDY=εDUZDZεDXεDU
XDXεDZ=YDYεDZXDXYDY=εDYεDZXDXεDY
마찬가지로 1차 테일러 급수의 응용하면 다음과 같이 옮길 수 있다.
g(f(ετ⊕X))=g(f(X)⊕εDXYDZετ)=g(f(X))⊕YDYZDZεDXYDYετ=g(f(X))⊕XDXZDZετ
마찬가지로 ετ이 0에 가까워야지 성립을 하며, 우측으로 Jcobian 형태가 되는 것은 Adf(x)−1 ,Adg(x)−1로 우측으로 넘겨서 계산한 것이다. (Jacobian 세션 마지막 부분 참조)
Elementary Jacobian Block
(우측 연산자 기반)
1) Inverse
f(X)=X−1
JXX−1=DXXDX−1=τ→0limτf(X⊕τ)⊖f(X):=τ→0limτLog((X−1)−1(XExp(τ))−1)=τ→0limτLog(XExp(−τ)X−1)=τ→0limτX(−τ)X−1=−AdX
2행은 우측 자코비안 정의에 의해서 전개한 것이다.
4행은 XExp(τ)X−1=Exp(XτX−1)에 의해 전개된다.
(2) Composition
f(X,Y)=XY
JXX⋅Y:=DXXD(X⋅Y)=τ→0limτf(X⊕τ,Y)⊖f(X,Y)=τ→0limτLog((XY)−1(XExp(τ)Y))=τ→0limτLog(Y−1Exp(τ)Y)=τ→0limτ(Y−1τ^Y)∨=AdY−1
JYX⋅Y:=DYYD(X⋅Y)=τ→0limτf(X,Y⊕τ)⊖f(X,Y)=τ→0limτLog((XY)−1(XYExp(τ)))=τ→0limτLog(Exp(τ))=I
(3) Jacobians of Manifold
Manifold의 (우측/좌측) 자코비안은 리 대수 요소를 리 군 요소로 변활할 때(lie algebra -> lie group)의 미분 동작을 나타내는데 사용한다.
해당 자코비안의 경우는 리 군마다 다르다. (ex> SO(2), SO(3), ..)
SO(2)에서는 자코비안이 identity이지만, SO(3)에서는 identity가 아니다. 이러한 차이는 Log/Exp Mapping이 비선형이여서 발생하는 문제라고한다. (정확히 이해x)
f(X)=X=Exp(τ)로서 M의 right jacobian을 정의한다.
Jr(τ):=JτExp(τ)=DττDExp(τ)∈Rm×m
자코비안은 adjoint와 비슷하게 특정 리군의 tangent space에서 또 다른 특정 리 군의 tangent space로 이동하는 것과 같음을 위에서 보였었다.
여기서도 마찬가지이다.
Exp(τ+δτ)≈Exp(τ)Exp(Jr(τ)δτ)
좌항의 경우 X의 tangent space에서 δτ만큼 이동시키고, Exponential Mapping으로 리 군으로 갖고온다.
Exp(τ)와 Exp(∂τ)가 tangent space가 다를 것이다. 따라서 τ에 대한 (리 대수 → 리 군 함수의) 자코비안을 통해서 δτ를 τ에 해당하는 tangent space로 옮겨야 한다. 그렇기에 자코비안을 붙여야(Exp(Jr(τ)δτ)) 된다.
Exp(τ)Exp(δτ)≈Exp(τ+Jr−1(τ)δτ)
마찬가지로 좌항의 곱의 Exp(δτ)는 X의 tangent space가 아니므로 합칠 때, X의 tangent space에서 Exp(δτ)에 해당하는 tangent space로 옮겨주어야 하므로, 자코비안의 역행렬을 붙인다.
아래 식은 위 식에 Log를 붙인 식이다.
Log(Exp(τ)Exp(δτ))≈τ+Jr−1(τ)δτ
좌측 자코비안도 우측 자코비안과 유사한 개념으로 접근하면 된다.
Jl(τ):=DτεDExp(τ)∈Rm×m
Exp(τ+δτ)≈Exp(Jl(τ)δτ)Exp(τ)Exp(δτ)Exp(τ)≈Exp(τ+Jl−1(τ)δτ)Log(Exp(δτ)Exp(τ))≈τ+Jl−1(τ)δτ
δτ→0limδτLog(Exp(τ)−1Exp(τ+δτ))

To do : 자코비안 사용 예제 추가
업데이트 중
References
(Paper) Joan Sola ... , A micro Lie theory for state estimation in robotics
https://alida.tistory.com/9
https://www.youtube.com/watch?v=G2VVCH8S2G8&t=1334s
https://www.youtube.com/watch?v=gj4kvpy1eCE
https://math.stackexchange.com/questions/301533/jacobian-involving-so3-exponential-map-logr-expm
https://jamessjackson.com/lie_algebra_tutorial/09-lie_group_tables/
https://daniel.lawrence.lu/blog/y2021m09d08/