李群与李代数的初识——从旋转矩阵到抽象群
在计算机科学中,无论是三维图形学中的旋转、机器人学中的运动规划,还是机器学习中的流形优化,我们常常需要处理连续的变换。这些变换通常具有某种“平滑”和“结构化”的性质,而李群(Lie Group)和李代数(Lie Algebra)正是描述这类变换的数学工具。本篇博客将带你从熟悉的旋转矩阵出发,逐步走进李群和李代数的世界,揭开它们的神秘面纱。我们会通过公式、推导和例子,结合几何意义和直观解释,帮助你建立对这些概念的初步认识。
什么是李群(Lie Group)?
李群(Lie Group)是一个既是群(Group)又具有光滑流形(Smooth Manifold)结构的数学对象。让我们拆解一下这个定义:
- 群(Group):一个集合配上一种运算(例如矩阵乘法),满足以下性质:
- 封闭性(Closure):对任意两个元素 g , h g, h g,h,它们的运算结果 g ⋅ h g \cdot h g⋅h 仍在集合中。
- 结合律(Associativity): ( g ⋅ h ) ⋅ k = g ⋅ ( h ⋅ k ) (g \cdot h) \cdot k = g \cdot (h \cdot k) (g⋅h)⋅k=g⋅(h⋅k)。
- 单位元(Identity):存在一个元素 e e e,使得对任意 g g g,有 e ⋅ g = g ⋅ e = g e \cdot g = g \cdot e = g e⋅g=g⋅e=g。
- 逆元(Inverse):对任意 g g g,存在 g − 1 g^{-1} g−1,使得 g ⋅ g − 1 = g − 1 ⋅ g = e g \cdot g^{-1} = g^{-1} \cdot g = e g⋅g−1=g−1⋅g=e。
- 光滑流形(Smooth Manifold):一个可以局部看作欧几里得空间的几何对象,并且具有“平滑”性质,允许我们定义微分、切线等概念。
简单来说,李群是一个集合,它的元素可以通过某种运算组合,并且这些元素可以“连续变化”,就像旋转角度可以从 0° 平滑变化到 360°。李群的名字来源于挪威数学家索菲斯·李(Sophus Lie),他研究了连续变换的代数结构。
常见的李群示例
让我们通过几个具体的李群来感受它们的魅力:
-
特殊正交群(Special Orthogonal Group, SO(n)):
- 这是所有
n
×
n
n \times n
n×n 旋转矩阵的集合,满足:
- 正交性: R T R = I R^T R = I RTR=I( I I I 是单位矩阵)。
- 行列式为 1: det ( R ) = 1 \det(R) = 1 det(R)=1。
- 例如,二维旋转矩阵属于 SO(2),形如:
R ( θ ) = [ cos θ − sin θ sin θ cos θ ] R(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix} R(θ)=[cosθsinθ−sinθcosθ]
它描述平面上的旋转,角度 θ \theta θ 可以连续变化。 - SO(3) 则包含三维空间的所有旋转矩阵,用于描述 3D 物体的旋转。
- 这是所有
n
×
n
n \times n
n×n 旋转矩阵的集合,满足:
-
特殊线性群(Special Linear Group, SL(n)):
- 这是所有 n × n n \times n n×n 矩阵中行列式为 1 的集合。
- 例如,SL(2) 包含二维变换矩阵,保持面积不变。
-
欧几里得群(Euclidean Group, SE(n)):
- 这是刚体变换的集合,包括旋转和平移。
- SE(3) 常用于机器人学,描述三维空间中的位姿(旋转加平移),可以用
4
×
4
4 \times 4
4×4 矩阵表示:
[ R t 0 1 ] \begin{bmatrix} R & t \\ 0 & 1 \end{bmatrix} [R0t1]
其中 R ∈ SO(3) R \in \text{SO(3)} R∈SO(3), t t t 是平移向量。
这些李群在计算机领域无处不在:SO(3) 用于 3D 动画中的物体旋转,SE(3) 用于机器人手臂的运动规划,SL(n) 出现在某些优化问题中。
从旋转矩阵到李群
为了更好地理解李群,让我们以 SO(2) 为例,探索旋转矩阵如何形成一个群。
SO(2) 的群结构
考虑二维平面上的旋转矩阵:
R
(
θ
)
=
[
cos
θ
−
sin
θ
sin
θ
cos
θ
]
R(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix}
R(θ)=[cosθsinθ−sinθcosθ]
我们来验证它是否满足群的性质:
-
封闭性:两个旋转矩阵相乘仍是旋转矩阵。设 R ( θ 1 ) R(\theta_1) R(θ1) 和 R ( θ 2 ) R(\theta_2) R(θ2),它们的乘积为:
R ( θ 1 ) R ( θ 2 ) = [ cos θ 1 − sin θ 1 sin θ 1 cos θ 1 ] [ cos θ 2 − sin θ 2 sin θ 2 cos θ 2 ] R(\theta_1) R(\theta_2) = \begin{bmatrix} \cos\theta_1 & -\sin\theta_1 \\ \sin\theta_1 & \cos\theta_1 \end{bmatrix} \begin{bmatrix} \cos\theta_2 & -\sin\theta_2 \\ \sin\theta_2 & \cos\theta_2 \end{bmatrix} R(θ1)R(θ2)=[cosθ1sinθ1−sinθ1cosθ1][cosθ2sinθ2−sinθ2cosθ2]
通过三角恒等式,计算得:
R ( θ 1 ) R ( θ 2 ) = [ cos ( θ 1 + θ 2 ) − sin ( θ 1 + θ 2 ) sin ( θ 1 + θ 2 ) cos ( θ 1 + θ 2 ) ] = R ( θ 1 + θ 2 ) R(\theta_1) R(\theta_2) = \begin{bmatrix} \cos(\theta_1 + \theta_2) & -\sin(\theta_1 + \theta_2) \\ \sin(\theta_1 + \theta_2) & \cos(\theta_1 + \theta_2) \end{bmatrix} = R(\theta_1 + \theta_2) R(θ1)R(θ2)=[cos(θ1+θ2)sin(θ1+θ2)−sin(θ1+θ2)cos(θ1+θ2)]=R(θ1+θ2)
结果仍是 SO(2) 中的矩阵。 -
结合律:矩阵乘法天然满足结合律。
-
单位元:取 θ = 0 \theta = 0 θ=0,得 R ( 0 ) = [ 1 0 0 1 ] R(0) = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} R(0)=[1001],即单位矩阵 I I I。
-
逆元:对于 R ( θ ) R(\theta) R(θ),其逆为 R ( θ ) − 1 = R ( − θ ) R(\theta)^{-1} = R(-\theta) R(θ)−1=R(−θ),因为:
R ( θ ) R ( − θ ) = R ( θ + ( − θ ) ) = R ( 0 ) = I R(\theta) R(-\theta) = R(\theta + (-\theta)) = R(0) = I R(θ)R(−θ)=R(θ+(−θ))=R(0)=I
此外,SO(2) 的矩阵随 θ \theta θ 连续变化,满足光滑流形的性质,因此 SO(2) 是一个李群。
几何意义
SO(2) 描述了平面上的所有可能旋转,参数 θ \theta θ 定义了一个圆(拓扑上,SO(2) 同构于圆 S 1 S^1 S1)。你可以想象一个时钟的指针,连续地旋转,这就是李群的“连续性”体现。
李代数(Lie Algebra)的初步概念
如果李群描述了“变换的集合”,那么李代数(Lie Algebra)则捕捉了这些变换的“无穷小变化”,类似物理中位置与速度的关系。形式上,李代数是一个向量空间,配有一个特殊的运算——李括号(Lie Bracket),通常是矩阵的交换子 [ A , B ] = A B − B A [A, B] = AB - BA [A,B]=AB−BA。
对于一个李群,它的李代数可以看作群的单位元(例如单位矩阵)附近的“切空间”。更具体地,李代数的元素通过矩阵指数映射(Matrix Exponential)生成李群的元素:
e
A
=
∑
k
=
0
∞
A
k
k
!
e^A = \sum_{k=0}^\infty \frac{A^k}{k!}
eA=k=0∑∞k!Ak
其中
A
A
A 是李代数中的矩阵,
e
A
e^A
eA 是李群中的元素。
以 SO(2) 为例
让我们看看 SO(2) 的李代数是什么。考虑旋转矩阵
R
(
θ
)
R(\theta)
R(θ) 在
θ
=
0
\theta = 0
θ=0 附近的“速度”。对
R
(
θ
)
R(\theta)
R(θ) 求导:
R
(
θ
)
=
[
cos
θ
−
sin
θ
sin
θ
cos
θ
]
,
d
d
θ
R
(
θ
)
=
[
−
sin
θ
−
cos
θ
cos
θ
−
sin
θ
]
R(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix}, \quad \frac{d}{d\theta} R(\theta) = \begin{bmatrix} -\sin\theta & -\cos\theta \\ \cos\theta & -\sin\theta \end{bmatrix}
R(θ)=[cosθsinθ−sinθcosθ],dθdR(θ)=[−sinθcosθ−cosθ−sinθ]
在
θ
=
0
\theta = 0
θ=0 处:
d
d
θ
R
(
θ
)
∣
θ
=
0
=
[
0
−
1
1
0
]
=
B
\left. \frac{d}{d\theta} R(\theta) \right|_{\theta=0} = \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} = B
dθdR(θ)
θ=0=[01−10]=B
矩阵
B
B
B 是一个反对称矩阵(Skew-Symmetric Matrix),满足
B
T
=
−
B
B^T = -B
BT=−B。我们发现,SO(2) 的李代数(记为
so(2)
\text{so(2)}
so(2))由所有形如
c
B
c B
cB 的矩阵组成,其中
c
c
c 是实数。
现在,验证矩阵指数映射:
e
θ
B
=
e
θ
[
0
−
1
1
0
]
e^{\theta B} = e^{\theta \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix}}
eθB=eθ[01−10]
计算
B
2
B^2
B2:
B
2
=
[
0
−
1
1
0
]
[
0
−
1
1
0
]
=
[
−
1
0
0
−
1
]
=
−
I
B^2 = \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} = \begin{bmatrix} -1 & 0 \\ 0 & -1 \end{bmatrix} = -I
B2=[01−10][01−10]=[−100−1]=−I
因此:
B
3
=
B
2
⋅
B
=
−
I
⋅
B
=
−
B
,
B
4
=
B
3
⋅
B
=
−
B
⋅
B
=
I
B^3 = B^2 \cdot B = -I \cdot B = -B, \quad B^4 = B^3 \cdot B = -B \cdot B = I
B3=B2⋅B=−I⋅B=−B,B4=B3⋅B=−B⋅B=I
矩阵指数展开:
e
θ
B
=
I
+
θ
B
+
(
θ
B
)
2
2
!
+
(
θ
B
)
3
3
!
+
⋯
=
I
+
θ
B
−
θ
2
2
!
I
−
θ
3
3
!
B
+
⋯
e^{\theta B} = I + \theta B + \frac{(\theta B)^2}{2!} + \frac{(\theta B)^3}{3!} + \cdots = I + \theta B - \frac{\theta^2}{2!} I - \frac{\theta^3}{3!} B + \cdots
eθB=I+θB+2!(θB)2+3!(θB)3+⋯=I+θB−2!θ2I−3!θ3B+⋯
将奇次项和偶次项分开:
e
θ
B
=
(
1
−
θ
2
2
!
+
θ
4
4
!
−
⋯
)
I
+
(
θ
−
θ
3
3
!
+
θ
5
5
!
−
⋯
)
B
e^{\theta B} = \left( 1 - \frac{\theta^2}{2!} + \frac{\theta^4}{4!} - \cdots \right) I + \left( \theta - \frac{\theta^3}{3!} + \frac{\theta^5}{5!} - \cdots \right) B
eθB=(1−2!θ2+4!θ4−⋯)I+(θ−3!θ3+5!θ5−⋯)B
利用泰勒展开
cos
θ
=
1
−
θ
2
2
!
+
θ
4
4
!
−
⋯
\cos\theta = 1 - \frac{\theta^2}{2!} + \frac{\theta^4}{4!} - \cdots
cosθ=1−2!θ2+4!θ4−⋯ 和
sin
θ
=
θ
−
θ
3
3
!
+
θ
5
5
!
−
⋯
\sin\theta = \theta - \frac{\theta^3}{3!} + \frac{\theta^5}{5!} - \cdots
sinθ=θ−3!θ3+5!θ5−⋯,得:
e
θ
B
=
cos
θ
I
+
sin
θ
B
=
[
cos
θ
0
0
cos
θ
]
+
[
0
−
sin
θ
sin
θ
0
]
=
[
cos
θ
−
sin
θ
sin
θ
cos
θ
]
e^{\theta B} = \cos\theta I + \sin\theta B = \begin{bmatrix} \cos\theta & 0 \\ 0 & \cos\theta \end{bmatrix} + \begin{bmatrix} 0 & -\sin\theta \\ \sin\theta & 0 \end{bmatrix} = \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix}
eθB=cosθI+sinθB=[cosθ00cosθ]+[0sinθ−sinθ0]=[cosθsinθ−sinθcosθ]
这就是 SO(2) 的旋转矩阵!这表明,
so(2)
\text{so(2)}
so(2) 中的矩阵
θ
B
\theta B
θB 通过指数映射生成了 SO(2) 的元素。
几何意义
矩阵 B = [ 0 − 1 1 0 ] B = \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} B=[01−10] 表示一个“无穷小旋转”。参数 θ \theta θ 控制旋转的角度,矩阵指数 e θ B e^{\theta B} eθB 将这个“速度”转化为具体的旋转。类比于物理学,李代数像是“角速度”,而李群是“旋转角度”。
SO(3) 的简单介绍
让我们稍微扩展到三维情况。SO(3) 包含所有
3
×
3
3 \times 3
3×3 旋转矩阵,描述三维空间的旋转。它的李代数
so(3)
\text{so(3)}
so(3) 由所有
3
×
3
3 \times 3
3×3 反对称矩阵组成,例如:
B
1
=
[
0
0
0
0
0
−
1
0
1
0
]
,
B
2
=
[
0
0
1
0
0
0
−
1
0
0
]
,
B
3
=
[
0
−
1
0
1
0
0
0
0
0
]
B_1 = \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \end{bmatrix}, \quad B_2 = \begin{bmatrix} 0 & 0 & 1 \\ 0 & 0 & 0 \\ -1 & 0 & 0 \end{bmatrix}, \quad B_3 = \begin{bmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix}
B1=
0000010−10
,B2=
00−1000100
,B3=
010−100000
这些矩阵分别对应绕 x、y、z 轴的“无穷小旋转”。通过矩阵指数
e
θ
B
i
e^{\theta B_i}
eθBi,我们可以生成绕某轴的旋转矩阵(具体推导将在后续博客中展开)。
例子:三维旋转
假设我们想绕 z 轴旋转角度
θ
\theta
θ,对应的李代数元素是
θ
B
3
\theta B_3
θB3。计算
e
θ
B
3
e^{\theta B_3}
eθB3(推导略,类似 SO(2)),结果为:
e
θ
B
3
=
[
cos
θ
−
sin
θ
0
sin
θ
cos
θ
0
0
0
1
]
e^{\theta B_3} = \begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix}
eθB3=
cosθsinθ0−sinθcosθ0001
这正是绕 z 轴旋转的矩阵,与 3D 图形学中的变换一致。
直观总结
李群和李代数的关系可以用一个类比来理解:想象你在一条曲线上移动,李群是你的“位置”(例如旋转矩阵),而李代数是你的“速度”(无穷小变换)。矩阵指数映射 e A e^A eA 就像是从速度积分得到位置。
- 李群(Lie Group):描述连续变换的集合,例如旋转、平移。
- 李代数(Lie Algebra):描述这些变换的“局部行为”,通过指数映射连接到李群。
- 几何意义:李群是“全局”的变换空间,李代数是“局部”的线性近似,方便计算和优化。
为什么计算机系的学生需要关心这些?
李群和李代数在计算机科学中有广泛应用:
- 计算机图形学:SO(3) 用于 3D 物体的旋转,SE(3) 用于刚体变换。
- 机器人学:李代数帮助优化运动轨迹,处理非线性约束。
- 机器学习:李群上的优化用于流形学习、生成模型等。
接下来的博客将深入探讨李代数的结构、矩阵指数的细节,以及它们在实际问题中的应用。希望这篇介绍让你对李群和李代数有了一个直观的认识!
后记
2025年4月11日于上海,在grok 3大模型辅助下完成。