【数学】梯度下降,牛顿法与拟牛顿法

 

梯度下降

将f(x)f(x)一阶泰勒展开:

f(x)=f(x0)+(x−x0)f′(x0)f(x)=f(x0)+(x−x0)f′(x0)

 

f(x)=f(x0)+Δxf′(x0)f(x)=f(x0)+Δxf′(x0)


如果当前处于x0x0节点,要使得前进同样的距离使得f(x)f(x)变的最小,则Δx=−δf′(x)Δx=−δf′(x)时

f(x)=f(x0)−δf′2(x0)f(x)=f(x0)−δf′2(x0)


新的f(x)f(x)能够取得下一步的最小值
这也是梯度下降算法为什么沿着梯度进行下降能够取得最小值的证明。
用梯度下降法,每次 xn=xn−1−δf′(x)xn=xn−1−δf′(x)
在多元函数中:

xn=xn−1−δ∇f(x)xn=xn−1−δ∇f(x)

 

牛顿法

将f(x)f(x)二阶泰勒展开:

f(x)=f(x0)+Δxf′(x0)+12Δx2f′′(x0)f(x)=f(x0)+Δxf′(x0)+12Δx2f″(x0)


因为要使得f(x)f(x)取得最小值,则f′(x)f′(x)在最小值点必为0,将上式两边同时求导得到【其实直接对f′(x)f′(x)进行一阶泰勒展开也可以】

f′(x)=f′(x0)+Δxf′′(x0)f′(x)=f′(x0)+Δxf″(x0)


取f′(x)=0f′(x)=0得到

f′(x0)+Δxf′′(x0)=0f′(x0)+Δxf″(x0)=0

 

Δx=−f′(x0)f′′(x0)Δx=−f′(x0)f″(x0)

 

所以用牛顿法,每次取得xn=xn−1−f′(x0)f′′(x0)xn=xn−1−f′(x0)f″(x0)
在多元函数中

xn=xn−1−(∇2f(x0))−1∇f(x0)xn=xn−1−(∇2f(x0))−1∇f(x0)


其中∇2f(x0)∇2f(x0)就是f(x0)f(x0)的海森矩阵【二阶梯度矩阵】

 

其实,牛顿法在数值分析里面,是用来求解f(x)=0f(x)=0 的解的问题的,相较于二分法求值的一阶收敛速度,牛顿法是一个二阶收敛速度。
用牛顿法求解f(x)=0f(x)=0 的问题的时候,只用一阶导数就好
不过在最优化问题中,需要求解的是最值点,所以找的是其f′(x)=0f′(x)=0的点,所以就用到了二阶导数。

拟牛顿法

拟牛顿法直接看下面参考文献吧
大体思路上来说用牛顿法需要计算Hessian矩阵的逆矩阵,运算复杂度太高(O(n3)O(n3)级别的)。因此,很多牛顿算法的变形出现了,这类变形统称拟牛顿算法。
BFGS是用迭代法去近似计算海森矩阵。
而BFGS需要额外储存近似的那个海森矩阵,这时L-BFGS就出现了,它每次是计算出要计算近似海森矩阵就好。详细的看下面的参考文献吧。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值