向量矩阵可视化的 demo 可以参考 【python】Linear Algebra
对矩阵进行线性表示,类比泰勒公式!
1 特征分解(矩阵的基础概念)
1.1 相似矩阵
-
定义
设
A,B 都是
n 阶矩阵,若存在可逆矩阵
P,使得
P−1AP=B,则称
A 相似于
B,记
A~
B. 若
A~
Λ,其中
Λ 是对角矩阵,则称
A 可相似对角化,
Λ 是
A 的相似标准型。
-
相似矩阵的性质和矩阵可相似对角化的充要条件,这里不列举了!
1.2 正交矩阵
ATA=AAT=I 的矩阵称为正交阵,其中
I 为单位矩阵,也即
AT=A−1
1.3 实对称矩阵
实对称矩阵,就是矩阵每个元素
aij 都是实数,且
A=AT
- 定理1:实对称矩阵的特征值全部是实数
- 定理2:实对称矩阵的属于不同特征值对应的特征向量相互正交
- 定理3:实对称矩阵必相似于对角阵(非对角元素都是 0 的矩阵),即存在可逆矩阵
P,使得
P−1AP=Λ,且存在正交阵
Q,使得
Q−1AQ=QTAQ=Λ(把 Q 甩过去就是矩阵的特征分解了)
A=(QT)−1ΛQ−1=(QT)TΛQT=QΛQT
1.4 特征值、特征向量
定义
A 是 n 阶方阵,如果对于数
λ,存在非零向量
v,使得
Av=λv,则称
λ 是
A 的特征值,
v 是
A 对应于
λ 的特征向量!
我们来升级一下
Av=λv,变成如下形式(假设 A 有 n 个线性无关的特征向量):
AV=ΛV
其中,
V=[v1,v2,...,vn] 为特征向量(列向量)构成的矩阵。
Λ=[λ1,λ2,...,λn] 为特征值构成的对角矩阵。
再变形一下:
A=VΛV−1
如果
A 是实对称矩阵,根据 1.3 中的定理2:实对称矩阵的属于不同特征值对应的特征向量相互正交,我们进一步变形下公式:
A=QΛQT
其中
Q 是
A 的特征向量组成的正交矩阵!
1.5 二次型
n 个变量的一个二次齐次多项式
f(x1,x2,...,xn)=i=1∑nj=1∑naijxixj
称为 n 个变量的二次型,系数均为实数时,称为 n 元实二次型。矩阵表示为
xTAx,
A 是对称的矩阵,
x=[x1,x2,...,xn]T。
[x1,x2,...,xn]⎣⎢⎢⎡a11a21...an1a12a22...an2............a1na2n...ann⎦⎥⎥⎤⎣⎢⎢⎡x1x2...xn⎦⎥⎥⎤
1.6 正定二次型和正定矩阵
若对于任意的非零向量
x=[x1,x2,...,xn]T,恒有
f(x1,x2,...,xn)=xTAx>0,则称二次型
f 为正定二次型,对应矩阵为正定矩阵。
f(x1,x2,...,xn)=xTAx 正定,有许多等价的表示,其中一条就是 A 的全部特征值
λi>0
1.7 特征分解
本质:原矩阵(方阵)分解成了许多方阵的线性组合(类比泰勒公式)!
对称矩阵一定能特征分解(特别是对称正定矩阵,能保证
λi 都是正数)
A=QΛQT
设
Q 为
[v1,v2,...,vn],其中
vi∈Rn,表示
A 的特征向量!
Λ=⎝⎜⎜⎛λ1λ2...λn⎠⎟⎟⎞,其中
λi 为特征向量
vi 对应的特征值。
则
A=[v1,v2,...,vn]⎝⎜⎜⎛λ1λ2...λn⎠⎟⎟⎞⎝⎜⎜⎛v1Tv2T...vnT⎠⎟⎟⎞=λ1v1v1T+λ2v2v2T+...+λnvnvnT
分解得到的这些方阵有什么特点呢?是由一个列向量(
n×1)和一个行向量(
1×n)相乘得到的,原来的
n×n 矩阵 A 参数量
n2,特征分解后,参数量最多可以达到
(n×1+1)×n=n2+n(1 表示的是
λi,哈哈,参数量变多了)
但是我们可以选取特征值
λi 较大的方阵,表示对最后的结果贡献越高!这样一来,参数量大大的减少了(最少
n×1+1,仅仅保留一项) ,达到了压缩的目的!
2 SVD 分解
2.1 推导
SVD,singular value decomposition,奇异值分解
r 是矩阵 A 的秩
图片来源:http://www.imooc.com/article/267351
本质:原矩阵(不限于方阵)分解成了许多矩阵的线性组合(类比泰勒公式)!
这里比矩阵的特征分解更进一步,不再要求是方阵了,更有普适性了。具体转化过程如下:
虽然
Am×n 不是方阵 ,但是
AAm×mT 和
ATAn×n 组成 CP 后,就是方阵了。我们假设:
(AAT)m×m=UΛ2UT
(ATA)n×n=VΛ2VT
Λm×n2 是
AAT 和
ATA 的特征值(
AB 和
BA 的特征值是一样的,非零)
Um×m=(u1,u2,...,um),
U 为正交矩阵
Vn×n=(v1,v2,...,vn),
V 为正交矩阵
可以得到
A 的形式如下
Am×n=UΛVT=λ121u1v1T+λ221u2v2T+...
加法的最后一项根据
m,n 中较小的一项决定
u1 是
m×1,
v1 是
n×1,图像压缩存储时最少需要
m+n+1
图片来自于 deepshare.net
1)
Am×n 为什么是
UΛVT 这种形式呢?
反推一下,假设已知
A=UΛVT
转置一下
AT=VΛTUT
组合一下
AAT=UΛVTVΛTUT=UΛΛTUT=UΛ2UT
ATA=VΛTUTUΛVT=VΛTΛVT=VΛ2VT
OK,形式没错
2)U 和 V 的关系是什么
A=UΛVT
左右同时乘以
V
AV=UΛVTV=UΛ
所以
U=ΛAV
其中,
Λm×n2 是由
λ1,
λ2 …构成的对角矩阵,细节一点可以写成如下形式:
ui=λi
Avi
3)
Am×n 的具体推导过程
对于矩阵
ATAn×n,有
ATAvi=λivi,设
λi 为
ATA 的特征值,
vi 为对应的特征向量。前面我们令
U 和
V 为正交矩阵,所以
viTvj=0。
进一步分析:
(Avi)TAvj=viTATAvj=viTλjvj=λjviTvj=0
所以
Avi 与
Avj 也是正交的,同理
(Avi)TAvi 可以进行如下化简:
(Avi)TAvi=viTATAvi=viTλivi=λiviTvi=λi
也即
∣Avi∣2=λi,
∣Avi∣=λi
因此
∣Avi∣Avi=λi
1Avi
前面我们已经知道
ui=λi
1Avi
因此
Avi=∣Avi∣ui=λi
ui
写成矩阵的形式,如下所示:
AV=A(v1,v2,...,vn)=(Av1,Av2,...,Avn)=(λ1
u1,λ2
u2,...,λn
un)=ΛU=UΛ
因此
A=UΛV−1=UΛVT
举个小例子:
比如,打开图片,开始先模糊,后面越来越清晰,本质就是,先传重要的信息(比如 SVD 中特征值比较大的分量),再补细节信息!
2.2 计算一个矩阵的 SVD 形式
A=⎝⎛011110⎠⎞
1)计算
AA3×3T 的特征值和特征向量
AA3×3T=⎝⎛011110⎠⎞(011110)=⎝⎛110121011⎠⎞
∣λE−AAT∣=∣∣∣∣∣∣λ−1−10−1λ−2−10−1λ−1∣∣∣∣∣∣=λ(λ−3)(λ−1)
所以
λ1=3,
λ2=1,
λ3=0
i) 当
λ=3 时
(λE−AAT)X=0
矩阵为
⎝⎛2−10−11−10−12⎠⎞⇒⎝⎛100010−1−20⎠⎞
对应的单位化的特征向量
u1 为
(6
1,6
2,6
1)T
ii) 当
λ=1 时
(λE−AAT)X=0
矩阵为
⎝⎛0−10−1−1−10−10⎠⎞⇒⎝⎛100010100⎠⎞
对应的单位化的特征向量
u2 为
(2
1,0,−2
1)T
iii) 当
λ=0 时
(λE−AAT)X=0
矩阵为
⎝⎛−1−10−1−2−10−1−1⎠⎞⇒⎝⎛100010−110⎠⎞
对应的单位化的特征向量
u3 为
(3
1,−3
1,3
1)T
综上所述:
AAT=UΛ2UT=⎝⎜⎛6
16
26
12
10−2
13
1−3
13
1⎠⎟⎞⎝⎛300010000⎠⎞⎝⎜⎛6
12
13
16
20−3
16
1−2
13
1⎠⎟⎞
2)计算
ATA2×2 的特征值和特征向量
ATA2×2=(011110)⎝⎛011110⎠⎞=(2112)
∣λE−ATA∣=∣∣∣∣λ−2−1−1λ−2∣∣∣∣=(λ−3)(λ−1)
所以
λ1=3,
λ2=1
i) 当
λ=3 时
(λE−ATA)X=0
矩阵为
(1−1−11)⇒(10−10)
对应的单位化的特征向量
v1 为
(2
1,2
1)T
ii) 当
λ=1 时
(λE−ATA)X=0
矩阵为
(−1−1−1−1)⇒(1010)
对应的单位化的特征向量
v2 为
(2
1,−2
1)T
PS:这里有点小疑惑,如果
v2 按照上面的格式写,最终通过
U 和
V 计算
A 的时候第一列和第二列位置互换了,需要写成
v2 为
(−2
1,2
1)T,这两种结果在计算特征值的时候是等价的!
感觉应该需要用
ui 和
vi 的关系约束下:
前面我们已知
ui=λi
1Avi
这里带进去看看
u2=λ2
1Av2
⎝⎛2
10−2
1⎠⎞=1
1⎝⎛011110⎠⎞(−2
12
1)
确实
v2 为
(−2
1,2
1)T 而不是
(2
1,−2
1)T
回归正题,综上所述:
ATA=VΛ2VT=(2
12
1−2
12
1)(3001)(2
1−2
12
12
1)
所以
A=UΛVT=⎝⎜⎛6
16
26
12
10−2
13
1−3
13
1⎠⎟⎞⎝⎛3
00010⎠⎞(2
1−2
12
12
1)=⎝⎛011110⎠⎞
3 逆矩阵(以最小二乘为例)
定义:
设
A 是
n 阶矩阵,如果存在
n 阶矩阵
B 使得
AB=E(单位矩阵)
成立,则称
A 是可逆矩阵,
B 是
A 的逆矩阵,记成
A−1=B.
可逆矩阵有两个非常重要的性质:
-
∣A∤=0,或者秩
r(A)=n,或
A 的列(行)向量无关;
- 矩阵
A 的特征值全不为 0
下面以最小二乘为例,分析下逆矩阵和伪逆矩阵,假设有
N 个样本,每个样本
n 维
x1,x2,...,xN,xi∈Rn
N 个标签,每个标签
1 维
y1,y2,...,yN,yi∈R1
我们需要求解的就是
x→y 的关系,形象化一点
⎩⎪⎪⎨⎪⎪⎧y1=x11a1+x12a2+...+x1nany2=x21a1+x22a2+...+x2nan...yN=xN1a1+xN2a2+...+xNnan
其中
xij 表示第
i 个样本的第
j 维!
写成矩阵的形式:
⎝⎜⎜⎛x11x21...xN1x12x22...xN2............x1nx2n...xNn⎠⎟⎟⎞N×n⎝⎜⎜⎛a1a2...an⎠⎟⎟⎞n×1=⎝⎜⎜⎛y1y2...yN⎠⎟⎟⎞N×1
也即
XN×nan×1=YN×1
问题的关键就是求出来
an×1 了!我们已知
X 和
Y,所以,当
N=n 且
XN×n 可逆时:
a=X−1Y
4 伪逆矩阵(以最小二乘为例)
一般情况下,样本总个数
N 和每个样本的维数
n 是不相等的,这个时候
X 显然不可逆(连方阵都不是),
a=X−1Y 的求法行不通!
怎么破?
我们可以用
Xa 来逼近
Y,也即最小化
J
J=∣∣Xa−Y∣∣2
未知数是
a,对
a 求偏导,令导数为零求极值
∂a∂J=2XT(Xa−Y)=0
化简一下:
XTXa=XTY
问题就转换为了
XTX 是否可逆!
1)如果
N>n
(XTX)n×n 一般是可逆的,此时:
a=(XTX)−1XTY
如果
X 可逆的话,把可逆符号作用在括号里
a=X−1(XT)−1XTY=X−1Y
和上一节的结论一致,所以
a=(XTX)−1XTY 叫做伪逆矩阵的形式!是一种更普适性的解法。
通过
a=X−1(XT)−1XTY=X−1Y 给出解的系统方程被称为正规方程(normal equation).
2)如果
N<n
样本的个数小于样本的维度,也就是样本的表示太复杂了,过拟合的节奏!
(XTX)N×N
我们已知秩的如下性质:
r(AB)≤min(r(A),r(B))
所以
r(XTX)≤r(X)≤n
所以
r(XTX)̸=N
根据逆矩阵的性质可知,
XTX 不可逆,也即伪逆
a=X−1(XT)−1XTY 的路也行不通了,怎么破!
此时我们要用到最小范数解,也就是我们熟悉的加正则项(regularization)
5 最小范数解(以最小二乘为例)
此时
J 引入了正则项
J=∣∣Xa−Y∣∣2+λ∣∣a∣∣2
对
a 计算偏导,令其为 0,来求极值:
∂a∂J=2XT(Xa−Y)+2λa=0
化简一下(因为
XTX 是方阵,所以引入了单位矩阵
I):
(XTX+λI)a=XTY
问题聚焦到
XTX+λI 是否可逆!
我们已知
XTX 是实对称矩阵,所以
XTX 一定可以相似对角化(特征值,可以参考实对称矩阵小节中的定理3),转换一下形式,可以写成:
XTX=Q⎝⎛λ1...λn⎠⎞QT
行列式为特征值的乘积
∣XTX∣=λ1λ2...λn
给定一个非零向量
m,把矩阵
XTX 写成二次型的形式:
mTXTXm=(Xm)T(Xm)≥0→λi≥0
只能保证是半正定,
∣XTX∣ 还是有可能为0,也即无法保证
XTX 可逆(前面已经证明了
XTX 不可逆,这里仅从表达式入手),引入正则项以后情况就不一样了。
XTX+λI 同样也是实对称矩阵,因为只是在对角线上有改动,同样的可以写成
XTX+λI=Q⎝⎛λ1...λn⎠⎞QT
给定一个非零向量
m,把矩阵
XTX+λI 写成二次型的形式:
mT(XTX+λI)m=(Xm)T(Xm)+λmTm>0→λi>0
这么一来,
XTX+λI 就是正定矩阵了,就能保证对应的特征值全部大于0,也即
∣XTX+λI∣=λ1λ2...λn>0,结合矩阵可逆的条件,可以得出,矩阵
XTX+λI 是可逆矩阵!
所以
a 可以表示为:
a=(XTX+λI)−1XTY
补充(参考 https://blog.csdn.net/asd136912/article/details/79146151)
综合 3,4,5 小节,已知
XN×nan×1=YN×1
可以得出:
a=⎩⎪⎨⎪⎧X−1Y,(XTX)−1XTY,(XTX+λI)−1XTY,如果N=n,且X可逆如果N>n(伪逆)如果N<n(最小范数解)