机器学习训练算法七(牛顿下降法)

14 篇文章 0 订阅
11 篇文章 2 订阅
本文介绍了牛顿下降法作为连续函数最优化的一种高效方法。该方法通过求解目标函数的一阶导数为零的点来逼近最小值,利用二阶泰勒展开和海森矩阵来迭代更新参数。在数学原理部分,详细阐述了从泰勒公式到求解优化迭代公式的推导过程。此外,还提供了Matlab程序链接,供读者实践和理解牛顿下降法的计算步骤。
摘要由CSDN通过智能技术生成

连续函数的最优化方法-牛顿下降法

1、介绍

通过求解目标函数的一阶导数为0时的参数,进而求出目标函数最小值时的参数。收敛速度很快。海森矩阵的逆在迭代过程中不断减小,可以起到逐步减小步长的效果

2、数学原理

目标函数 F ( X ) F(X) F(X) X = X k X=X_k X=Xk处的不含皮亚诺余项的二阶泰勒公式如下:
G ( Δ X k ) = d e f F ( X k + Δ X k ) ≈ F ( X k ) + J ( X k ) ⏟ F T Δ X k + 1 2 Δ X k T H ( X k ) ⏟ F Δ X k ( 公 式 24 ) G(\Delta X_k)\stackrel{\mathrm{def}}{=} F(X_k+\Delta X_k)\approx F(X_k)+ \underbrace{J(X_k)}_{F}{^T} \Delta X_k +\frac{1}{2} {\Delta X_k}^T \underbrace{H(X_k)}_{F} \Delta X_k \qquad (公式24) G(ΔXk)=defF(Xk+ΔXk)F(Xk)+F J(Xk)TΔXk21ΔXkTF H(Xk)ΔXk(24)
该表达式中 F ( X k + Δ X k ) F(X_k+\Delta X_k) F(Xk+ΔXk) F ( X k ) F(X_k) F(Xk)是一个常数, J ( X k ) ⏟ F T \underbrace{J(X_k)}_{F}{^T} F J(Xk)T H ( X k ) ⏟ F \underbrace{H(X_k)}_{F} F H(Xk)是一个常数矩阵, Δ X k \Delta X_k ΔXk是一个变量矩阵,即函数 G ( Δ X k ) G(\Delta X_k) G(ΔXk)是以 Δ X k \Delta X_k ΔXk为自变量的二次函数。综上所述,当函数 G ( Δ X k ) G(\Delta X_k) G(ΔXk)的一阶导数为0的时候,函数 G ( Δ X k ) G(\Delta X_k) G(ΔXk)取得极值,可推得:
G Δ X k ′ ( Δ X k ) = 0 ( 公 式 25 ) G'_{\Delta X_k}(\Delta X_k)=0 \qquad (公式25) GΔXk(ΔXk)=0(25)
由公式 24 和公式 25 可推得:
0 = J ( X k ) ⏟ F + H ( X k ) ⏟ F Δ X k ( 公 式 26 ) 0= \underbrace{J(X_k)}_{F} + \underbrace{H(X_k)}_{F} \Delta X_k \qquad (公式26) 0=F J(Xk)+F H(Xk)ΔXk(26)
由公式 26 可推得:
Δ X k = − H ( X k ) ⏟ F − 1 J ( X k ) ⏟ F ( 公 式 27 ) \Delta X_k=- {\underbrace{H(X_k)}_{F}}^{-1} \underbrace{J(X_k)}_{F} \qquad (公式27) ΔXk=F H(Xk)1F J(Xk)(27)
由公式 27 可推得目标函数 F ( X ) F(X) F(X)的最优化迭代公式:
X k + 1 = d e f X k − H ( X k ) ⏟ F − 1 J ( X k ) ⏟ F ( 公 式 28 ) X_{k+1}\stackrel{\mathrm{def}}{=} X_{k} -{\underbrace{H(X_k)}_{F}}^{-1} \underbrace{J(X_k)}_{F} \qquad (公式28) Xk+1=defXkF H(Xk)1F J(Xk)(28)
令:牛顿方向为 N ( X k ) = d e f − H ( X k ) ⏟ F − 1 J ( X k ) ⏟ F N(X_k)\stackrel{\mathrm{def}}{=}-{\underbrace{H(X_k)}_{F}}^{-1}\underbrace{J(X_k)}_{F} N(Xk)=defF H(Xk)1F J(Xk),由公式28可推得:
X k + 1 = d e f X k + N ( X k ) ( 公 式 29 ) X_{k+1}\stackrel{\mathrm{def}}{=} X_{k}+N(X_k) \qquad (公式29) Xk+1=defXk+N(Xk)(29)

3、Matlab程序

链接地址

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值