如何改进梯度下降算法

2018 年 4 月 19 日 论智 Devin Soni
作者:Devin Soni
编译:weakish

编者按:梯度下降两大痛点:陷入局部极小值和过拟合。Towards Data Science博主Devin Soni简要介绍了缓解这两个问题的常用方法。

介绍

基于梯度下降训练神经网络时,我们将冒网络落入局部极小值的风险,网络在误差平面上停止的位置并非整个平面的最低点。这是因为误差平面不是内凸的,平面可能包含众多不同于全局最小值的局部极小值。此外,尽管在训练数据上,网络可能到达全局最小值,并收敛于所需点,我们无法保证网络所学的概括性有多好。这意味着它们倾向于过拟合训练数据。

有一些手段有助于缓解这些问题,不过并没有绝对地预防这些问题产生的方法。这是因为网络的误差平面一般很难穿越,而神经网络整体而言很难解释。

随机梯度下降与mini-batch随机梯度下降

这些算法改编了标准梯度下降算法,在算法的每次迭代中使用训练数据的一个子集。SGD在每权重更新上使用一个样本,mini-batch SGD使用预定义数目的样本(通常远小于训练样本的总数)。这大大加速了训练,因为我们在每次迭代中没有使用整个数据集,它需要的计算量少得多。同时,它也有望导向更好的表现,因为网络在训练中断断续续的移动应该能让它更好地避开局部极小值,而使用一小部分数据集当有助于预防过拟合。

正则化

正则化基本上是一个惩罚模型复杂度的机制,它是通过在损失函数中加入一个表示模型复杂度的项做到这一点的。在神经网络的例子中,它惩罚较大的权重,较大的权重可能意味着神经网络过拟合了训练数据。

最左:欠拟合;最右:过拟合

若网络的原损失函数记为L(y, t),正则化常数记为λ,则应用了L2正则化后,损失函数改写为如下形式:

正则化在损失函数中加入了网络的每个权重的平方和,以惩罚给任何一个连接分配了过多权重的模型,希望能降低过拟合程度。

动量

简单来说,动量在当前权重更新上加上一小部分前次权重更新。这有助于预防模型陷入局部极小值,因为即使当前梯度为0,之前梯度绝大多数情况下不为0,这样模型就不那么容易陷入极小值。另外,使用动量也使误差平面上的移动总体上更为平滑,而且移动得更快。

基于这一简单的动量概念,我们可以重写权重更新等式至如下形式(α为动量因子):

还有其他一些更高级的动量形式,比如Nesterov方法

学习率退火

我们可以不在整个训练过程中使用同一学习率,而是随着时间的进展降低学习率,也就是退火。

最常见的退火规划基于1/t关系,如下图所示,其中Tμ0为给定的超参数,μ为当前学习率:

这经常被称为“搜索并收敛”(search-then-converge)退火规划,因为直到t达到T之前,网络都处于“搜索”阶段,学习率没有下降很多,在此之后,学习率减慢,网络进入“收敛”阶段。这和探索(exploitation)利用(exploration)间的平衡多多少少有些关系。刚开始我们优先探索搜索空间,扩展我们关于空间的整体知识,随着时间的推进,我们过渡到利用搜索空间中我们已经找到的良好区域,收缩至特定的极小值。

结语

这些改进标准梯度下降算法的方法都需要在模型中加入超参数,因而会增加调整网络所需的时间。最近提出的一些新算法,比如AdamAdagradAdadelta,倾向于在每个参数的基础上进行优化,而不是基于全局优化,因此它们可以基于单独情况精细地调整学习率。在实践中,它们往往更快、更好。下图同时演示了之前提到的梯度下降变体的工作过程。注意看,和简单的动量或SGD相比,更复杂的变体收敛得更快。

原文地址:https://towardsdatascience.com/improving-vanilla-gradient-descent-f9d91031ab1d

登录查看更多
9

相关内容

在数学分析中,最大值和最小值(最大和最小的复数)的一个函数,统称为极值。皮埃尔·德·费马是最早提出一种求函数的极大值和极小值的通用技术的数学家之一。
【CMU】深度学习模型中集成优化、约束和控制,33页ppt
专知会员服务
44+阅读 · 2020年5月23日
Sklearn 与 TensorFlow 机器学习实用指南,385页pdf
专知会员服务
126+阅读 · 2020年3月15日
【Nature论文】深度网络中的梯度下降复杂度控制
专知会员服务
38+阅读 · 2020年3月9日
专知会员服务
44+阅读 · 2020年3月6日
模型压缩究竟在做什么?我们真的需要模型压缩么?
专知会员服务
26+阅读 · 2020年1月16日
深度学习优化算法总结(SGD,AdaGrad,Adam等)
极市平台
33+阅读 · 2019年4月30日
7个实用的深度学习技巧
机器学习算法与Python学习
16+阅读 · 2019年3月6日
已删除
将门创投
10+阅读 · 2018年5月2日
算法优化|梯度下降和随机梯度下降 — 从0开始
全球人工智能
7+阅读 · 2017年12月25日
深度学习超参数简单理解
计算机视觉战队
4+阅读 · 2017年11月28日
教程 | 如何估算深度神经网络的最优学习率
机器之心
3+阅读 · 2017年11月17日
A Modern Introduction to Online Learning
Arxiv
19+阅读 · 2019年12月31日
Hierarchical Deep Multiagent Reinforcement Learning
Arxiv
8+阅读 · 2018年9月25日
Arxiv
11+阅读 · 2018年4月25日
Arxiv
4+阅读 · 2018年3月19日
VIP会员
相关资讯
深度学习优化算法总结(SGD,AdaGrad,Adam等)
极市平台
33+阅读 · 2019年4月30日
7个实用的深度学习技巧
机器学习算法与Python学习
16+阅读 · 2019年3月6日
已删除
将门创投
10+阅读 · 2018年5月2日
算法优化|梯度下降和随机梯度下降 — 从0开始
全球人工智能
7+阅读 · 2017年12月25日
深度学习超参数简单理解
计算机视觉战队
4+阅读 · 2017年11月28日
教程 | 如何估算深度神经网络的最优学习率
机器之心
3+阅读 · 2017年11月17日
Top
微信扫码咨询专知VIP会员