梯度下降

梯度下降

梯度下降法是最常用的一阶优化方法,用于求解无约束优化问题。

考虑无约束优化问题 m i n x f ( x ) min_{\boldsymbol{x}}f(\pmb{x}) minxf(xxx),其中 f ( x ) f(\pmb{x}) f(xxx)为连续可微函数,若能构造一个序列 x 0 , x 1 , x 2 \pmb{x}_0,\pmb{x}_1,\pmb{x}_2 xxx0,xxx1,xxx2…满足
f ( x t + 1 ) &lt; f ( x t ) t = 0 , 1 , 2... f(\pmb{x}_{t+1})&lt;f(\pmb{x}_t) \quad t=0,1,2... f(xxxt+1)<f(xxxt)t=0,1,2...
则不断执行该过程即可收敛到局部极小点,根据泰勒公式,函数 f ( x + Δ x ) f(\pmb{x}+\Delta \pmb{x}) f(xxx+Δxxx) x \pmb{x} xxx处的泰勒展开为:
(1) f ( x + Δ x ) ≈ f ( x ) + ∇ f ( x ) T Δ x f(\pmb{x}+ \Delta \pmb{x}) \approx f(\pmb{x})+\nabla f(\pmb{x})^T\Delta \pmb{x} \tag{1} f(xxx+Δxxx)f(xxx)+f(xxx)TΔxxx(1)
其中 f ( x ) f(\pmb{x}) f(xxx)已知,要满足 f ( x + Δ x ) &lt; f ( x ) f(\pmb{x}+ \Delta \pmb{x}) &lt; f(\pmb{x}) f(xxx+Δxxx)<f(xxx),只需令 ∇ f ( x ) T Δ x &lt; 0 \nabla f(\pmb{x})^T\Delta \pmb{x}&lt;0 f(xxx)TΔxxx<0,同时为了更快的收敛到局部极小点, f ( x + Δ x ) f(\pmb{x}+ \Delta \pmb{x}) f(xxx+Δxxx)应尽量小,注意到式(1)的右边第二项是 ∇ f ( x ) \nabla f(\pmb{x}) f(xxx) Δ x \Delta \pmb{x} Δxxx的内积,那么只需令 Δ x \Delta \pmb{x} Δxxx ∇ f ( x ) \nabla f(\pmb{x}) f(xxx)的方向相反, f ( x ) f(\pmb{x}) f(xxx)将以最快的速度下降(反之则以最快的速度上升,这就是为什么梯度的方向是函数值增长最快的方向),现实中通常取
Δ x = − γ ∇ f ( x ) γ &gt; 0 \Delta \pmb{x}=-\gamma \nabla f(\pmb{x})\quad \gamma&gt;0 Δxxx=γf(xxx)γ>0
其中 γ \gamma γ是步长,步长的设置需合理,若过小可能收敛速度慢,若过大可能会在局部极小点附近振荡无法收敛。
下面以 f ( x ) = x 2 f(x)=x^2 f(x)=x2为例,看一下收敛过程。
γ = 0.2 \gamma=0.2 γ=0.2时,整个梯度下降的收敛路径如下所示。
在这里插入图片描述
不妨减小步长,令 γ = 0.05 \gamma=0.05 γ=0.05,此时路径如下所示。
在这里插入图片描述
再看看增大步长,令 γ = 0.9 \gamma=0.9 γ=0.9
在这里插入图片描述
能够明显的看到在极值点附近振荡。为保证一定能收敛 γ \gamma γ可以适当小一点,在实际使用时 γ \gamma γ通常取 0.05 ∼ 0.1 0.05\sim0.1 0.050.1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值