參考 Giorgio Grisetti 的投影片,對線性代數所做的筆記,主要包含:
向量(Vectors)、矩陣(Matrices)、線性系統(Linear Systems)、特徵向量(EigenVectors)、正交矩陣(Orthonormal Matrices)、仿射變換(Affine Transformations)、二次型(Quadratic Forms)。
另外補充:線性轉換(Linear Transformation)、齊次座標(homogeneous coordinates)。
向量(Vector)
由 n 個數字組成,代表一個點在 n 維空間的位置
向量加法
具有交換性,視覺上就像是把這些向量串起來
向量乘法,有三種不同的情況:
scalar-vector product
k.a
只改變向量的長度,不會改變向量的方向
scalar product, dot product, inner product (純量積、點積、內積)
向量的內積是一個純量,可以定義為:
其中 θ 為兩向量之間的夾角
如果 向量a 為單位向量(長度為 1),則 向量a 與 向量b 的內積為 向量b 投影在 向量a方向 的長度。
如果 向量a 與 向量b 的內積為 0,則 向量a 與 向量b 正交。(orthogonal)。
vector product, cross product, outer product (向量積、叉積、外積)
向量的外積是一個向量,可以定義為:
其中 θ 為兩向量之間的夾角, n^ 為與 向量a、b 平面垂直的單位向量,所以兩個向量的外積會與原來的兩個向量都垂直。
線性獨立、線性依賴(Linearly (In)dependent)
如果 向量b 可以從 {a1, a2, a3, ... an} 經由加法及純量乘法取得,則稱 向量b 對 {a1, a2, a3, ... an} 為線性依賴(Linear Dependent)。
{a1, a2, ..., an} if b = Σki.ai
反之,如果不存在 {ki},使得上式成立,則稱 b 對 {a1, a2, a3, ... an} 為線性獨立(Linear Independent)。
矩陣(Matrix)
一個 n × m 矩陣 是一個由 n 列 m 行元素排列成的矩形陣列
一個 d維向量 可以等於一個 dx1矩陣
矩陣可以視為行向量(Column Vector)的集合:
也可以視為列向量(Row Vector)的集合:
矩陣與純量的乘法
純量c 與 矩陣A 的純量乘法為 cA 的每個元素是 矩陣A 的相應元素 與 c 的乘積:
cA = (cA)i,j = c · Ai,j
矩陣與向量的乘法
可以視為矩陣的 第i列 與 向量b 的內積。
而向量 A.b 與 {a*i 為線性相依,其係數為 {bi}
如果 向量b 代表一個 參考系統(reference system),則 A.b 的計算為 向量b 根據 矩陣a 所作的 全域轉換(global transformation)。
每個 ai,j 可以被視為是 線性混合係數(linear mixing coefficient),對 (A.b)j 產生固定量的影響。
例如多維度函數的 Jacobian matrix:
矩陣與矩陣的乘法
可以定義為:
1、對 列向量 與 行向量 作內積
2、將矩陣A 乘上 矩陣B 的行向量係數 作結合
以第二個定義來考慮的話,可以說每個 矩陣C 的 行向量,是 每個 矩陣B 的 行向量 透過 矩陣A 的投影。
以上兩個解釋,都能合理解釋矩陣乘法。
C = A.B = (A.b*1 A.b*2 ... A.b*m)
C*i = A.b*i
線性轉換(Linear Transformation)
設 V 和 W 是在相同域 K 上的向量空間。
法則f : V → W 被稱為是線性映射,如果對於 V 中任何兩個向量 x 和 y 與 K 中任何純量 a,滿足下列兩個條件:
可加性: f(x+y) = f(x) + f(y)
齊次性: f(ax) = af(x)
如要判斷該轉換是否為線性轉換,可以作以下測試:
- f(零向量) = 零向量
- f(-x) = -f(x)
- f(x-y) = f(x) - L(y)
線性系統(Linear System)
A x = b
在經過 A 的作用後,其結果為 b,求出 x 的最佳值
許多的有效解法:
Conjugate gradients (共軛梯度法)
Sparse Cholesky Decomposition (if SPD)
…
利用去除線性相依的列可以將此系統的矩陣(A b)作簡化,得到 (A' b')
所以經簡化過的系統為:
A'x = b'
其中 A'為 m' x n 又 b 為 m' x 1,而 rank A' = min(m', n)
如果 (m' > n),則為 over-constrained system(過約束系統)。
如果 (m'
如果是 over-constrained system 不會有正確的值,然而,如果 rank A' = cols(A),則可以利用 closed form pseudo inversion(封閉式偽反轉),得到極小範數解(minimum norm solution)。
如果是 under-constrained system,則可能會有無限多組解,它的 degree of infinity 為 cols(A') - rows(A')。
反矩陣(Inverse Matrix)
A.B = I
假設 A 為方形矩陣,且為全秩(full rank),則必存在一個唯一 矩陣B = A-1,滿足上式。
矩陣A 的第 i 列 與 矩陣B 的第 j 行的關係為:
正交,內積為 0,如果 i != j
內積為 1,如果 i == j
可以利用以下方式,求出矩陣A-1 第 i 行 的值:
A.a-1*i = i*i
跡數(Trace)
為方形矩陣的主對角元之和
tr(A) = a11 + a22 + ... + ann
= Σaii
跡數是 n x n 矩陣的線性函數,滿足下列性質:
tr(A + B) = tr(A) + tr(B)
tr(c.A) = c.tr(A)
tr(AB) = tr(BA), tr(ABC) != tr(ACB)
滿足相似變換不改變一個矩陣的跡數:
tr(P-1AP) = tr((AP-1)P) = tr(A)
tr(A) = tr(AT)
給定 a, b 兩矩陣,則:
tr(aTb) = tr(abT)
秩(Rank)
矩陣中,最大數目的線性獨立的列(行)
在 f(x) = Ax 的線性轉換中,可以視為像(image)的維度。
假設 A 是一個 m x n 矩陣,則:
- rank(A) >= 0,iff A != null matrix
- rank(A)
- f(x) 稱為 一對一(one-to-one) 或 單射(injective),iff rank(A) = n
- f(x) 稱為 滿射(surjective or onto),iff rank(A) = m
- 如果 m == n,則 f(x) 為 對射(bijective) 且可逆,iff rank(A) = n
計算矩陣的秩:
1、利用高斯消去法(Gaussian elimination)
2、計算非全 0 的列的數目,即為該矩陣的秩
行列式(Determinant)
只存在於方陣
A . A-1 = I,iff det(A) != 0
以 2x2 矩陣來看,其行列式為:
以 3x3 矩陣來看,其行列式為:(Sarrus rule)
以 n x n 矩陣來看,該如何計算其行列式?
將 Ai,j 定義為從 矩陣A 減去第i列,減去第j行,而得的 子矩陣:
重新定義 3x3 矩陣的算法為:
det(A3x3) = a11a22a33 + a12a23a31 + a13a21a32 - a11a23a32 - a12a21a33 - a13a22a11
= a11.det(A11) - a12.det(A12) + a13.det(A13)
所以 n x n 矩陣,其行列式為:
det(A) = a11det(A11) - a12det(A12) + ... + (-1)1+na1ndet(A1n)
= Σ(-1)1+ja1jdet(A1j)
令 Cij = (-1)i+jdet(Aij),則行列式可以表示為:
det(A) = a11C11 + a12C12 + ... + a1nC1n
= Σa1jC1j
這也就是對第一列所做的餘因子展開(cofactor expansion)
但,餘因子展開存在個問題,它需要 n! 個乘法,以 25x25 的矩陣為例,它會需要作 1.5 x 1025 次的乘法,運算時間會超乎想像。
有一個比較快的計算方式,先利用高斯消去法(Gauss elimination),將矩陣轉變成三角形的形式(triangular from):
因為在三角矩陣的行列式,會等於其所有對角元相乘的乘積。
行列式的特性:(A, B 同為 n x n 矩陣)
- 如果 B 是由 A 的任意兩列交換而成,則 det(B) = -det(A)
- 如果 B 是由 A 任意一列乘上 常數 c 而成,則 det(B) = c.det(A)
- 如果 B 是由 A 任意一列加上任意一列而成,則 det(B) = det(A)
- det(AT) = det(A)
- det(A.B) = det(A).det(B)
注意:加法不會成立,只適用於乘法
行列式的應用:
- 在克拉瑪公式 (Cramer’s rule)中,可以用來計算反矩陣,A-1 = adj(A) / det(A),其中 adj(A) 為 A 的伴隨矩陣(adjugate matrix)
- 計算特徵值(Eigenvalue),用來計算其特徵多項式: det(A - λ.I) = 0
- 計算面積、體積 = |det(A)|:
正交矩陣(Orthonormal Matrix)
若矩陣Q 為正交矩陣,則 iff 它的行(列)向量為正交基底(orthonormal basis):
在線性變換中,如果滿足下列關係:
|| Ax - Ay|| = ||x - y||
則此線性變換稱為 等距同構(isometry)、正交變換(orthogonal transformation) 或 保距映射(distance preserving)。
若 A 為實矩陣,則:
AT = A-1
A 稱為正交矩陣。
正交矩陣的特性:
其 轉置矩陣(Transpose Matrix) 就是它的 反矩陣(Inverse Matrix)
QQT = QTQ = I
其行列式特性為:
1 = det(I) = det(QTQ) = det(Q) det(QT) = det(Q)2
旋轉矩陣(Rotation Matrix)
旋轉矩陣是一個正交矩陣,其行列式為 +1
二維旋轉矩陣:
對 X, Y 軸旋轉的三維旋轉矩陣:
旋轉旋陣不具有交換性:
齊次座標(homogeneous coordinates)
所謂齊次坐標就是將一個原本是n維的向量用一個n+1維向量來表示。
例如,二維點(x,y)的齊次坐標表示為(hx,hy,h)
齊次坐標的優點:
1、許多圖形應用涉及到幾何變換,以矩陣表達式來計算這些變換時,平移是矩陣相加,而旋轉和縮放則矩陣相乘,綜合起來可以表示為p' = m1*p + m2,引入齊次坐標的目的主要是合併矩陣運算中的乘法和加法,表示為 p' = M*p 的形式。
2、它可以表示無窮遠的點。n+1維的齊次坐標中如果 h=0,實際上就表示了n維空間的一個無窮遠點。
以矩陣表示仿射轉換(Affine Transformation)
利用矩陣來表示三維轉換(旋轉+位移):
在 二維平面 和 三維空間 的轉換行為是相同的。
仿射變換有兩個相當特殊的性質:
共線 (collinearity) 不變性和比例不變性,意思是 Rn 的任一直線經仿射變換後,仍是一直線,而且直線上各點之間的距離比例維持不變。
結合轉換
假設這一連串的轉換都是以齊次矩陣表示:
矩陣A 表示 機器人 以 世界座標為原點 的 轉換矩陣
矩陣B 表示 感應器 以 機器人座標為原點 的 轉換矩陣
而感應器偵測到一個物體的位置為 p
則求 p 在 世界 的座標為何?
對稱矩陣(Symmetric Matrix)、斜對稱矩陣(Skew_Symmetric Matrix)
如果 矩陣A 為對稱矩陣,為 A = AT,例如:
(1 4 -2) (4 -1 3) (-2 3 5)
如果 矩陣A 為斜對稱矩陣,為 A = -AT,例如:
(0 4 -2) (-4 0 3) (2 -3 0)
每個對稱矩陣都是可對角化矩陣(diagonalizable matrix):
D = Q A QT
其中 D 是為由 A 的 特徵值(eigenvalues) 所構成的對角矩陣(diagonal matrix);而 Q 是正交矩陣,其 行向量 由 A 的 特徵向量(eigenvectors) 所構成。
每個對稱矩陣的 二次型(Quadratic Forms) 定義為:
正定矩陣(Positive Definite Matrix)
對角元都是正的
正定矩陣的定義為:
如果 M 為正定矩陣,iff 所有的非零實係數向量z,都滿足 zT M z > 0
例如:
正定矩陣的特性為:
每個正定陣都是可逆的,它的逆矩陣也是正定陣。
所有的特徵值都大於 0
跡數大於 0
若 A 為正定矩陣,則跟據 Cholesky Decomposition,A 可以分解為:
A == LLT
L 為下三角矩陣,且其主對角元皆為正數
具有偏序關係(Partial Ordering):(M, N 為兩正定矩陣)
M > N iff M - N > 0
若 M > N > 0,則 N-1 > M-1 > 0
若 M > 0 且 N > 0,則 M + N > 0
雅可比矩陣(Jacobian Matrix) (尚不理解)
一般來說為 n x m 的非方形矩陣,假設給定一向量值函數(Vector-valued Function):
則其 Jacobian Matrix 定義為:
當我們將非線性函數予以線性化時,Jacobian 矩陣就是描述該線性關係的矩陣。
二次型(Quadratic Forms)
很多重要的函數可以局部地近似於二次型:
通常二次型被用來找尋最小值(或最大值):
該如何利用 矩陣的特性 來快速計算最小值的問題?
在求最小值中,可以認定:
利用矩陣乘法的特性,可以計算 f'
f(x) = xT A x + b x + c
f'(x) = ATx + Ax + b
f(x) = xT A x + b x + c 的最小值就為它的導數值為 0 的情況,也就是:
0 = ATx + Ax + b
因此可以利用:
(AT + A)T x = -b
來作計算 x 值
若 A 為對稱矩陣,則問題可以簡化為:
2Ax = -b
來計算 x 值
Reference
A Reminder of Linear Algebra
線代啟示錄
文字內容 或 影像內容 部份參考、引用自網路,如有侵權,請告知,謝謝。
全站熱搜
留言列表