机器学习数学心法之线性变换

来源:互联网 发布:java 执行垃圾回收 编辑:程序博客网 时间:2024/05/18 09:05

机器学习的各种算法推导中, 矩阵推导形式显得比较简单. 那我们该如何理解矩阵呢? 以线性变换的角度看待矩阵, 将会发现我们能看的更深一点.

矩阵与线性变换

若一个变换 \(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*} \]

原创粉丝点击