线性代数回顾(多视图重建)
目录
1 向量
1.1 点积(Dot product)
向量
a
a
a和
b
b
b的点积定义为:
c
=
a
T
b
=
∑
i
=
1
n
a
i
b
i
c=a^Tb=\sum_{i=1}^n a_ib_i
c=aTb=i=1∑naibi
1.2 范数
向量的2范数(欧几里得范数)定义为:
n
o
r
m
[
a
]
=
∣
a
∣
=
(
∑
i
=
1
n
a
i
2
)
1
/
2
norm[a]=|a|=(\sum_{i=1}^n a_i^2)^{1/2}
norm[a]=∣a∣=(i=1∑nai2)1/2
1.3 叉积(Cross product)
向量的叉积
c
=
a
×
b
c=a\times b
c=a×b等价于下述矩阵运算:
[
c
1
c
2
c
3
]
=
[
0
−
a
3
a
2
a
3
0
−
a
1
−
a
2
a
1
0
]
[
b
1
b
2
b
3
]
,
\left[ \begin{matrix} c_1\\c_2\\c_3 \end{matrix} \right]= \left[ \begin{matrix} 0&-a_3&a_2\\a_3&0&-a_1\\-a_2&a_1&0 \end{matrix} \right] \left[ \begin{matrix} b_1\\b_2\\b_3 \end{matrix} \right],
⎣⎡c1c2c3⎦⎤=⎣⎡0a3−a2−a30a1a2−a10⎦⎤⎣⎡b1b2b3⎦⎤,
或者简写为
c
=
A
×
b
,
c=A_{\times}b,
c=A×b,
其中,
A
×
A_{\times}
A×是上述的
3
×
3
3\times 3
3×3的矩阵。
2 矩阵
2.1 矩阵类型
- 按行列数大小关系分为:
- Landscape(行数小于列数)
- Square(行列数相等)
- Portrait(行数大于列数)
- 按元素组成分为
- Diagonal(除对角元素其他都为0)
- Identical (对角元素为1的对角矩阵)
- 方阵有下述特例:
- 正交矩阵
- 旋转矩阵
- 正定矩阵
2.2 矩阵运算
- 矩阵乘法
- 矩阵转置
- 矩阵求逆
2.3 行列式、迹和零空间
注:均针对方阵
- 行列式
∣ A T ∣ = ∣ A ∣ ∣ A B ∣ = ∣ A ∣ ∣ B ∣ ∣ A − 1 ∣ = 1 / ∣ A ∣ \begin{aligned} |A^T|=|A|\\ |AB|=|A||B|\\ |A^{-1}|=1/|A| \end{aligned} ∣AT∣=∣A∣∣AB∣=∣A∣∣B∣∣A−1∣=1/∣A∣ - 迹(对角线元素之和)
t r [ A T ] = t r [ A ] t r [ A B ] = t r [ B A ] t r [ A + B ] = t r [ A ] + t r [ B ] t r [ A B C ] = t r [ B C A ] = t r [ C A B ] \begin{aligned} tr[A^T]=tr[A]\\ tr[AB]=tr[BA]\\ tr[A+B]=tr[A]+tr[B]\\ tr[ABC]=tr[BCA]=tr[CAB] \end{aligned} tr[AT]=tr[A]tr[AB]=tr[BA]tr[A+B]=tr[A]+tr[B]tr[ABC]=tr[BCA]=tr[CAB] - 零空间
右零空间是下述齐次线性方程组的解:
A x = 0. Ax=0. Ax=0.
类似的,左零空间是下述齐次线性方程组的解:
x T A = 0 T x^TA=0^T xTA=0T
3 线性变换
向量左乘一个矩阵的操作被称为线性变换,图C.1展示了作用在单位矩形上的几种不同的线性变换。线性变换具有下述三个性质:
- 不变性。坐标原点经过线性变换不做改变;
- 共线性。共线的点经过线性变换仍保持共线;
- 平行性。平行线经过线性变换仍保持平行。
线性变换有剪切、放缩、镜像和围绕原点旋转的几何特性。
图C.2展示了作用在单位圆上的几种不同的线性变换。线性变换可以将单位圆变换为椭圆,而椭圆可以经由长轴和短轴刻画,所以作用在单位圆的线性变化在某个方向(长轴)上的拉伸作用最大(压缩作用最小),在与之垂直的方向(短轴)上拉伸作用最小(压缩作用最大)。
4 奇异值分解
矩阵
A
M
×
N
A_{M\times N}
AM×N的奇异值分解定义为:
A
=
U
L
V
T
A=ULV^T
A=ULVT
其中,
U
U
U和
V
V
V分别为
M
×
M
M\times M
M×M,
N
×
N
N\times N
N×N的正交矩阵,
L
L
L是一个
M
×
N
M\times N
M×N的对角矩阵,对角元素称为奇异值,奇异值的个数为
min
[
M
,
N
]
\min [M,N]
min[M,N]。
如图C.3所示,单位圆上的点左乘矩阵
A
A
A可以理解为依此经过三个线性变换,依此为:
- V T V^T VT:旋转和镜像;
- L L L:沿坐标轴的拉伸和压缩;
-
U
U
U:旋转和镜像.
如图C.4所示,改变奇异值分解得到的三个矩阵对最终结果有以下影响: - 改变矩阵 V T V^T VT影响最终椭圆长短轴对应的变换之前的点;
- 改变矩阵 L L L中较大的奇异值影响最终椭圆主轴长度;
- 改变矩阵 L L L中较小的奇异值影响最终椭圆短轴长度;
- 改变矩阵 U U U影响最终椭圆的朝向。
5 典型问题
5.1 Least squares problems
-
问题描述
求解下述线性方程组或最优化问题的解:
A x = b x ^ = argmin x [ ∑ i = 1 I ( A i x − b i ) T ( A i x − b i ) ] \begin{aligned} Ax=b\\ \hat x={\underset {x}{\operatorname {argmin} }}\,[\sum_{i=1}^I (A_ix-b_i)^T(A_ix-b_i)] \end{aligned} Ax=bx^=xargmin[i=1∑I(Aix−bi)T(Aix−bi)] -
求解过程
x ^ = argmin x [ ∑ i = 1 I ( A i x − b i ) T ( A i x − b i ) ] = argmin x [ ( A x − b ) T ( A x − b ) ] = argmin x [ x T A T A x − b T A x − x T A T b + b T b ] = argmin x [ x T A T A x − 2 x T A T b ] \begin{aligned} \hat x={\underset {x}{\operatorname {argmin} }}\,[\sum_{i=1}^I (A_ix-b_i)^T(A_ix-b_i)]\\ ={\underset {x}{\operatorname {argmin} }}\,[(Ax-b)^T(Ax-b)]\\ ={\underset {x}{\operatorname {argmin} }}\,[x^TA^TAx-b^TAx-x^TA^Tb+b^Tb]\\ ={\underset {x}{\operatorname {argmin} }}\,[x^TA^TAx-2x^TA^Tb] \end{aligned} x^=xargmin[i=1∑I(Aix−bi)T(Aix−bi)]=xargmin[(Ax−b)T(Ax−b)]=xargmin[xTATAx−bTAx−xTATb+bTb]=xargmin[xTATAx−2xTATb]
对 x T A T A x − 2 x T A T b x^TA^TAx-2x^TA^Tb xTATAx−2xTATb求导并使之等于零即:
2 A T A x − 2 A T b = 0 2A^TAx-2A^Tb=0 2ATAx−2ATb=0 -
结果展示
x = ( A T A ) − 1 A T b x=(A^TA)^{-1}A^Tb x=(ATA)−1ATb
5.2 Principal direction/minimum direction
-
问题描述
Principal direction problem:
b ^ = argmax b [ A b ] s u b j e c t t o ∣ b ∣ = 1 \begin{aligned} \hat b={\underset {b}{\operatorname {argmax} }}\,[Ab] \\ subject\, to\, |b|=1 \end{aligned} b^=bargmax[Ab]subjectto∣b∣=1
Minimum direction problem:
b ^ = argmin b [ A b ] s u b j e c t t o ∣ b ∣ = 1 \begin{aligned} \hat b={\underset {b}{\operatorname {argmin} }}\,[Ab] \\ subject\, to\, |b|=1 \end{aligned} b^=bargmin[Ab]subjectto∣b∣=1 -
求解过程
上述两个问题的几何表达如图C.2所示,对于Principal direction问题,我们寻找线性变化后到达长轴的点;对于Minimum direction问题,我们寻找线性变化后到达短轴的点。
从图C.4可知,矩阵 A A A奇异值分解后的 V T V^T VT控制上述变化过程,所有求解奇异值分解 A = U L V T A=ULV^T A=ULVT。 -
结果展示
Principal direction problem: -
b
b
b为
V
V
V的第一列
Minimum direction problem: - b b b为 V V V的最后一列
5.3 Orthogonal Procrustes problem
-
问题描述
在两组向量 A A A和 B B B之间寻找线性变换 Ω \Omega Ω使得:
Ω ^ = argmin Ω [ ∣ Ω A − B ∣ F ] \hat \Omega={\underset {\Omega}{\operatorname {argmin} }}\,[|\Omega A-B|_F] Ω^=Ωargmin[∣ΩA−B∣F] -
求解过程
利用 ∣ X ∣ F = t r [ X T X ] |X|_F=tr[X^TX] ∣X∣F=tr[XTX]可得:
Ω ^ = argmin Ω [ ∣ Ω A − B ∣ F ] = argmin Ω [ t r [ A T A ] + t r [ B T B ] − 2 t r [ A T Ω T B ] ] = argmax Ω [ t r [ A T Ω T B ] ] = argmax Ω [ t r [ Ω T B A T ] ] \begin{aligned} \hat \Omega={\underset {\Omega}{\operatorname {argmin} }}\,[|\Omega A-B|_F]\\ ={\underset {\Omega}{\operatorname {argmin} }}\,[tr[A^TA]+tr[B^TB]-2tr[A^T\Omega^TB]]\\ ={\underset {\Omega}{\operatorname {argmax} }}\,[tr[A^T\Omega^TB]]\\ ={\underset {\Omega}{\operatorname {argmax} }}\,[tr[\Omega^TBA^T]] \end{aligned} Ω^=Ωargmin[∣ΩA−B∣F]=Ωargmin[tr[ATA]+tr[BTB]−2tr[ATΩTB]]=Ωargmax[tr[ATΩTB]]=Ωargmax[tr[ΩTBAT]]
求奇异值分解 B A T = U L V T BA^T=ULV^T BAT=ULVT并带入上式得:
Ω ^ = argmax Ω [ t r [ Ω T B A T ] ] = argmax Ω [ t r [ Ω T U L V T ] ] = argmax Ω [ t r [ V T Ω T U L ] ] \begin{aligned} \hat \Omega={\underset {\Omega}{\operatorname {argmax} }}\,[tr[\Omega^TBA^T]]\\ ={\underset {\Omega}{\operatorname {argmax} }}\,[tr[\Omega^TULV^T]]\\ ={\underset {\Omega}{\operatorname {argmax} }}\,[tr[V^T\Omega^TUL]] \end{aligned} Ω^=Ωargmax[tr[ΩTBAT]]=Ωargmax[tr[ΩTULVT]]=Ωargmax[tr[VTΩTUL]]
注意到:
t r [ V T Ω T U L ] = t r [ Z L ] = ∑ i = 1 I z i i l i i tr[V^T\Omega^TUL]=tr[ZL]=\sum_{i=1}^I z_{ii}l_{ii} tr[VTΩTUL]=tr[ZL]=i=1∑Iziilii
其中, Z = V T Ω T U Z=V^T\Omega^TU Z=VTΩTU,通过选择 Z = I Z=I Z=I使得上述优化问题最优 -
结果展示
B A T = U L V T Ω = U V T BA^T=ULV^T\\ \Omega=UV^T BAT=ULVTΩ=UVT