迭代求解最优化问题——最小二乘问题、高斯牛顿法

本文详细介绍了最小二乘问题的概念及解决方法,包括线性和非线性情况,并深入探讨了高斯牛顿法的原理及其在非线性优化中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最小二乘问题

最小二乘问题是应用最广泛的优化问题,它的一般形式如下:
min⁡x∣∣r(x)∣∣2\min_x ||r(x)||^2xminr(x)2
该问题的损失函数为S(x)=∣∣r(x)∣∣2S(x)=||r(x)||^2S(x)=r(x)2。其中r(x)为残差函数,一般表示预测值与实际值的差别。一个最简单的最小二乘问题就是线性回归问题,对于这个问题的求解可以用上一节所说的梯度下降法,这也是机器学习领域常用的一种做法。

线性最小二乘问题

线性最小二乘问题是最简单的最小二乘问题,它的一般形式如下:
min⁡x∣∣Ax−b∣∣2\min_x ||Ax-b||^2xminAxb2
线性最小二乘问题的求解很容易,
h(x)=∣∣Ax−b∣∣2=(Ax−b)T(Ax−b)h(x) = ||Ax-b||^2 = (Ax-b)^T(Ax-b)h(x)=Axb2=(Axb)T(Axb)
对它求导并且令导数为零得到ATAx−ATb=0A^TAx-A^Tb=0ATAxATb=0,这称为最小二乘问题的标准方程(normal equation)。

解得x=(ATA)−1ATbx = (A^TA)^{-1}A^Tbx=(ATA)1ATb
熟悉线性回归模型的话就可以发现,这就是线性回归模型参数的解析解。

非线性最小二乘问题

上面的问题中有r(x)=Ax−br(x) = Ax-br(x)=Axb。r(x)是一个线性函数。对它求导得到Jacobian矩阵Jr=AJ_r=AJr=A。于是有x=(JrTJr)−1JrTbx = (J_r^TJ_r)^{-1}J_r^Tbx=(JrTJr)1JrTb

而许多最小二乘问题的残差函数并不是线性的,此类问题称为非线性优化问题。

对于非线性优化的问题当然可以结合具体的残差函数进行分析,但是对于一般的函数,我们也可以通过将非线性函数进行线性化的方式进行迭代求解。具体来说,假设在x的某个领域可以对函数进行线性逼近,则由泰勒展开
r(x0+Δ)=r(x0)+JrΔr(x_0+\Delta) = r(x_0)+J_r\Deltar(x0+Δ)=r(x0)+JrΔ

求解min⁡Δ∣∣r(x0+Δ)∣∣2=min⁡Δ∣∣r(x0)+JrΔ∣∣2\min_\Delta||r(x_0+\Delta)||^2=\min_\Delta||r(x_0)+J_r\Delta||^2Δminr(x0+Δ)2=Δminr(x0)+JrΔ2

由上面线性最小二乘问题的推导可以得出此问题的解为Δ=−(JrTJr)−1JrTr(x0)\Delta = -(J_r^TJ_r)^{-1}J_r^Tr(x_0)Δ=(JrTJr)1JrTr(x0)

于是通过不断迭代x(k+1)=x(k)+αΔx^{(k+1)}=x^{(k)}+\alpha\Deltax(k+1)=x(k)+αΔ,我们可以对非线性最小二乘问题的解进行逼近

高斯牛顿法

上述使用迭代求解非线性最小二乘问题的方法称为高斯牛顿法。它是牛顿法求解非线性最小二乘问题时的一个特例。
事实上,对损失函数:
S(β)=∣∣r(β)∣∣2S(\beta)=||r(\beta)||^2S(β)=r(β)2
使用牛顿法有
β(s+1)=β(s)−H−1g\beta^{(s+1)}=\beta^{(s)}-H^{-1}gβ(s+1)=β(s)H1g
H为S对β\betaβ的二次导,g为S对β\betaβ的梯度。

显然g=2JrTrg = 2J_r^Trg=2JrTr, H=2(JrTJr+HrTr)H=2(J_r^TJ_r+H_r^T r)H=2(JrTJr+HrTr),其中JrJ_rJr为r对β\betaβ的Jacobian矩阵,HrH_rHr为r对β\betaβ的Hessian矩阵。

在此我们假设在非线性最小二乘问题中残差函数的二次偏导的作用是不明显的,于是我们可以将这一项省略,于是得到

H≈2JrTJrH\approx 2J_r^TJ_rH2JrTJr

带入牛顿法的计算公式,我们有
β(s+1)=β(s)+αΔ,Δ=−(JrTJr)−1JrTr(β(s))\beta^{(s+1)}=\beta^{(s)}+\alpha\Delta,\Delta=-(J_r^TJ_r)^{-1}J_r^Tr(\beta^{(s)})β(s+1)=β(s)+αΔ,Δ=(JrTJr)1JrTr(β(s))

由此,我们就从另一个角度推导出了高斯牛顿法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值