线性代数及PCA详解
本章对最近学习的线性代数知识进行总结,最后以PCA为例运用线代中的相关知识讨论其中的原理。才疏学浅,各位有什么意见可以讨论,一起查缺补漏。
1. 线代基础
对于深度学习,它需要一定的数学和机器学习基础,特别的,线性代数、概率与信息论和数值计算尤为重要(参见《deep learning》一书)
所以我们本章主要对线代进行讨论,当然主要是为了针对PCA包含的知识点。如果有同学希望可以完整学习线代,可以戳这里。
线代主要围绕线性变换展开,其中变换指的是一种函数关系:输入输出都为向量的一种函数,但是既然取名为变换,意为强调一种运动关系;线性表示变换的约束:一为原点不能变,二为保持网格线平行且均匀分布。
而描述线性变换也很简单,通常一组线性无关向量即可,称为基。基可以理解为构建向量世界的基础,任何向量都可以利用它线性组合而成。
我们利用最多的就是i帽和j帽(即正交基(1,0),(0,1)注:一般描述为列向量,为了方便,本章的向量都为列向量)
如下图所示,α=(3,2)向量其实具体应该描述为α=3i+2j
既然如此,假如我们不再使用常规的i帽和j帽最为基,例如小明同学非要换一组其他的(例如将i,j旋转90°,其实这就是一种线性变换)基,那么在他看来,原来的α该怎么描述呢?
可能有人会问,α并未变化,产生差别的原因是?在这里,我们的视角和小明的视角并不一样,更进一步说,是因为我们和小明选取的坐标(参考)系不一样。我们看到的α是在xy坐标系下3倍i帽与2倍j帽的线性组合,而小明看到的是旋转后的坐标系,这时我们需要利用小明选取的基来描述α。
具体说来,可以有两种方法求解“小明眼中α的坐标”:
- 将α投影到新基上,得出投影长度(有方向,即可正负)即为坐标;
- 通过坐标变换公式求得
先说方法一,先说明一下投影的含义,一方面,从几何意义上,如下图所示,即将向量向另一向量所在直线做垂线,则投影长度即为蓝色向量与垂线交点的向量长度;另一方面,内积与投影关系密切,有A·B=|A|cos(a)|B|,这里设A为投影向量,则B为被投影向量,则|A|cos(a)为投影矢量长度,|B|为被投影向量的模。再进一步,如果我们假设B的模为1,即让|B|=1,那么就变成了:A·B=|A|cos(a)
简而言之,如果设向量B的模为1,则A与B的内积值等于A向B所在直线投影的矢量长度!
继续说下面这幅图,图中基由(1,0),(0,1)转换为(1/√2,1/√2),(-1/√2,1/√2)
注