机器学习训练算法五(梯度下降法)

13 篇文章 0 订阅
11 篇文章 2 订阅

连续函数的最优化方法-梯度下降法

1、介绍

梯度下降法在机器学习中应用十分的广泛,它的主要目的是通过迭代搜索到目标函数的最小值;梯度下降法可以类比为一个下山的过程。假设,山上的雾非常大、可视度非常低、下山路径无法确定,而有一个人需要从山顶走到山谷(寻找目标函数的最小值),这个时候便可用梯度下降法来辅助下山。首先,以当前所处位置为基准寻找该位置最陡峭的方向,然后,朝着下降方向走一步。接着,又继续以当前位置为基准再寻找该位置最陡峭的方向,再朝着下降方向走一步。最后,重复该方法便可走到山谷;
在这里插入图片描述

2、数学原理

目标函数 F ( X ) F(X) F(X) X = X k X=X_k X=Xk处的不含皮亚诺余项的一阶泰勒公式如下:
F ( X k + Δ X k ) ≈ F ( X k ) + J ( X k ) ⏟ F T Δ X k ( 公 式 15 ) F(X_k+\Delta X_k)\approx F(X_k)+\underbrace{J(X_k)}_{F}{^T} \Delta X_k \qquad (公式15) F(Xk+ΔXk)F(Xk)+F J(Xk)TΔXk(15)
通过公式 15 可推得:
G ( Δ X k ) = d e f F ( X k + Δ X k ) − F ( X k ) ≈ J ( X k ) ⏟ F T Δ X k ( 公 式 16 ) G(\Delta X_k) \stackrel{\mathrm{def}}{=} F(X_k+\Delta X_k)-F(X_k) \approx \underbrace{J(X_k)}_{F}{^T} \Delta X_k \qquad (公式16) G(ΔXk)=defF(Xk+ΔXk)F(Xk)F J(Xk)TΔXk(16)

该表达式中 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是一个常数矩阵, Δ X k \Delta X_k ΔXk是一个变量矩阵,即函数 G ( Δ X k ) G(\Delta X_k) G(ΔXk)是以 Δ X k \Delta X_k ΔXk为自变量的的一次函数。为了使 G ( Δ X k ) < 0 G(\Delta X_k)<0 G(ΔXk)<0恒成立(即: F ( X k + Δ X k ) < F ( X k ) F(X_k+\Delta X_k)<F(X_k) F(Xk+ΔXk)<F(Xk)),考虑到 J ( X k ) ⏟ F T \underbrace{J(X_k)}_{F}{^T} F J(Xk)T Δ X k \Delta X_k ΔXk是一个矩阵,所以可以借用向量性质来分析函数 G ( Δ X k ) G(\Delta X_k) G(ΔXk)自变量和因变量之间的关系;
令:向量 A ⃗ = J ( X k ) ⏟ F T \vec {A}=\underbrace{J(X_k)}_{F}{^T} A =F J(Xk)T,向量 B ⃗ = Δ X k T \vec {B}=\Delta X_k{^T} B =ΔXkT,通过公式16可推得:
G ( Δ X k ) = d e f J ( X k ) ⏟ F T Δ X k = A ⃗ ⋅ B ⃗ = ∣ A ⃗ ∣ × ∣ B ⃗ ∣ × cos ⁡ ( θ ) ( 公 式 17 ) \begin{aligned} G(\Delta X_k) & \stackrel{\mathrm{def}}{=}\underbrace{J(X_k)}_{F}{^T} \Delta X_k\\ &=\vec{A}\cdot\vec {B} \\ &=\lvert{\vec{A}}\rvert\times\lvert{\vec{B}}\rvert\times\cos({\theta}) \end{aligned} \qquad (公式17) G(ΔXk)=defF J(Xk)TΔXk=A B =A ×B ×cos(θ)(17)
当向量 A ⃗ \vec {A} A 和向量 B ⃗ \vec {B} B 互为相反方向的时候公式17( η \eta η为步长) G ( Δ X k ) < 0 G(\Delta X_k)<0 G(ΔXk)<0恒成立,可推得:
B ⃗ = − η × A ⃗ , s . t . ( η > 0 ) ( 公 式 18 ) \vec{B}=-\eta\times\vec {A} \qquad ,s.t.(\eta>0) \qquad (公式18) B =η×A ,s.t.(η>0)(18)
由公式 18 可推得:
Δ X k = − η × J ( X k ) ⏟ F ( 公 式 19 ) \Delta X_k=-\eta\times\underbrace{J(X_k)}_{F} \qquad (公式19) ΔXk=η×F J(Xk)(19)
由公式 19 可推得目标函数 F ( X ) F(X) F(X)的最优化迭代公式:
X k + 1 = d e f X k − η × J ( X k ) ⏟ F ( 公 式 20 ) X_{k+1}\stackrel{\mathrm{def}}{=}X_{k}-\eta\times\underbrace{J(X_k)}_{F} \qquad (公式20) Xk+1=defXkη×F J(Xk)(20)

3、Matlab程序

链接地址

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值