梯度下降法的原理

之前一直就只知道朝着负梯度的方向走就能降Loss,却不知道是为什么,今天看了人工智能的课才明白了。

首先假设损失函数 f ( x ) f(x) f(x),下一步 x x x的移动方向与距离 Δ x \Delta{x} Δx,则有移动后的损失 f ( x + Δ x ) f(x+\Delta{x}) f(x+Δx),我们来思考怎样能让损失降低,也就是使得 f ( x + Δ x ) < f ( x ) f(x+\Delta{x})<f(x) f(x+Δx)<f(x)

首先对 f ( x + Δ x ) f(x+\Delta{x}) f(x+Δx)泰勒展开:
在这里插入图片描述
f ( x ) f(x) f(x)移到左边可得:
在这里插入图片描述
其中, ∇ f ( x ) \nabla{f(x)} f(x) f ( x ) f(x) f(x)的一阶导数
其中,左边也就是移动前后的损失差值

目标是使得差值为负,且尽可能小,也就是损失下降得越多越好
也即希望右边 < 0 <0 <0,且越小越好
我们看右边:
两个向量相乘=模相乘* c o s θ cos\theta cosθ
在这里插入图片描述
所以 arg ⁡ min ⁡ Δ x f ( x + Δ x ) − f ( x ) = arg ⁡ min ⁡ Δ x ∥ ∇ f ( x ) ∥ ∥ Δ x ∥ c o s θ \mathop{\arg\min}\limits_{\Delta{x}}f(x+\Delta{x})-f(x)=\mathop{\arg\min}\limits_{\Delta{x}}\left \| \nabla{f(x)} \right \|\left \| \Delta{x} \right \|cos\theta Δxargminf(x+Δx)f(x)=Δxargminf(x)Δxcosθ
其中,模必 > = 0 >=0 >=0,因此,为了使其为负且最小化, c o s θ cos\theta cosθ负且最小,而 c o s θ cos\theta cosθ就是参数变化的方向( Δ x \Delta{x} Δx和梯度 ∇ f ( x ) \nabla{f(x)} f(x)方向的夹角)。

要使得 c o s θ cos\theta cosθ为负且最小,即当 θ = π \theta=\pi θ=π,取最小值 c o s π = − 1 cos\pi=-1 cosπ=1

Δ x \Delta{x} Δx ∇ f ( x ) \nabla{f(x)} f(x)的夹角为 π \pi π,即取负梯度方向时,右边能取到最小值。

最终,

∥ Δ x ∥ \left \| \Delta{x} \right \| Δx是一个标量,x移动的大小,我们可以看成学习率 α \alpha α,最终,上式变为:
在这里插入图片描述
也就是说,取梯度的负方向,再根据学习率调整步长,就能降低损失

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值