机器学习补数学
线性代数
特征值与矩阵分解
特征值与特征向量
- 矩阵对向量可以做拉伸也可以旋转
图一的【x,y】向量可以看为一个小方块的单位向量,与对角矩阵相乘之后x轴被拉伸。
图2的M矩阵在对角矩阵的基础上新增了一角,可以实现旋转的操作。
-
特征值和特征向量描述了什么?
可以把方向当做是特征向量,在这个方向上用了多大力量就是特征值。
-
特征向量的数学定义
对于给定的矩阵A,寻找一个常数λ和一个非零向量x,使得向量x被矩阵A作用后所得的向量Ax与原向量x平行,并且满足Ax = λx。
SVD
通俗来讲,若是一个矩阵维度太大,但又比较稀疏,可以将其分解为两个小维度矩阵相乘。
基变换
基类似于基底,再通俗一些就像坐标轴上指定每个点位置的x和y,这两个可以称为一组基。
基变换:数据与一个基做内积运算,结果就作为第一个新的坐标分量,与第二个基做内积运算,结果就是第二个新坐标的分量。
特征值分解
A = U Λ U − 1 A = UΛU^{-1} A=UΛU−1
上式把矩阵A分解为特征向量乘对角阵乘特征向量的逆。
当然前提是N*N得方阵且有N个线性无关的特征向量时就可以。
特征值中比较大的就可以选为这个矩阵的代表。
使用SVD
如果矩阵形状改变,可以用如下方式
但若是M和N都比较大,这种方式却会增加计算量。联系特征值分解,可以取其中较大的特征值的部分来进行操作分解。
按照特征值大小进行筛选,一般取10%(甚至更少)的特征值的和就能占到了总体的99%,假设取前k个。
SVD推导
前提:对于一个二维矩阵M可以找到一组标准正交基v1和v2使得Mv1和Mv2是正交的。
使用另一组正交基u1和u2来表示Mv1和Mv2的方向
其长度分别为 ∣ ∣ M v 1 ∣ ∣ = σ 1 ||Mv1|| =σ_1 ∣∣Mv1∣∣=σ1, ∣ ∣ M v 2 ∣ ∣ = σ 2 ||Mv2|| =σ_2 ∣∣Mv2∣∣=σ2,可得 M v 1 = σ 1 u 1 Mv1 =σ_1u_1 Mv1=σ1u1, M v 2 = σ 2 u 2 Mv2 =σ_2u_2 Mv2=σ2u2。
那么若有一个向量X,其在这组基中的表示: X = ( v 1 ⋅ X ) v 1 + ( v 2 ⋅ X ) v 2 X=(v_1·X)v_1+(v_2·X)v_2 X=(v1⋅X)v1+(v2⋅X)v2,点积表示在这个方向上投影的长度,也可以转换为行向量乘列向量 v ⋅ x = v T x v·x=v^Tx v⋅x=v