1. 程式人生 > >機器學習數學心法之線性變換

機器學習數學心法之線性變換

機器學習的各種演算法推導中, 矩陣推導形式顯得比較簡單. 那我們該如何理解矩陣呢? 以線性變換的角度看待矩陣, 將會發現我們能看的更深一點.

矩陣與線性變換

若一個變換 \(L\) 滿足以下兩條性質

\[ \begin{align*} L(\vec v+ \vec w) &= L(\vec v) + L(\vec w) &(1) \text{"可加性"} \\ L(c\vec v) &= c L(\vec v) \quad\quad\ &(2) \text{"成比例"} \end{align*} \]

則稱 \(L\) 是線性的.

值得注意的一點時, 線性變換中, 座標系的原點不動, 即零向量的變換結果還是零向量.

我們來看看矩陣與線性變換的關係

\[ A(v+w) = Av + Aw \Leftrightarrow L(\vec v+ \vec w) = L(\vec v) + L(\vec w)\\ A(cv) = c(Av) \Leftrightarrow L(c\vec v) = c L(\vec v) \]

可以看出矩陣完全滿足線性變換的要求, 所以現在你應該將矩陣看做線性變換, 這會給我們理解很多線性問題帶來很大的好處.

\(\bigstar\) 如果想知道線性變換對於一個輸入向量空間有什麼影響, 我們只需要知道該線性變換對該輸入空間的基有什麼影響, 我們就能知道所有資訊.

假設 n 維輸入空間 \(R^n\)

的基為 \(v1, v_2, \dots,v_n\)

\[ \begin{eqnarray*} \forall \space v &=& c_1v_1 + c_2v_2 + \cdots + c_nv_n= [v_1,v_2,\cdots,v_n]\begin{bmatrix} c_1\\ c_2\\ \vdots \\c_n \end{bmatrix} \\ T(v) &=& c_1T(v_1) + c_2T(v_2) + \cdots + c_nT(v_n) \\ &=& c_1Av_1 + c_2Av_2 + \cdots + c_nAv_n \\ &=& [Av_1,Av_2,\cdots,Av_n]\begin{bmatrix} c_1\\ c_2\\ \vdots \\c_n \end{bmatrix} \end{eqnarray*} \]

其中 \(c =\begin{bmatrix} c_1\\ c_2\\ \vdots \\c_n \end{bmatrix}\) 即為 \(v\) 在該基下的座標.

可以看出想知道向量 \(v\) 的線性變換結果, 我們只需要知道輸入空間的基的變換結果, 然後乘以座標就好.

下面複合線性變換的會給出例子直觀的看看.

複合線性變換

我們可以通過線性變換具有順序性的的角度理解下面 矩陣乘積 的性質

\[ A B \not= BA \\ ( A B) C = A ( B C) \]

\(\bigstar\) 矩陣的乘積 $ A B $ 可以看成是 複合線性變換. 複合線性變換可以看成兩個線性變換有序疊加. 下面通過一個例子說明.

考慮 向量 $\vec v =[2, 3]^T $, 首先將該向量旋轉 \(90^{\circ}\), 然後進行剪下變換.

\[ \begin{align*} A &= \begin{bmatrix} 1&1 \\ 0&1\end{bmatrix},B=\begin{bmatrix} 0&-1 \\ 1&0\end{bmatrix} \\ C &=AB=\begin{bmatrix} 1&-1 \\ 1&0\end{bmatrix} \end{align*} \]

由於在二維標準正交座標系中, 我們只要知道基向量的 \([0,1]^T, [1,0]^T\) 關於矩陣的變換結果, 乘以座標就是變換結果. 由於由於這裡是標準正交基, 所以基向量組成矩陣是單位矩 I, BI = B, 所以 矩陣 B 的列向量 就是基向量的經過線性變換 B 的變換結果.在下面的圖中, 我們可以看到 基向量 以及 向量 \(v\) 經過矩陣 A, B線性變換之後的結果.

向量 $ v =[2, 3]^T $

vect003-w381

線性變換B: 向量 $ u = B v =[-3, 2]^T$, 其中 \(B=\begin{bmatrix} 0&-1 \\ 1&0\end{bmatrix}\)

vect002-w381

線性變換A: 向量 $ w = Au = [-1,2]^T$, 其中 \(A = \begin{bmatrix} 1&1 \\ 0&1\end{bmatrix}\)

vect001-w381

我們可以看出基向量的線性變換結果就是矩陣 A, B 的對應的列向量.

我們再來看看複合線性變換C 的線性變換

複合線性變換 C, 向量 \(p = Cv\), 其中 \(C=\begin{bmatrix} 1&-1 \\ 1&0\end{bmatrix}\)

vect004-w381

向量\(v\) 變換結果 \(w = p\), 希望現在你已經形成了以線性變換的角度思考矩陣乘法的思考方式.

逆矩陣和逆變換

\(b= Ax\) 表明矩陣 A 將向量 x 線性對映到 向量 b, 那如何將向量 b 變回到之前的向量 x 呢? 我們只需要進行逆變換就好了, 而逆變換對應的矩陣就是逆矩陣.

\[ \begin{align*} b &= A x \\ \quad x &= A^{-1} b, \space if \space \exists A^{-1} \end{align*} \]

\(|A| \not= {0}\) 矩陣的行列式不為零表示線性變換不會將高維對映到低維, 即不會損失資訊, 所以可以通過逆變換得到變換之前的向量.

還是 複合線性變換的例子 其中

\[ \begin{align*} 變換前向量 \quad v &= [2, 3]^T \\ 變換後向量 \quad w &= [-1,2]^T \\ C &= \begin{bmatrix} 1&-1 \\ 1&0\end{bmatrix} \\ C^{-1} &= \begin{bmatrix} 0&1 \\ -1&1\end{bmatrix} \\ w &=Cv \\ v & = C^{-1}w \end{align*} \]

vect005-w381

逆矩陣的定義為
\[ AA^{-1}=I \\ A^{-1}A=I \]

求逆運算 \(Gussian{\rm -}Jordan\) 消元法

\[ \begin{align*} & \space E\left[ A \space\vdots \space I \right] = [I: E] \quad 増廣矩陣\\ &\because EA = I\\ &\therefore E = A^{-1} \end{align*} \]