任务详解:
这节课主要介绍了SVD分解的应用,多元线性回归等知识点。
掌握目标:
1、掌握svd分解的应用以及意义
2、掌握多元线性回归,以及矩阵表达形式,以及样本个数和维数不同情况下解的情况
Svd分解的应用
先回顾SVD,就是在矩阵A左右两边分别乘以
UH和
V,得到一个对称矩阵,最后通过证明得到了下面的形式:
A=U[Σ000]VT(1)
上式中各自的shape如下:
A:m×n
U:m×m
[Σ000]:m×n
VT:n×n
如果矩阵A的秩R(A)=r,则
Σ是r×r对角阵,对角线上的元素就是
ATA的不为0的特征值,把U写成列向量的形式
[u1,u2,...,ur,ur+1,...,um],每个
ui都是m维列向量,同样的,V可以写为:
[v1,v2,...,vr,vr+1,...,vn],转置后变成:
⎣⎢⎢⎢⎢⎢⎢⎡v1T⋮vrT⋮vnT⎦⎥⎥⎥⎥⎥⎥⎤。
因此,等式(1)可以写为:
A=[u1,u2,...,ur,ur+1,...,um]⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡σ10⋮0σ20⋮⋯0⋱0⋯σr00⋱000⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤m×n⎣⎢⎢⎢⎢⎢⎢⎡v1T⋮vrT⋮vnT⎦⎥⎥⎥⎥⎥⎥⎤
展开,展开过程中可以注意到U的m-r和V的转置的n-r项都是没什么用的,上式等于。
A=σ1u1v1T+σ2u2v2T+...+σrurvrT(2)
等式右边里面的每一项,
ui是m×1的,
viT是1×n的,
uiviT就是m×n的,和A的维度刚好对上。
这里面的
σi之间是有大小关系的,根据上节课的定理:
---------------------------------------------------------割你没商量1------------------------------------------------------
A∈Crm×n(r>0),
AHA的特征值为
λ1≥λ2≥…≥λr>λr+1=…=λn=0则称
σi=λi
(i=1,2,…,n)为A的奇异值;当A为零矩阵时,它的奇异值都是0。
---------------------------------------------------------割你没商量1------------------------------------------------------
因此有:
σ1≥σ2≥…≥σr>0(3)
接下来根据这个性质来看看这个用在具体应用上有什么好处
1.图像压缩
上面等式(2)左边的A是m×n的,如果看成一个图像,每个图像点需要一个float(4个字节来存储),那么在存储这个图像的时候,需要m×n×4个字节。
再看等式(2)右边的
uiviT虽然也是m×n的,但是
ui是m×1的,只有m个数,
viT是1×n的,只有n个数,所以存储任意一个
uiviT只需要(m+n)×4个字节。
由于式子(3),所以整个等式(2)右边有:
σ1u1v1T>σ2u2v2T>...>σrurvrT
所以,A可以用
σiuiviT的前面k项(
k≪r)来近似的表示,则图片存储需要的空间为:
(m+n+1)×4×k
其中1代表
σ占用的空间,可以看到
(m+n+1)×4×k≪4mn
也就达到了图像压缩的目的。
uiviT的模长是1,所以采用这种方式存储图像得到的损失为:
Err(k)=1−∑i=1rσi2∑i=1kσi2
k越大,误差越小。
传统网络图片传输与现代传输的原理
传统网络传输都是按行依次传输,所以图像显示过程如下:
压缩传输则会是传输
σiuiviT,所以图片会从模糊到清晰的显示过程。
2.矩阵乘法加速
假设A的shape是200×100的,A用SVD分解变成:
A=σ1u1v1T+σ2u2v2T+...+σrurvrT
取前25项近似表示A:
A≈σ1u1v1T+σ2u2v2T+...+σ25u25v25T
=[u1,u2,...,ur,u25]⎣⎢⎢⎢⎢⎡σ10⋮0σ20⋮⋯0⋱0⋯σ25⎦⎥⎥⎥⎥⎤m×n⎣⎢⎡v1T⋮v25T⎦⎥⎤
=U200×25Λ25×25V25×100
把前面两个看成一项,也就是近似后A相当于
M200×25N25×100
现在先来看原矩阵A与一个100×1的列向量x做乘法,Ax计算次数为200×100=2w次;
如果计算MNx,Nx计算次数为25×100,计算后shape为25×1,M再和25×1的列向量乘法运算,计算次数为25×200,所以整个计算次数为25×200+25×100=7500次。
多元线性回归
现在又N个样本
xi,每个
xi都是n维的。
x1,x2,...,xN,xi∈ℜn
每个
xi都对应于一个
yi
y1,y2,...,yN,yi∈ℜ1
下面的式子中
x11代表第一个样本的第一个分量,
a1对应其系数,以此类推:
y1=x11a1+x12a2+⋯+x1nan(+b)
y2=x21a1+x22a2+⋯+x2nan(+b)
⋮
yN=xN1a1+xN2a2+⋯+xNNnan(+b)
关于bias的b可以看作
x0b,从而简化到x的系数中,这里就先认为已经包含了bias,先省略b。
上面的式子中我们想要找到一组参数
ai使得下面的等式(1)成立。
⎣⎢⎢⎢⎡x11x21⋮xN1x12x22⋮xN2⋯⋯⋱⋯x1nx2n⋮xNn⎦⎥⎥⎥⎤⎣⎢⎢⎢⎡a1a2⋮an⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡y1y2⋮yN⎦⎥⎥⎥⎤(4)
用大X表示x矩阵,上面的等式(4),可以写为:
XN×nan×1=YN×1(5)
也就是要解这个线性方程,得到
an×1,
当x的空间维度和样本个数一样的时候,也就是
N=n(X是方阵),且
XN×n可逆时,等式(5)两边同时乘以X的逆矩阵:
a=X−1Y
但是这个是理想情况,一般情况下
N=n,也就是理论上等式(5)不可能成立,这个时候退而求其次,想办法要使得等式(5)左右两边尽可能的接近(二者相减的模长最小):
min∣∣Xa−Y∣∣2=J
要求J的最小值就是要对J求导。。。注意:这里a才是变量,其他看成是参数:
J=∣∣Xa−Y∣∣2=(Xa−Y)T(Xa−Y)=(aTXT−YT)(Xa−Y)
J=aTXTXa−aTXTY−YTXa+YTY
---------------------------------------------------------割你没商量2------------------------------------------------------
这里,如果a和b都是向量,那么有
aTb=bTa,上面的式子中的第二项:Y是向量,X是矩阵,
XT也是矩阵,
XTY还是一个向量,所以:
aTxTY=(xTY)Ta,上面的式子变为:
---------------------------------------------------------割你没商量2------------------------------------------------------
J=aTXTXa−(XTY)Ta−YTXa+YTY
J=aTXTXa−2YTXa+∣∣Y∣∣2
接下来对a求偏导:
---------------------------------------------------------割你没商量3------------------------------------------------------
f(x)=xTAx−−−−−−>∂x∂f(x)=(A+AT)x
所以:
aTxTxa中a相当于x,
xTx相当于A
f(x)=ATx−−−−−−>∂x∂f(x)=A
---------------------------------------------------------割你没商量3------------------------------------------------------
由上面的的求导公式可得:
∂a∂J=(2XTX)a−2(YTX)T(6)
令公式(6)=0:
XTXa−XTY=0
XTXa=XTY(7)
---------------------------------------------------------割你没商量4------------------------------------------------------
XTX不一定可逆,因为它是半正定的(下面用试探矩阵u去证明一下):
uTXTXu=(Xu)T(Xu)=∣∣Xu∣∣2≥0
如果是完全大于0就是正定了。由于
XTX不一定可逆,下面要分两种情况进行讨论
---------------------------------------------------------割你没商量4------------------------------------------------------
情况1,N>n,样本数>维度(参数个数)
如:
N=5,n=3,(XTX)3×3一般是可逆的。
这里
XTX的维度是3×3,因为
X的维度是
N×n(公式5里面有标注),所以
XT的维度是
n×N,
XTX的维度就是
n×n。
这里为什么
(XTX)3×3一般是可逆的呢?
根据上节课SVD分解证明的先导推论里面有
rank(AHA)=rankA
所以这里有
rank(XTX)=rank(X),由于N>n,一般来说这里
rank(X)=n,即
rank(X)=3(除非在三维空间中5个样本点任意三个样本点都是线性相关的,才会有
rank(X)=2)
所以
(XTX)一般是可逆的,因此把等式(7)两边同时乘上
(XTX)的逆:、
(XTX)TXTXa=(XTX)TXTY
a=(XTX)TXTY
到这里就把a解出来了,也吧a的右边的表达式称为X的伪逆矩阵。
情况2,N<n,样本数<维度(参数个数)
如:
N=3,n=5,(XTX)5×5不可逆。
因为之前有结论:
R(AB)<<R(A)orR(B),所以
rank(XTX)≤rank(X)≤3
所以
(XTX)不可逆
这个情况参数比样本数要多,也就是出现了过拟合的现象。为了解决这个现象,我们通常是要采用正则化来解决,也就是:
J=∣∣Xa−Y∣∣2+λ∣∣a∣∣2
求导的结果也就变成:
∂a∂J=(2XTX)a−2(YTX)T+2λa(8)
令公式(8)等于0,并化简:
(XTX)a−XTY+λa
(XTX+λI)a=XTY
---------------------------------------------------------割你没商量5------------------------------------------------------
(XTX+λI)一定可逆,下面用试探矩阵u(试探矩阵都是不等于0的)去证明一下:
uT(XTX+λI)u=uTXTXu+uTλIu=(Xu)TXu+λuTu(9)
上面公式(9)中:
(Xu)TXu=∣∣Xu∣∣2≥0,
λ>0,
uTu=∣∣u∣∣2>0,所以公式(9)整体恒大于0,所以公式(9)是正定的,其对应的特征值
λi>0,且一定可逆。
---------------------------------------------------------割你没商量5------------------------------------------------------
由于
(XTX+λI)一定可逆,解出a
a=(XTX+λI)TXTY
这里,我们通常也把
J=∣∣Xa−Y∣∣2+λ∣∣a∣∣2的形式称为:岭回归。
为什么叫岭回归呢?因为这个东西的形式就是在对角线上加了一项
λ,就好像中间对角线好比一道山岭,通过加上
λ使其更加的高耸。
还有一种解释方案就是利用秩的概念来解出a。