线性最小二乘法

example:
f ( x ) = 1 2 ∥ A x − b ∥ 2 2 f(x) = \frac{1}{2}\parallel Ax - b \parallel_2^2 f(x)=21Axb22
最小化下式时x的值。首先计算:
▽ x f ( x ) = A T ( A x − b ) = A T A x − A T b \bigtriangledown_xf(x) = A^T(Ax - b) =A^TAx - A^Tb xf(x)=AT(Axb)=ATAxATb
可以选择采用小的步长,并按照上述梯度下降:
algorithm: 从任意点x开始,使用梯度下降关于x做小化 f ( x ) = 1 2 ∥ A x − b ∥ 2 2 f(x) = \frac{1}{2}\parallel Ax - b \parallel_2^2 f(x)=21Axb22的算法
将步长( ϵ \epsilon ϵ和容差( α \alpha α)设置为小的正数)。
w h i l e ∥ A T A x − A T b ∥ 2 > α d o : x ← x − ϵ ( A T A x − A T b ) e n d w h i l e while \parallel A^TAx-A^Tb\parallel_2>\alpha do: \\ x \leftarrow x - \epsilon(A^TAx-A^Tb) \\ end while whileATAxATb2>αdo:xxϵ(ATAxATb)endwhile
使用牛顿法解决这个问题
现在假设我们希望最小化同样的函数,但受 x T x < = 1 x^Tx <= 1 xTx<=1的约束,要做到这一点,我们引入Lagrangin
L ( x , λ ) = f ( x ) + λ ( x T x − 1 ) L(x, \lambda) = f(x) + \lambda(x^Tx - 1) L(x,λ)=f(x)+λ(xTx1)
将问题转化为:
m i n x m a x λ , λ > = 0 L ( x , λ ) min_x max_{\lambda, \lambda>=0}L(x, \lambda) minxmaxλ,λ>=0L(x,λ)
我们可以使用Moore-Penrose伪逆: x = A + b x = A^+b x=A+b找到无约束最小二乘问题的最小范数解关于x对Lagrangian微分,我们得到方程:
A T A x − A T b + 2 λ x = 0 A^TAx - A^Tb +2\lambda x= 0 ATAxATb+2λx=0
方程的解为:
x = ( A T A + 2 λ I ) − 1 A T b x = (A^TA + 2\lambda I)^{-1}A^Tb x=(ATA+2λI)1ATb
λ \lambda λ的选择必须使结果服从约束,我们可以关于 λ \lambda λ上升找到这个值,为了做到这一点,观察 ∂ L ( x , λ ) ∂ λ = x T x − 1 \frac{\partial L(x, \lambda)}{\partial \lambda} = x^Tx - 1 λL(x,λ)=xTx1
当x的范数超过1时,该导数是正的,所以为了跟导数上坡并相对 λ \lambda λ增加Largnian,我们需要增加 λ \lambda λ,因为 x T x x^Tx xTx的惩罚系数增加了,求解关于x的线性方程现在将得到具有较小范数的解,求解线性方程和调整 λ \lambda λ的过程一直持续x具有正确的范数,并且关于 λ \lambda λ的导数是0.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值