1. 对矩阵基本的理解
一个m行n列的矩阵,符号标记为M,其可以被视为线性变换的便利表达法
比如,有一个n维向量x,则通过矩阵乘法Mx=y便可以得到一个m维向量y
矩阵M记录了一个从n维空间到m维空间的一个线性变换
为了方便,以下考虑的均是理想情况
2. 特征值与特征向量
M是一个n行n列的方阵
若有λ,v满足Mv=λv,其中,λ为数值,v为n维向量
则称v为矩阵M的特征向量,且对应一个特征值λ
特征向量经过线性变换后不改变方向,可以将特征向量视为这个线性变换的基
特征值可视为这个线性变换在这个基上的权重
令矩阵M有n个线性无关的特征向量v1,v2,...,vn,对应的特征值为λ1,λ2,...,λn
且满足 λ1≥λ2≥…≥λn
则有
M∗[v1v2…vn]=[λ1v1λ2v2…λnvn]=[v1v2…vn][λ10…00λ2…0…………000λn]
令 V=[v1v2…vn]Λ=[λ10…00λ2…0…………000λn]
则有
M=VΛV−1
上式称为特征值分解
3. 奇异值分解
特征值分解只适用于方阵,对于普通的m行n列矩阵,则使用奇异值分解
令u1,u2,...,um为矩阵M∗MT的特征向量, 称为左奇异向量
令v1,v2,...,vn为矩阵MT∗M的特征向量,称为右奇异向量
令 U=[u1u2…um]V=[v1v2…vn]
直接上定义 M=[u1u2…um][σ10…0σ2…………][vT1vT2…vTn]
为m行n列的对角矩阵,对角线上的值称为奇异值
设有n维向量,则其可表示为 x=a1v1+a2v2+…+anvn
接下来一步步模拟线性变换的过程,首先左乘VT
[vT1vT2…vTn]x=[a1vT1v1a2vT2v2…anvTnvn]
接着左乘Λ
如果m>n [σ10…0σ2…………][a1vT1v1a2vT2v2…anvTnvn]=[a1σ1vT1v1a2σ2vT2v2…anσnvTnvn…00]
则x=a1σ1vT1v1u1+a2σ2vT2v2u2+…+anσnvTnvnun
如果 m<n [σ10…0σ2…………][a1vT1v1a2vT2v2…anvTnvn]=[a1σ1vT1v1a2σ2vT2v2…amσmvTmvm]
由上式,可以这么理解线性变换
首先将n维向量使用矩阵的右奇异向量作为基表示,再将每个维度映射到一个左奇异向量基
奇异值则可以认为是输入与输出间进行的标量的膨胀控制。