Skip to content

Lie Groups 1: Introduction and Examples

Lie groups은 노르웨이 수학자 Sopus Lie가 이름지은 group의 special case이다. 나아가 일반적인 로봇 책에서 다루는 Lie groups*은 역행렬을 갖는 정방행렬들을 원소로 하는 matrix Lie groups를 다룬다.

matrix Lie groups은 vector spaces외의 수학적 구조에서 “the most like Rn\mathbb{R}^{n}“라고 한다. 실제로 Rn\mathbb{R}^{n}은 ++ 연산과 함께 Lie Groups의 예시로 볼 수 있다. 좀 더 일반화 하여 보면 어떤 Lie Group상의 점 GG와 Rn\mathbb{R}^n상의 어떤 점은 locally indistinguishable하며, globally하게는 GG는 orientable이다. 점 근처만 본다고 하면 Rn\mathbb{R}^{n}과 유사하지만 globally하게 본다면 Rn\mathbb{R}^{n}과 달리 방향을 갖는다.

일반적으로 matrix Lie Groups에서는 연산자를 표기하지 않는다. 왜냐면 연산자가 행렬곱임이 명백하기 때문이다. 그러나 일반적인 Lie Groups를 다룰 때에는 항상 연산에 대한 논의가 필요하다. 따라서 연산자 ∘\circ라고 정의하여 사용한다. ∘\circ 연산은 g1,g2∈Gg_1, g_2 \in G일 때 g1∘g2∈Gg_1 \circ g_2 \in G를 만족하는 연산이다. 비슷한 연산은 두 벡터간의 덧셈(++)연산이 있다. 기억해야할 중요한 점 두가지

  1. Lie Groups는 일반적으로 “not comutative”이다. 즉, g1∘g2≠g2∘g1g_1 \circ g_2 \neq g_2 \circ g_1을 만족해야할 필요는 없다.
  2. group내의 원소에 scalar를 곱하여 같은 group의 원소를 생성하는 것 또한 불가능하다.

Group은 집합(set)과 연산(operation)으로 쌍을 이룬다. 어떤 set GG가 주어졌을때 “(closed) binary operation”이란 GG의 어떤 두개의 원소가 연산에 의해서 다시 GG로 되돌아오는 연산을 의미한다.

b:G×G→Gb:G \times G \rightarrow G with b(g1,g2)≐g1∘g2b(g_1,g_2) \doteq g_1 \circ g_2

어떤 책에서는 b(⋅,⋅)b(\cdot, \cdot) 이런 식으로 사용하기도 하고, 다른 어떤 책에서는 ∘\circ를 이용해서 나타내기도 한다.

그럼 binary operation의 예시를 들어보자. 정방행렬 set G=RN×NG = \mathbb{R}^{N \times N}라하고 GG의 원소 A,B∈GA,B \in G일 때,

∘\circ = matrix multiplication

A∘B=AB∈GA \circ B = AB \in G

따라서 matrix multiplication은 binary operation이다. 다른 예시로 sum(+)연산의 경우도 해당된다. 3차원 벡터들로 예시를 들면 cross product(×\times)의 경우도 binary operation에 해당된다. 추가로 premutation연산도 binary operation에 해당한다.

그러나 모든 연산자가 binary operation은 아니다. 예시로 dot product(⋅\cdot)나 wedge product(∧\wedge)(outer product는 벡터와 벡터를 연산하여 해당 세트의 벡터로 연산한다, 그러나 wedge product는 선, 면, 공간 등을 연산하여 다른 차원의 세트로 변환한다.)는 set의 원소가 다른 set으로 이동하므로 binary operation이 아니다. 유사하게 행렬 곱 중 정방행렬간의 곱이 아닌 서로 다른 크기의 행렬일 경우 matrix multiplication은 binary operation이 아니다.

The pair (G,∘)(G,\circ) consisting of the set GG and binary operation ∘\circ form a mathematical structure that is called a groupoid or a magma

groupoid라는 단어가 다른 의미를 다룰 수 도 있지만 여기서는 Group을 정의하기 위한 보다 큰 Category로 본다.

A group is a special kind of groupoid such that for any elements g,g1,g2,g3∈Gg, g_1, g_2, g_3 \in G, the following properties hold:

  1. g1∘(g2∘g3)=(g1∘g2)∘g3g_1 \circ (g_2 \circ g_3) = (g_1 \circ g_2) \circ g_3

  2. There exists an element e∈Ge \in G such that e∘g=ge \circ g = g.

  3. For every element g∈Gg \in G, there is an element g−1∈Gg^{-1} \in G such that g−1∘g=eg^{-1} \circ g = e

첫번째 특성을 결합법칙(associativity)이라 하고, 두번째 특성에서의 ee를 GG의 항등원(identity of GG)라 한다. 그리고 g−1g^{-1}를 g∈Gg \in G의 역원(inverse)라고 한다. group은 위의 세 가지를 만족하면 성립하지만 특수하게 교환법칙이 성립하는 경우가 있다. 이러한 group의 경우 commutative group 또는 Abelian group이라 한다.

A Concrete Example: Symmetry Operation on the Equilateral Triangle

Section titled “A Concrete Example: Symmetry Operation on the Equilateral Triangle”

어떤 형태를 유지한 채로의 연산은 group으로 설명할 수 있다. 예를 들어 어떤 원을 다른 위치의 원으로 이동시키거나, 공간 상의 어떤 직선을 다른 방향과 다른 위치로 변환하는 것처럼 형태를 유지한 채의 연산을 설명할 때에 group의 예로 설명된다. 다음의 예제는 정삼각형의 테이블의 꼭지점에 시계방향으로 1,2,3을 표기했다. 테이블 외부에도 1,2,3으로 표기되어 있으며 이것은 변하지 않는 상태이다. 테이블을 회전할 수 있으며 다음과 같이 여섯개의 상태로 정의하자. image

  1. g0=eg_0=e, 아무런 움직임이 없는 경우이다.
  2. g1g_1, 시계 반대방향으로 2π/3[rad]2\pi/3 [rad] 만큼 회전
  3. g2g_2, 시계 반대방향으로 4π/3[rad]4\pi/3 [rad] 만큼 회전
  4. g3g_3, 테이블의 1과 테이블 밖의 1을 맞추고 π[rad]\pi [rad] 만큼 회전
  5. g4g_4, 테이블의 2와 테이블 밖의 2를 맞추고 π[rad]\pi [rad] 만큼 회전
  6. g5g_5, 테이블의 3과 테이블 밖의 3을 맞추고 π[rad]\pi [rad] 만큼 회전

이 연산들의 set을 다음과 같이 정의하자

GT≐{e,g1,g2,g3,g4,g5}. G_T \doteq \{ e,g_1,g_2,g_3,g_4,g_5\}.

이제 set GTG_T의 원소들 간의 연산을 ∘\circ로 정의하고 각 원소별 연산결과를 표로 나타내면 다음과 같다.

∘\circeeg1g_1g2g_2g3g_3g4g_4g5g_5
eeeeg1g_1g2g_2g3g_3g4g_4g5g_5
g1g_1g1g_1g2g_2eeg4g_4g5g_5g3g_3
g2g_2g2g_2eeg1g_1g5g_5g3g_3g4g_4
g3g_3g3g_3g5g_5g4g_4eeg2g_2g1g_1
g4g_4g4g_4g3g_3g5g_5g1g_1eeg2g_2
g5g_5g5g_5g4g_4g3g_3g2g_2g1g_1ee

그럼 이 표를 이용해서 group (GT,∘)(G_T, \circ)가 group의 정의를 만족하는가를 확인해보자.(단,∘\circ는 binary operation)

  1. (GT,∘)(G_T, \circ)는 gi,gj,gk∈GTg_i,g_j,g_k \in G_T에 대해서 (gi∘gj)∘gk=gi∘(gj∘gk)(g_i \circ g_j) \circ g_k=g_i \circ (g_j \circ g_k)를 만족.
  2. 모든 원소에 대한 항등원 ee가 존재하며 unique
  3. 모든 원소에 대한 역원 g−1g^{-1}가 존재하며 unique. (ex. g2∘g1=eg_2 \circ g_1 = e)

따라서 (GT,∘)(G_T,\circ)는 group의 정의를 만족하며 group이라 할 수 있다.

set R3\mathbb{R}^3과 cross product연산은 왜 group이 아닐까?

  1. cross product는 not associative
(a×b)×c≠a×(b×c) (\mathbf{a} \times \mathbf{b}) \times \mathbf{c} \neq \mathbf{a} \times (\mathbf{b} \times \mathbf{c})
  1. 항등원이 없음.
  2. 역원 또한 없음.

그럼 RN×N\mathbb{R}^{N\times N}과 matrix multiplication은 group일까? 이때는 “almost” a group이라 하는데 왜그럴까? 일반적으로 matrix는 singular인 경우 역원이 존재하지 않는다. 이경우에 대해서는 3번 성질이 성립하지 않고 이때는 semi-group이라 일컷는다.

역행렬이 존재하는 N×NN \times N 실수 정방행렬 set를 다음과 같이 정의한다.

GL(N,R)≐{A∈RN×n∣detA≠0} GL(N,\mathbb{R}) \doteq \{ A \in \mathbb{R}^{N\times n} | det A \neq 0\}

이 set은 matrix multiplication 연산과 함께 the general linear group “over the real numbers”라 한다. 보다 일반적으로는 R\mathbb{R}은 어떤 field F\mathbb{F}나, 복소수 C\mathbb{C} 등으로 대체될 수 있다.

이 group의 항등원은 IN\mathbb{I}_N이라 나타내며 대각 원소가 1인 N×NN \times N identity matirx이다.

determinant가 항상 양수인 positive matrix에 대한 set은 다음과 같이 정의한다.

GL+(N,R)≐{A∈RN×n∣detA>0} GL^{+}(N,\mathbb{R}) \doteq \{ A \in \mathbb{R}^{N\times n} | det A > 0\}

위의 set도 matrix multiplication 연산과 같이 group으로 정의된다. 일반적으로 행렬에 대한 set들은 matrix multiplication 연산자가 당연하기 때문에 set의 이름을 그대로 group의 이름으로 종종 사용한다.

A subgroup is a subset of a group (H⊆G)( H \subseteq G) which is itself a group that is closed under the group operation of GG. This means that h−1∈Hh^{-1} \in H whenever h∈Hh \in H. The notation for this is H≤GH \leq G. If H≤GH \leq G and H≠GH \neq G, then HH is called a proper subgroup of GG, which is denoted as H<GH<G. This notation parallels that of a proper subset. Each group has at least two improper subgroups: {e}\{e\} and itself.

subgroup이란 group의 subset(H⊆G)(H \subseteq G)인데 GG의 group operation에 대해서 closed인 subset을 의미한다. 이 의미는 h∈Hh \in H에 대해서 h−1∈Hh^{-1} \in H가 항상 존재함을 의미하며 H≤GH\leq G로 표현한다. 이때 H≠GH \neq G인 경우에 대해서는 proper subgroup of GG라 하고 H<GH<G로 나타낸다. 각 group은 {e}\{e\}과 group자기자신으로 적어도 두개의 improper subgroups를 갖는다.

예시로 실수는 복소수의 special case이다. 따라서 GL(N,R)<GL(N,C)GL(N,\mathbb{R}) < GL(N,\mathbb{C})이며, det(AB)=det(A)det(B)\mathrm{det}(AB) = \mathrm{det}(A)\mathrm{det}(B)이므로

SL(N,F)≐{A∈FN×N∣det(A)=+1}⊂GL(N,F) SL(N,\mathbb{F}) \doteq \{ A \in \mathbb{F}^{N \times N} | \mathrm{det}(A) = +1 \} \subset GL(N,\mathbb{F})

위와 같이 special linear group을 정의할 수 있다. 그리고 SL(N,F)<GL(N,F)SL(N,\mathbb{F}) < GL(N,\mathbb{F}) 이다.

다른 예제로는 GL(N,C)GL(N,\mathbf{C})의 subset인 unitary group이 있다.

U(N)≐{A∈CN×N∣AA∗=I}<GL(N,C) U(N) \doteq \{ A \in \mathbb{C}^{N \times N} | AA^{\ast} = \mathbf{I} \} < GL(N,\mathbb{C})

special unitary group

SU(N)≐U(N)∩SL(N,C)<GL(N,C) SU(N) \doteq U(N) \cap SL(N,\mathbf{C}) < GL(N,\mathbb{C})

orthogonal group

O(N,R)≐{A∈GL(N,R)∣AAT=I}=U(N)∩GL(N,R) O(N,\mathbb{R})\doteq \{ A \in GL(N,\mathbb{R}) | AA^T = \mathbb{I}\} = U(N) \cap GL(N,\mathbb{R})

special orthogonal group

SO(N)≐{A∈GL(N,R)∣AAT=I,detA=1}=U(N)∩SL(N,R) SO(N)\doteq \{ A \in GL(N,\mathbb{R}) | AA^T = \mathbb{I},\mathrm{det} A = 1 \} = U(N) \cap SL(N,\mathbb{R})

conjugate subgroup

group theory에서 종종 다뤄지는 부분으로 여기서 subgroup은 group의 operation에 의한 conjugate연산에 의해서 생성된다.

gHg−1≐{g∘h∘g−1∣h∈H} for a single(fixed) g∈G with g∉H<G\begin{aligned} gHg^{-1} \doteq& \{ g \circ h \circ g^{-1} | h \in H\} \\ &\text{ for a single(fixed) } g \in G \text{ with } g \notin H<G \end{aligned}

예를들면 만약 G=SO(3)G = SO(3) 이고 H≅SO(2)H \cong SO(2) 라 할때(≅\cong의 의미는 근본적으로는 같으나 같진 않은 경우) 다음과 같이 행렬을 구성하자.

R3(θ)=(cos⁡θ−sin⁡θ0sin⁡θcos⁡θ0001)R_3(\theta)=\left(\begin{array}{ccc} \cos \theta & -\sin \theta & 0 \\ \sin \theta & \cos \theta & 0 \\ 0 & 0 & 1 \end{array}\right)

만약에 gn=[a,b,n]∈SO(3)g_n = [\mathbf{a},\mathbf{b},\mathbf{n}] \in SO(3) 이면 subgroup Kn≐gnHgn−1<SO(3)K_n \doteq g_n H g^{-1}_n < SO(3)으로 정의하며 위의 행렬처럼 정의한 경우 conjugate 연산한 경우 n\mathbf{n}은 고정된다.

일반적으로 만약 H1,H2≤GH_1,H_2 \leq G이며 모든 g에 대해서 gH1g−1=H2gH_1g^{-1} = H_2인 경우 “H1H_1와 H2H_2는 서로 conjugate하다”라고 한다.

어떤 subgroup N≤GN\leq G이며 모든 g∈Gg \in G에 대해 gNg−1=NgNg^{-1} = N라면 “normal subgroup of GG“라고 한다.(자기 자신에 대해서 conjugate한 경우). 이 경우 N⊴GN \unlhd G로 표기한다. 이때 N=GN=G가 가능한 경우이며 N≠GN \neq G인 경우는 N⊲GN\lhd G로 표기한다.( normal and proper subgroup)

그럼 table예제로 돌아가보자. 예제에서의 proper subgroups는 table을 보고 구할 수 있다.

∘\circeeg1g_1g2g_2g3g_3g4g_4g5g_5
eeeeg1g_1g2g_2g3g_3g4g_4g5g_5
g1g_1g1g_1g2g_2eeg4g_4g5g_5g3g_3
g2g_2g2g_2eeg1g_1g5g_5g3g_3g4g_4
g3g_3g3g_3g5g_5g4g_4eeg2g_2g1g_1
g4g_4g4g_4g3g_3g5g_5g1g_1eeg2g_2
g5g_5g5g_5g4g_4g3g_3g2g_2g1g_1ee

proper subgroups : {e},H1={e,g1,g2},H2={e,g3},H3={e,g4} and H4={e,g4}\{e\}, H_1 = \{e,g_1,g_2 \}, H_2 = \{e,g_3 \},H_3=\{e,g_4\} \text{ and } H_4=\{e,g_4 \}

subgroup H_2,H_3,H_4는 서로 conjugate하다.

g1H2g1−1=H4;  g1H3g1−1=H2;  g1H4g1−1=H3g_1 H_2 g_1^{-1} = H_4; ~~ g_1 H_3 g_1^{-1} = H_2; ~~ g_1 H_4 g_1^{-1} = H_3

모든 g∈Gg \in G에 대해서 H_1은 자신에 대해 conjugate이므로 normal subgroup이다.

gH1g−1=H1g H_1 g^{-1} = H_1

두개의 subgroup H≠GH \neq G와 K≠GK \neq G일때 product는

HK≐{h∘k∣h∈H,k∈K}HK \doteq \{h \circ k | h \in H, k \in K \}

로 정의하고 subset HK⊆GHK \subseteq G 이 된다.(subgroup의 특성을 갖추지 않을 수 있음).

table group (GT,∘)(G_T,\circ)로 예를 들면,

H1Hi=HiH1=G for i=2,3,4H2H3={e,g2,g3,g4}⊂GH3H2={e,g1,g3,g4}⊂G\begin{aligned} H_1H_i = H_iH_1 = G \text{ for } i=2,3,4\\ H_2H_3 = \{e,g_2,g_3,g_4\} \subset G\\ H_3H_2 = \{e,g_1,g_3,g_4\} \subset G \end{aligned}

여기서 만약 N⊴GN \unlhd G 이며 H≠GH \neq G이면 NH=HNNH=HN이다. 그러나 subgroups중에 하나가 normal이 아니라면 성립하지 않음.

10.1.4 Group Actions and Transformation Groups

Section titled “10.1.4 Group Actions and Transformation Groups”

transformation group

transformation group (G,∘)(G,\circ) is a group that acts on a set S in such a way that g⋅x∈Sg \cdot x \in S is defined for all x∈Sx \in S and g∈Gg \in G and has the properties

e⋅x=x e \cdot x = x (g1∘g2)⋅x=g1⋅(g2⋅x)∈S (g_1 \circ g_2) \cdot x = g_1 \cdot (g_2 \cdot x) \in S

for all x∈Sx \in S and e,g1,g2∈Ge,g_1,g_2 \in G. The operation ⋅\cdot defines the action of GG on SS

여기서 ⋅\cdot으로 표기되는 operation을 action으로 정의한다. 어떤 set S상에서의 원소를 S의 다른 원소로 이동시키는 것을 의미한다. 이 때 g⋅x=xg \cdot x = x 인 경우, 즉 x에 대한 g의 action이 x가 되는 경우 gg가 GG의 항등원 ee가 되며 이 경우를 free action이라 한다. 따라서 free인 경우 항등원 이외의 원소는 x를 x로 유지하지 않는다.

If SS is a set and GG is a group that acts on it, the notation S/GS / G (or G\SG \backslash S ) is used to denote the set of equivalence classes of SS under the action of GG.

In other words, if GG does not act transitively on SS, then it divides it into disjoint equivalence classes called orbits

이를 보여주는 예제가 바로 Rn/SO(n)\mathbb{R}^{n}/SO(n) ( or SO(n)\RnSO(n)\backslash \mathbb{R}^n) 이다.

ω∈R3\omega \in \mathbb{R}^{3}의 원소를 R∈SO(3)R \in SO(3)을 이용하여 다음과 같이 나타낼 수 있다.

ω′=Rω∈R3 \omega^\prime = R \omega \in \mathbb{R}^3

이 경우 R3/SO(3)\mathbb{R}^{3}/SO(3) 으로 나타낼 수 있다. 많은 책들에서 R3/SO(3)\mathbb{R}^{3}/SO(3) 로 표기한다. 그러나 이 책에서는 group을 먼저 적는다.. (SO(n)\RnSO(n)\backslash \mathbb{R}^{n}), 의미적으로는 같다.

10.2.1 A Usable Definition of Matrix Lie Groups

Section titled “10.2.1 A Usable Definition of Matrix Lie Groups”

10.2.5 The Adjoint Operator Ad(g)Ad(g)

Section titled “10.2.5 The Adjoint Operator Ad(g)Ad(g)Ad(g)”

10.2.6 The Lie Bracket and ad(X)ad(X)

Section titled “10.2.6 The Lie Bracket and ad(X)ad(X)ad(X)”

10.2.7 The Baker–Campbell–Hausdorff Formula

Section titled “10.2.7 The Baker–Campbell–Hausdorff Formula”

10.3 Change of Basis in a Matrix Lie Algebra

Section titled “10.3 Change of Basis in a Matrix Lie Algebra”

10.3.2 Invariance of Functions of Structure Constants

Section titled “10.3.2 Invariance of Functions of Structure Constants”

10.3.3 Changes of Basis Due to Adjoint Action

Section titled “10.3.3 Changes of Basis Due to Adjoint Action”

10.4 Inner Products on Matrix Lie Algebras

Section titled “10.4 Inner Products on Matrix Lie Algebras”

10.5 Adjoint Matrices and the Killing Form

Section titled “10.5 Adjoint Matrices and the Killing Form”

10.5.2 The Matrices of Ad(g)Ad(g), Ad∗(g)Ad^{\ast}(g), ad(X)ad(X), and B(X,Y)B(X, Y )

Section titled “10.5.2 The Matrices of Ad(g)Ad(g)Ad(g), Ad∗(g)Ad^{\ast}(g)Ad∗(g), ad(X)ad(X)ad(X), and B(X,Y)B(X, Y )B(X,Y)”

10.5.3 Relationship Between ad(X)ad(X) and B(X,Y)B(X, Y ), and the Structure Constants

Section titled “10.5.3 Relationship Between ad(X)ad(X)ad(X) and B(X,Y)B(X, Y )B(X,Y), and the Structure Constants”

10.6.2 The Group of Rigid-Body Motions of the Euclidean Plane, SE(2)SE(2)

Section titled “10.6.2 The Group of Rigid-Body Motions of the Euclidean Plane, SE(2)SE(2)SE(2)”

10.6.3 The Group SL(2,R)SL(2, \mathbb{R})

Section titled “10.6.3 The Group SL(2,R)SL(2, \mathbb{R})SL(2,R)”

10.6.4 The Motion Group of the Lobachevsky Plane, L(2)L(2)

Section titled “10.6.4 The Motion Group of the Lobachevsky Plane, L(2)L(2)L(2)”

10.6.5 The Lorentz Group, SO(2,1)SO(2,1)

Section titled “10.6.5 The Lorentz Group, SO(2,1)SO(2,1)SO(2,1)”

10.6.6 The Rotation Group, SO(3)SO(3)

Section titled “10.6.6 The Rotation Group, SO(3)SO(3)SO(3)”

10.6.7 The Group GL(2,R)GL(2, \mathbb{R})

Section titled “10.6.7 The Group GL(2,R)GL(2, \mathbb{R})GL(2,R)”

10.6.8 The Scale-Euclidean Group of the Plane, SIM(2)SIM(2)

Section titled “10.6.8 The Scale-Euclidean Group of the Plane, SIM(2)SIM(2)SIM(2)”

10.6.9 SE(3)SE(3), The Group of Rigid-Body Motions

Section titled “10.6.9 SE(3)SE(3)SE(3), The Group of Rigid-Body Motions”

10.6.10 The Weyl–Heisenberg Group and Its Semidirect Product with SL(2,R)SL(2, \mathbb{R})

Section titled “10.6.10 The Weyl–Heisenberg Group and Its Semidirect Product with SL(2,R)SL(2, \mathbb{R})SL(2,R)”