从线代理论到PCA算法(二)

PCA算法的线代理论

矩阵变换的更多内容

根据第一篇文章的内容我们知道,一个向量可以通过变换基底来改变其不同维度的投影的大小。当基底发生变化时向量的投影就会变化,这个投影就是不同维度的分量值。当变换前后都是直角坐标系,或者说基底向量始终正交时,此时的投影值(分量值)就是向量大小乘以向量与该基底向量夹角的余弦值。
当基底的模为1时,假设向量和基底分别为 a \bold{a} a e x \bold{e_x} ex这个投影的大小可以写成:
a x = a ∗ e x ∣ e x ∣ = a ∗ e x a_x = \frac{\bold{a}*\bold{e_x}}{|\bold{e_x}|} = {\bold{a}*\bold{e_x}} ax=exaex=aex
从一组基底到另一组基底的过程可以被称为一种基底变换,这个变换可以通过矩阵来实现,由此我们复习矩阵与向量的乘法运算,这个运算可以用 A m n x n \bold{A_{mn}x_n} Amnxn来表示,其中 x \bold{x} x表示一个n维向量,矩阵的列数与向量的维数(即行数)相等,变换结果将成为一个m维向量。这个m维向量的每一个元素分别与变换矩阵的对应行相关。即:
A x = [ a x 1 + b x 2 c x 1 + d x 2 ] = [ r o w 1 ∗ x r o w 2 ∗ x ] Ax=\begin{bmatrix} ax_1 +bx_2 \\ cx_1+dx_2 \end{bmatrix}=\begin{bmatrix} row_1 * x\\ row_2 *x \end{bmatrix} Ax=[ax1+bx2cx1+dx2]=[row1xrow2x]
从另一方面看,变换结果每一个元素都含有原向量的不同分量成分,那么这个变换又可以写成:
A x = [ a x 1 + b x 2 c x 1 + d x 2 ] = x 1 [ a c ] + x 2 [ b d ] Ax=\begin{bmatrix} ax_1 +bx_2 \\ cx_1+dx_2 \end{bmatrix}=x_1\begin{bmatrix} a\\c\end{bmatrix} + x_2\begin{bmatrix} b\\d \end{bmatrix} Ax=[ax1+bx2cx1+dx2]=x1[ac]+x2[bd]
因此向量通过矩阵进行变换的过程,就可以被看作是将矩阵的列向量进行重新线性组合的过程。

向量基底变换的阐述

对向量进行矩阵变换可以通过基底变换来取消对向量不同维度分量变化的效果。
这里我们介绍这样一个变换的例子,我们知道(2,1)这个坐标(或者叫二维向量 [ 2 1 ] T \begin{bmatrix}2&1\end{bmatrix}^T [21]T)通过矩阵 [ 2 − 1 1 2 ] \begin{bmatrix}2&-1\\1&2\end{bmatrix} [2112]可以变换为该坐标系下的(3,4)(或者叫二维向量 [ 3 4 ] T \begin{bmatrix}3&4\end{bmatrix}^T [34]T)那么如何将通过基底变换来取消坐标变化(或者说取消不同维度分量大小值的变化)呢?我们主要采用对向量进行列分解的方式进行基底变换的方法:
[ 3 4 ] = [ 2 − 1 1 2 ] [ 2 1 ] = [ 2 − 1 1 2 ] ( 2 [ 1 0 ] + 1 [ 0 1 ] ) = 2 [ 2 1 ] + 1 [ − 1 2 ] \begin{bmatrix}3\\4\end{bmatrix}=\begin{bmatrix}2&-1\\1&2\end{bmatrix}\begin{bmatrix}2\\1\end{bmatrix}=\begin{bmatrix}2&-1\\1&2\end{bmatrix}(2\begin{bmatrix}1\\0\end{bmatrix}+1\begin{bmatrix}0\\1\end{bmatrix})=2\begin{bmatrix}2\\1\end{bmatrix}+1\begin{bmatrix}-1\\2\end{bmatrix} [34]=[2112][21]=[2112](2[10]+1[01])=2[21]+1[12]
此时我们发现,向量的值没有变化,即通过不同坐标系(即不同基底)的变换来抵消矩阵变换在原坐标系上不同分量上的变换结果,由此我们得到了向量不变而改变基底的相同变换效果:
x [ 1 0 ] + y [ 0 1 ] ⇒ x [ a c ] + y [ b d ] x\begin{bmatrix} 1 \\ 0 \end{bmatrix} +y\begin{bmatrix} 0 \\ 1 \end{bmatrix}\Rightarrow x\begin{bmatrix} a \\ c \end{bmatrix} +y\begin{bmatrix} b \\ d \end{bmatrix} x[10]+y[01]x[ac]+y[bd]
这个变换也可以写成:
[ a c b d ] [ 1 0 0 1 ] = [ a c b d ] \begin{bmatrix} a & c \\ b & d \end{bmatrix}\begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}=\begin{bmatrix} a & c \\ b & d \end{bmatrix} [abcd][1001]=[abcd]

我们从变换结果中能得到什么

通过上面这个例子可以发现保持向量不变而改变基底时,如果原基底是初始正交单位基底(即 [ 1 0 ] \begin{bmatrix} 1 \\ 0 \end{bmatrix} [10] [ 0 1 ] \begin{bmatrix} 0 \\ 1 \end{bmatrix} [01])时,矩阵的各列就是映射后的新基底。当原基底不是初始正交单位基底时,新基底的每一个向量均可以看成矩阵的各列通过以原基底各个维度分量为系数线性组合的结果
显然这个结论的一般性是可以进一步推广的。对于原基底组成的n维空间中,对这个空间中的某个向量使用矩阵左乘的方式进行变换,就可以得到这个向量在另外一组基底表示下的n维向量(n维分量和的形式),这组向量的特点就是一共有n个。
但是在这个变换的过程中有可能改变的就是基底向量的维度,也就是说,尽管变换向量在基底变换的同时大小并没有变化,但是基底的维度变成了m维,这个m和n有三种大小关系:
当m>n时,向量空间变成了高维空间,由于基底变为高维,此时这个向量控制的维度低于了基底所表示的维度范围。从原空间来看,向量已经成为了高维空间的向量。向量不变而从基底的变化来看,向量所处位置已经成为m维空间上某个n维空间的一个向量,从而说明此时的基底已经时用n个向量来表示m维空间的内容,显然此时的基底已经无法完全表示m维空间的所有向量,而是只能包含n维空间的所有向量,因此基底向量组这个向量组已经不能称为整个高维空间的基底。
当m 当m=n时,我们发现变换后的基底仍然有可能是新空间的基底。

你可能感兴趣的:(建模算法,线性代数,矩阵,算法)