1. Lie Algebra 란?
Lie Algebra는 Lie Group의 "미소 변화"를 표현하는 도구이다.
3차원 비전에서 회전을 Lie Group으로 표현한다고 했다. Lie Algebra는 각속도를 표현하기 위한 도구라고 생각하면 좋다.
Lie Group : 회전
Lie Algebra : 각속도
회전을 Lie Group을 사용하는 이유가 Manifold 즉, 미분 가능하기 위해서 사용한다고 했기 때문에 당연히 자연스럽게 Lie Algebra가 나와야 되는 것 아니겠는가?
수학적으로 보면 Lie Group의 항등원에서 미분한 것이라 보면 된다. 어렵게 말하면 접공간 (Tangent Space)의 집합이라고 보면 된다. 해당 공간에서 각속도에 대한 벡터들이 속해 있다고 보면 된다.
2. SO(3)의 Lie Algebra so(3)
우리는 회전군 SO(3)에 대해서 많이 다루니깐 SO(3)의 Lie Algebra so(3)에 대해서 보기로 하자.
Lie group SO(3)와 마찬가지로 소문자 so(3)로 Lie Algebra를 표현한다.
so(3)를 수학적으로 표현하면 아래와 같다.
so(3) 는 3 x 3 반대칭 행렬(Skew-Symmetic) 으로 표현된다. 위의 A 행렬이 반대칭 행렬이다.
반대칭 행렬은 외적에도 많이 쓰이는 행렬인데, 우선은 저런 것이 있다고 보면 좋을 것 같다.
벡터 형태로 표시
so(3)는 벡터 형태로도 표시가 가능하다. 위를 보면 x, y, z로 3가지 변수가 사용되는 걸 볼 수 있다. 이렇게 3차원 벡터로 표현한 것을 반대칭 행렬로 변환할 때, 아래 수식이 쓰인다.
이 때, x 기호가 붙는 이유는 외적을 계산할 때 반대칭 행렬을 사용하기 때문이다. 아래 수식 처럼 외적을 계산할 때, 앞에 있는 벡터를 반대칭 행렬로 변환하여 행렬곱을 하면 쉽게 외적을 구할 수 있는 특징을 가지고 있다.
이 벡터는 각속도(Angular Velocity)로 표현된다. 어떤 회전에 대한 회전축(k), 회전 속도(w)가 있다고 하면, 이를 아래 벡터로 표현되는 된다.
Lie Algebra가 반대칭 행렬인 이유 (증명)
그렇다면 왜 Lie Algebra가 반대칭 행렬의 모음으로 이루어지는 것일까? 직접 Lie Group을 미분하여서 증명해보려고 한다.
회전 행렬 R이 시간 t에 따라 변화는 함수라고 정의해보자
미분을 하기에 앞써 우선적으로 SO(3)에 대한 규칙을 다시 상기해보자.
그럼 위 회전 행렬 R는 아래처럼 표현할 수 있을 것이다.
이걸 직접 미분하여 값을 구해보려고 한다.
<미분 과정>
여기서 점 R은 R(t)의 미분값이다. 마지막 식을 변형하면 미분 값이 반대칭 행렬인 것을 알 수 있다.
3. 회전 행렬의 미분 방정식
이제 회전 행렬의 미분값이 Lie algebra이고 반대칭행렬이라는 것을 알게 되었다. 그렇다면 Lie Algebra(아주 작은 회전값)를 적분하면 Lie Group(회전행렬)이 나오는 것이다. 하지만 어떻게 행렬인 Lie Algebra를 적분할 수 있을까?
이를 알기 위해서는 회전 행렬의 미분 방정식을 세우고, 해당 미분방정식을 풀어야 된다.
우선 회전 행렬의 미분 방정식을 알아보자. 여기서 오메가는 Lie Algebra를 뜻한다.
그런데 왜 이런 미분방정식이 구해지는 지 모르겠다. 왜 이렇게 나오는지 천천히 알아보도록 한다.
미분방정식이 나온 이유
좀 전에 Lie Algebra가 반대칭 행렬인 이유를 설명하기 위해서 아래와 같은 수식을 얻을 수 있었다.
이 때, Lie Algebra 오메가는 아래와 같이 쓸 수가 있다.
위 식에서 왼쪽의 R을 오른쪽으로 옮기면 아래와 같은 식을 얻을 수 있다.
그럼 미분 방정식을 얻을 수 있다.
미분방정식 풀기
그럼 해당 미분방정식을 풀어보자. 회전 행렬의 미분방정식은 아래와 같은 형태를 띄고 있다.
이런 미분방정식의 해는 아래와 같이 정해진다.
그렇다면 A 대신에 Lie Algebra를 넣으면 우리는 아래와 같은 식을 얻을 수 있다.
이는 Lie Algebra의 적분은 exponential map을 이용해서 표현할 수 있음을 알 수 있다.
4. 구체적인 예
이제 미분 방정식을 통해서 각속도 Lie Algebra의 적분이 Exponential Map으로 표현되는 것을 알았다. 그럼 좀더 구체적인 예를 들어서 좀 더 이해를 해보자.
만약 z축으로 초당 90도를 도는 물체가 있을 때, 1초 후의 물체의 위치로 변환해 주는 회전행렬을 얻는 과정을 어떻게 구할 수 있을까?
우선 각속도 벡터를 구하자. 축은 z축이기 때문에 [0, 0, 1] 이며, 90도로 회전함으로 pi / 2 radian 임을 알 수 있다. 이를 벡터로 표현하면 아래와 같다.
이 벡터를 반대칭 행렬인 Lie Algebra로 변환하면 아래와 같은 행렬로 표현할 수 있다.
좀 전에 미분방정식 풀이로 아래 식을 얻었는데 여기서 t에 1을 대입하면 회전 행렬을 구할 수 있다.
각속도 행렬을 Lie Algebra로 변환하고 Exponential Map 연산을 해주면 회전 행렬을 구할 수 있다.
5. Lie Algebra 사용할 때 장점
Lie Algebra는 Lie Group의 미세 변화를 표현하는 것을 알았다. 그러면 Lie Algebra를 사용했을 때에 추가적인 장점이 있다.
1. 비선형 문제를 선형 문제로 변환 가능
기존의 Lie Group의 경우에는 비선형 시스템이다. 하지만 맨 위 그림을 보면 알듯이 Lie Algebra는 선형 시스템이다. 그래서 Lie Group의 복잡한 비선형 연산을 간단한 선형 문제로 바꿔서 풀 수가 있다.
예를 들어서 회전을 여러 개 곱한다고 했을 때, Lie Group의 경우에는 각 회전 행렬을 구하고, 기존 벡터에 곱셈형태로 더해주지만, Lie Algebra는 각속도 단에서 덧셈으로 구하고 Exponential Map을 수행하는 식으로 구할 수 있다.
2. 최적화 문제에 적합하다.
Lie Group에서 최적화를 진행하기 위해서는 Lie Group 제약조건 (직교조건)을 만족하면서 최적화를 진행해야 되는 어려움을 가지고 있다. 하지만 Lie Algebra는 선형 공간이기 때문에 기존에 Gradient Descent 등과 같이 일반적으로 사용하는 최적화 기법을 쉽게 적용할 수 있다.
정리
- Lie Algebra는 Lie Group의 작은 변화를 다루는 핵심 개념이다.
- Lie Algebra의 주된 특징은 반대칭 행렬이다.
- Lie Algebra의 적분은 Lie Group이 되는데 이를 계산하기 위해서는 Exponential Map을 수행한다.
다음은 계산이 복잡한 행렬의 Exponential Map을 쉽게 표시하기 위한 Rodrigues' Rotation Formula 에 대해서 알아보기로 하겠다.
'컴퓨터 비전' 카테고리의 다른 글
[컴퓨터 비전] DINO v1 (0) | 2025.06.18 |
---|---|
[컴퓨터 비전] Vision Transformers (1) | 2025.03.21 |
[컴퓨터 비전] MAP 관점에서 이해하는 칼만 필터 - 수학적인 표현 (1) (1) | 2025.03.12 |
[컴퓨터 비전] Rodrigues' Rotatoin Formula (0) | 2025.03.07 |
[컴퓨터 비전] Lie Group (0) | 2025.03.06 |