10.54 지수 사상과 로그 사상의 관계
1. 지수 사상과 로그 사상의 개요
리 군 이론에서 지수 사상(exponential map)과 로그 사상(logarithmic map)은 서로의 역함수 관계에 있는 두 가지 핵심 사상이다. SO(3) 회전군의 경우, 이 두 사상은 리 대수 \mathfrak{so}(3)(반대칭 행렬 또는 회전 벡터)와 리 군 SO(3)(회전 행렬) 사이의 변환을 수행한다.
본 절에서는 두 사상의 정의, 관계, 성질, 그리고 응용을 체계적으로 다룬다.
2. 지수 사상의 정의
2.1 SO(3)에서의 지수 사상
\exp: \mathfrak{so}(3) \to SO(3)
회전 벡터 \boldsymbol{\phi}(또는 반대칭 행렬 [\boldsymbol{\phi}]_\times)로부터 회전 행렬로의 사상이다.
\mathbf{R} = \exp([\boldsymbol{\phi}]_\times)
2.2 닫힌 형태 (로드리게스 공식)
\exp([\boldsymbol{\phi}]_\times) = \mathbf{I} + \frac{\sin\phi}{\phi}[\boldsymbol{\phi}]_\times + \frac{1 - \cos\phi}{\phi^2}[\boldsymbol{\phi}]_\times^2
여기서 \phi = \lVert\boldsymbol{\phi}\rVert이다.
3. 로그 사상의 정의
3.1 SO(3)에서의 로그 사상
\log: SO(3) \to \mathfrak{so}(3)
회전 행렬 \mathbf{R}로부터 회전 벡터로의 사상이다.
[\boldsymbol{\phi}]_\times = \log(\mathbf{R})
3.2 닫힌 형태
\log(\mathbf{R}) = \frac{\phi}{2\sin\phi}(\mathbf{R} - \mathbf{R}^T)
여기서
\phi = \arccos\left(\frac{\mathrm{tr}(\mathbf{R}) - 1}{2}\right)
4. 두 사상의 역함수 관계
지수 사상과 로그 사상은 서로의 역함수이다.
4.1 역함수 성질
\log(\exp([\boldsymbol{\phi}]_\times)) = [\boldsymbol{\phi}]_\times \quad \text{for } \lVert\boldsymbol{\phi}\rVert < \pi
\exp(\log(\mathbf{R})) = \mathbf{R}
4.2 제한된 영역
이 역함수 관계는 \lVert\boldsymbol{\phi}\rVert < \pi의 영역에서 일대일이다. 경계 \lVert\boldsymbol{\phi}\rVert = \pi에서는 다가성이 있다(\boldsymbol{\phi}와 -\boldsymbol{\phi}가 같은 회전).
5. 지수 사상의 기하학적 의미
5.1 접공간에서 리 군으로
지수 사상은 리 군의 단위 원소에서의 접공간(\mathfrak{so}(3))에서 리 군(SO(3))으로의 사상이다. 접공간의 한 점이 리 군의 “경로“를 통해 특정 원소로 도달한다.
5.2 무한소 회전의 적분
회전 벡터 \boldsymbol{\phi}를 “\phi만큼의 무한소 회전을 연속적으로 적분한 것“으로 볼 수 있다. 지수 사상은 이 적분의 결과이다.
5.3 스크류 운동
SE(3)의 경우 지수 사상은 스크류 운동에 대응한다. 트위스트(각속도와 선형 속도의 결합)를 t 시간 동안 적용한 결과가 \exp(t\boldsymbol{\xi})이다.
6. 로그 사상의 기하학적 의미
6.1 리 군에서 접공간으로
로그 사상은 리 군의 원소에서 접공간으로의 “역사영“이다. 회전 행렬이 “얼마나 많은 무한소 회전의 적분인지“를 결정한다.
6.2 측지선 거리
로그 사상의 크기는 단위 원소에서 해당 리 군 원소까지의 측지선 거리에 비례한다. 이는 회전의 크기(회전 각)를 측정하는 자연스러운 방법이다.
7. 작은 회전에서의 근사
7.1 지수 사상
\phi \to 0일 때
\exp([\boldsymbol{\phi}]_\times) \approx \mathbf{I} + [\boldsymbol{\phi}]_\times
이는 1차 테일러 전개이며, 작은 회전의 선형 근사이다.
7.2 로그 사상
작은 회전에서
\log(\mathbf{R}) \approx \mathbf{R} - \mathbf{I}
정확히는 (\mathbf{R} - \mathbf{R}^T)/2이지만, 작은 회전에서는 \mathbf{R} - \mathbf{I}가 대부분 반대칭이다.
8. 사상의 성질
8.1 지수 사상의 성질
- 연속성: 매끄러운 사상이다.
- 미분 가능성: 모든 차수의 도함수가 존재한다.
- 전사성: SO(3) 전체를 덮는다.
- 일대일이 아님: 전역적으로 일대일이 아니다 (\boldsymbol{\phi}와 \boldsymbol{\phi} + 2\pi\hat{\mathbf{u}}가 같은 회전).
8.2 로그 사상의 성질
- 지역적 연속성: 대부분의 영역에서 연속적이다.
- 경계 특이점: \phi = \pi에서 다가성이 있다.
- 지수의 역: 지수 사상의 역함수이다.
9. 매개변수의 다가성
9.1 지수 사상의 다가성
같은 회전 행렬에 대응하는 무수히 많은 회전 벡터가 존재한다.
\exp([\boldsymbol{\phi}]_\times) = \exp([\boldsymbol{\phi} + 2\pi k\hat{\mathbf{u}}]_\times)
여기서 k는 정수이고 \hat{\mathbf{u}} = \boldsymbol{\phi}/\lVert\boldsymbol{\phi}\rVert이다. 이는 회전의 주기성을 반영한다.
9.2 관례
일반적으로 \lVert\boldsymbol{\phi}\rVert \leq \pi의 영역을 사용한다. 이 영역에서 로그 사상이 “가장 짧은” 회전 벡터를 반환한다.
10. 쿼터니언의 지수와 로그
쿼터니언도 지수와 로그 사상을 가진다.
10.1 쿼터니언 지수
순수 벡터 쿼터니언 \mathbf{v} = (0, \mathbf{v}_v)의 지수는
\exp(\mathbf{v}) = \left(\cos\lVert\mathbf{v}_v\rVert, \frac{\sin\lVert\mathbf{v}_v\rVert}{\lVert\mathbf{v}_v\rVert}\mathbf{v}_v\right)
10.2 쿼터니언 로그
단위 쿼터니언 \mathbf{q} = (q_w, \mathbf{q}_v)의 로그는
\log(\mathbf{q}) = \left(0, \frac{\arccos(q_w)}{\lVert\mathbf{q}_v\rVert}\mathbf{q}_v\right)
이는 순수 벡터 쿼터니언으로, 그 벡터 부분이 회전 벡터의 절반이다.
10.3 관계
\log(\mathbf{q})_v = \frac{\boldsymbol{\phi}}{2}
쿼터니언 로그의 벡터 부분이 회전 벡터의 절반이다. 이는 쿼터니언이 회전 각의 절반을 사용하기 때문이다.
11. 지수 사상의 계산
11.1 직접 계산
회전 벡터의 크기와 방향을 계산한 후 로드리게스 공식을 적용한다.
function exp_so3(phi):
angle = norm(phi)
if angle < epsilon:
# 작은 각도 근사
return I + skew(phi)
else:
axis = phi / angle
return I + sin(angle) * skew(axis) + (1 - cos(angle)) * skew(axis)^2
11.2 효율성
약 10-20 연산이 필요하다. 삼각 함수(sin, cos)가 주요 비용이다.
12. 로그 사상의 계산
12.1 직접 계산
대각합으로부터 회전 각을 계산하고, 반대칭 부분에서 회전 축을 추출한다.
function log_SO3(R):
cos_angle = (trace(R) - 1) / 2
cos_angle = clamp(cos_angle, -1, 1)
angle = acos(cos_angle)
if angle < epsilon:
# 작은 회전 근사
return vee((R - R.T) / 2)
else:
factor = angle / (2 * sin(angle))
return vee((R - R.T) * factor)
12.2 효율성
약 10-20 연산이 필요하다. 역삼각 함수와 나눗셈이 주요 비용이다.
13. 수치적 안정성
13.1 지수 사상
매우 안정적이다. 삼각 함수의 계산이 수치적으로 잘 정의되어 있다.
13.2 로그 사상
작은 회전(\phi \approx 0)과 큰 회전(\phi \approx \pi)에서 주의가 필요하다.
- \phi \approx 0: \sin\phi가 0에 가까워 분모가 작아진다. 테일러 전개로 근사한다.
- \phi \approx \pi: 반대칭 부분이 작아지고 축 추출이 불안정하다. 대각 성분으로부터 축을 추출한다.
14. 지수 사상과 로그 사상의 응용
14.1 회전 적분
각속도로부터 회전을 적분할 때 지수 사상이 사용된다.
\mathbf{R}(t + \Delta t) = \mathbf{R}(t)\exp([\boldsymbol{\omega}\Delta t]_\times)
이는 정확하고 단위 노름을 보존한다.
14.2 보간
두 회전 사이의 SLERP는 로그와 지수를 사용하여 계산할 수 있다.
\mathbf{R}(t) = \mathbf{R}_0\exp(t\log(\mathbf{R}_0^T\mathbf{R}_1))
14.3 최적화
비선형 최적화에서 회전을 매개화할 때, 현재 자세에 작은 회전 벡터를 지수 사상으로 더한다.
\mathbf{R}_{\text{new}} = \mathbf{R}_{\text{current}}\exp([\delta\boldsymbol{\phi}]_\times)
이는 자세를 자유 매개변수(\delta\boldsymbol{\phi})로 매개화한다.
14.4 측지선 거리
두 회전 사이의 측지선 거리는 로그 사상의 크기이다.
d(\mathbf{R}_1, \mathbf{R}_2) = \lVert\log(\mathbf{R}_1^T\mathbf{R}_2)\rVert
이는 SO(3) 매니폴드 상의 거리 척도이다.
14.5 자세 추정
오류 상태 칼만 필터(ESKF)에서 자세 오차를 회전 벡터로 표현하고, 지수 사상으로 자세에 적용한다.
15. 일반 리 군에서의 지수와 로그
지수와 로그 사상은 SO(3) 외에도 일반 리 군에서 정의된다.
15.1 SE(3)의 경우
SE(3) 리 군(강체 변환)의 지수 사상은 트위스트를 동차 변환 행렬로 사상한다.
\exp([\boldsymbol{\xi}]^\wedge) = \begin{bmatrix}\exp([\boldsymbol{\omega}]_\times) & \mathbf{J}_l(\boldsymbol{\omega})\mathbf{v} \\ \mathbf{0}^T & 1\end{bmatrix}
여기서 \boldsymbol{\xi} = (\boldsymbol{\omega}, \mathbf{v})는 트위스트이고 \mathbf{J}_l은 좌측 야코비안이다.
15.2 일반 매트릭스 리 군
일반 매트릭스 리 군 G에 대해 지수 사상은 행렬 지수 함수이다.
\exp(\mathbf{A}) = \sum_{k=0}^{\infty}\frac{\mathbf{A}^k}{k!}
이는 모든 정방 행렬에 대해 잘 정의된다.
16. 베이커-캠벨-하우스도르프 공식
두 리 군 원소의 곱의 로그는 BCH 공식으로 주어진다.
\log(\exp(\mathbf{X})\exp(\mathbf{Y})) = \mathbf{X} + \mathbf{Y} + \frac{1}{2}[\mathbf{X}, \mathbf{Y}] + \frac{1}{12}([\mathbf{X}, [\mathbf{X}, \mathbf{Y}]] - [\mathbf{Y}, [\mathbf{X}, \mathbf{Y}]]) + \cdots
여기서 [\cdot, \cdot]은 리 브래킷이다. 이는 회전 벡터의 합성이 단순한 벡터 덧셈이 아닌 이유이다.
16.1 작은 벡터의 근사
\mathbf{X}와 \mathbf{Y}가 작으면
\log(\exp(\mathbf{X})\exp(\mathbf{Y})) \approx \mathbf{X} + \mathbf{Y} + \frac{1}{2}[\mathbf{X}, \mathbf{Y}]
이는 BCH 공식의 주요 항만 사용한 근사이다.
17. 실제 구현
17.1 C++ 라이브러리
Sophus 라이브러리는 SO(3)과 SE(3)의 지수와 로그 사상을 효율적으로 구현한다.
Eigen::Vector3d phi = ...;
Sophus::SO3d R = Sophus::SO3d::exp(phi);
Eigen::Vector3d phi_back = R.log();
17.2 Python 라이브러리
SciPy의 Rotation 클래스가 유사한 기능을 제공한다.
from scipy.spatial.transform import Rotation
R = Rotation.from_rotvec(phi)
phi_back = R.as_rotvec()
18. 지수 사상과 로그 사상의 교육적 가치
지수 사상과 로그 사상은 리 군 이론의 핵심 개념이다. 이를 이해하는 것은 다음의 교육적 가치를 가진다.
- 리 군의 구조: 리 군과 리 대수의 관계를 이해
- 매니폴드 최적화: 매니폴드 상의 최적화 원리 파악
- 자세 추정: 현대 자세 추정 알고리즘의 기반 이해
- SLAM: 그래프 기반 SLAM의 수학적 배경 파악
19. 결론
지수 사상과 로그 사상은 SO(3) 회전군의 리 대수와 리 군 사이의 자연스러운 사상이다. 서로의 역함수 관계를 통해 회전 벡터와 회전 행렬 사이의 변환을 제공하며, 비선형 최적화, 자세 추정, 보간 등 다양한 응용의 수학적 기반이 된다. 현대 로봇 공학, SLAM, 자세 추정 이론에서 필수적인 도구이다.
20. 참고 문헌
- Hall, B. C. (2015). Lie Groups, Lie Algebras, and Representations: An Elementary Introduction (2nd ed.). Springer.
- Sola, J. (2017). “Quaternion Kinematics for the Error-State Kalman Filter.” arXiv:1711.02508.
- Barfoot, T. D. (2017). State Estimation for Robotics. Cambridge University Press.
- Chirikjian, G. S. (2011). Stochastic Models, Information Theory, and Lie Groups, Volume 2. Birkhäuser.
- Bloesch, M., et al. (2016). “A Primer on the Differential Calculus of 3D Orientations.” arXiv:1606.05285.
version: 1.0