李宏毅《机器学习》飞桨特训营(三)——梯度下降

视频PPT

梯度下降 Gradient Descent

1. 回顾

在这里插入图片描述
使参数向梯度相反的方向改变,改变的大小由学习率决定。

在这里插入图片描述

2. 梯度下降三个重点

2.1 学习率

该图展示了在不同的学习率下参数的更新情况:

在这里插入图片描述

  • 当学习率过低时(蓝色),梯度下降非常缓慢,这是无法接受的。
  • 当学习率偏大时(绿色),梯度下降会变快,但有可能卡在某个死区内导致无法下降。
  • 当学习率过大时(黄色),loss有可能不降反升。
  • 我们需要调整学习率到一个合适的值(红色),让损失以最快的速度到达最低点。

该图展示了在不同的学习率下损失的变化情况:

在这里插入图片描述
在训练时我们需要观察loss的变化情况,以确保我们取得了一个比较合适的学习率。

2.1.1 自适应学习率 Adaptive Learning Rates

最流行也是最简单的做法就是:在每一轮都通过一些因子来减小学习率。

  • 最开始时,我们距离最低点很远,所以我们用较大的步长。
  • 经过几轮后,我们接近了最低点,所以我们减少学习率。
  • 比如: 1/t 衰减, η t η\mathop{{}}\nolimits_{{t}} ηt=η/ t + 1 \sqrt{{t+1}} t+1

学习率不能从一而终,要给不同的参数设置不同的学习率。

2.1.2 自适应梯度算法 Adagrad

Adagrad 的做法就是每一个参数的学习率都除上微分值的均方根值。
在这里插入图片描述
学习率更新过程详解:
在这里插入图片描述
化简后我们得到最终的参数更新公式:
在这里插入图片描述
Adagrad 存在的问题:

  • 学习率是单调递减的,训练后期学习率过小会导致训练困难,甚至提前结束。
  • 需要设置一个全局的初始学习率。
2.1.3 多参数比较

当只有一个参数时,微分值的大小可以反应该点与最低点之间的水平距离。
在这里插入图片描述
当有多个参数时候,微分值大小则无法反映该点与最低点之间水平距离。如图中c点的微分值比a大,但是c点距离最低点更近,因此某个点到最低点的距离不仅与该点的微分值有关,还与其开口的大小有关,即二次微分。
在这里插入图片描述
因此参数更新的最佳步长为:
(一次微分值/二次微分值)×学习率

为了减小计算量,我们用一次微分的方根来代替二次微分,因此就得到了最终的学习率计算公式。
在这里插入图片描述

2.2 随机梯度下降 Stochastic Gradient Descent(SGD)

SGD 是批量梯度下降法 (Batch Gradient Descent, BGD) 的变种。批量梯度下降法通过进行N次迭代,直到目标函数收敛,或者到达某个既定的收敛界限。每次迭代都将对所有样本进行计算,计算量大。为了简便计算,SGD每次迭代仅对一个样本计算梯度,直到收敛。
在这里插入图片描述
优点:

  • 加快参数更新速度。

缺点:

  • 准确度下降。由于即使在目标函数为强凸函数的情况下,SGD仍旧无法做到线性收敛。
  • 可能会收敛到局部最优,由于单个样本并不能代表全体样本的趋势。
  • 不易于并行实现。

在这里插入图片描述

2.3 特征归一化 Feature Scaling

特征归一化的目的是将数据的特征缩放到[0,1]或[-1,1]之间,期望特征分布为正圆。
在这里插入图片描述
归一化后可以大大提高参数更新的效率。
在这里插入图片描述
归一化方法为:
在这里插入图片描述

3. 拓展资料:Adagrad和SGD的代码实践

逻辑回归(6种梯度下降方式)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值