线性代数回顾(多视图重建)

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=1naibi

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=1nai2)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=0a3a2a30a1a2a10b1b2b3,
或者简写为
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=AAB=ABA1=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=1I(Aixbi)T(Aixbi)]
  • 求解过程
    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=1I(Aixbi)T(Aixbi)]=xargmin[(Axb)T(Axb)]=xargmin[xTATAxbTAxxTATb+bTb]=xargmin[xTATAx2xTATb]
    x T A T A x − 2 x T A T b x^TA^TAx-2x^TA^Tb xTATAx2xTATb求导并使之等于零即:
    2 A T A x − 2 A T b = 0 2A^TAx-2A^Tb=0 2ATAx2ATb=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]subjecttob=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]subjecttob=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[ΩABF]
  • 求解过程
    利用 ∣ X ∣ F = t r [ X T X ] |X|_F=tr[X^TX] XF=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[ΩABF]=Ω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=1Iziilii
    其中, 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