奇异值分解与最小二乘问题

  很多线性回归器的损失函数为均方误差:

loss=Xwy22

  求解模型参数,需要最小化损失函数:
minXwy22

XRmn,wRn,yRm

  该类问题分为三种情况:
  1.m=n且X为非奇异矩阵,这时 Xw=y 有唯一解: w=X1y
  2.m>n,即约束个数大于方程个数,此时 Xw=y 无解,该类问题称为超定问题。
  3.m<n,即约束个数小于方程个数,此时 Xw=y 有无穷解该类问题称为欠定问题

  在机器学习中,绝大部分问题都是样本数大于特征数,对应于超定问题,并且一般情况下为非一致方程,此时方程无解(一致方程的超定问题是有解的,通过求解广义逆矩阵),因此转向求解最小二乘问题,即最小化 Xwy22 ,将其转化为矩阵形式,求导,另导数为0,可以解得:

w=(XTX)1XTy

推导见: 线性最小二乘求解
  这种求解方式有几个问题:
1. 涉及到n*n维矩阵的求逆运算,实际使用中计算量巨大。
2. XTX 可能不可逆,这个可以用 l2正则或者求解 伪逆的形式解决。

SVD奇异值分解

  不同于特征值分解使用的情景受限,对于任意一个矩阵 ARmn ,都可以分解为:

svd(A)=[U][S][VT]

  其中: URmmSRmnVRnn
   U 的列向量为A的左奇异向量,也即 AAT 的特征向量; VT 的列向量为 A 的右奇异向量,也即ATA的特征向量, S [Σ0] Σ 为对角矩阵,其值为矩阵 A 的奇异值σ,即 AAT 的特征值 λ=σ2 U VT都是正交矩阵。
  证明:
AAT=USVT(USVT)T=US(VTV)STUT=U(SST)UT
(AAT)U=Σ¯U
ATA

  再来看最小二乘问题:
Xwy22=U[Σ0]VTwb=[Σ0]VTxUy

   U 可以拆解为[Un,Umn],因此上式:
=[Σ0]VTw[Un,Umn]Ty
=[ΣVTwUTnUTmny]
=ΣVTwUTny+UTmnyUTmny

  也即当 ΣVTwUTny=0 时上式取等号,此时 Xwy22 取最小值,解得:
w=(ΣVT)1UTny=VΣ1UTny

  按照SVD的方式必有解,这里 Σ 是对角矩阵,求逆很简单, U V都是正交矩阵,因此转置与其逆矩阵相等。
  通常情况下 Σ 是按照奇异值由大到小排列的,且衰减的特别快,一般前10%的奇异值之和就占到了总和的95%以上,因此我们可以将小于某个阈值的的奇异值及其对应的左右奇异向量全部舍弃掉,进而进一步的进行矩阵规模的缩减,在sklearn中就是采用的这种方式,只不过在求解 Σ 的逆矩阵时,阈值=1e-15,多用了一个alpha参数, Σ1=ΣΣ+alpha


  特别地,对于齐次方程的超定问题:

minXw

  我们有:
Xw=wT(XTX)w

   假设 w XTX的特征值,约束 w =1,上式化简为:
minXw=minλ2w=minλ2

  因此我们需要求解的 w 即是XTX最小特征值对应的特征向量,对X进行svd,根据前面的理论,我们只需找到 S 中最小的特征值对应于V的特征向量即是 w <script type="math/tex" id="MathJax-Element-57">w</script>的值。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值