O'ReillyAI系列:将学习速率可视化来优化神经网络

O’Reilly和Intel人工智能2018北京大会售票系统已经上线,现在是Best Price票价阶段。目前已经公布部分讲师及议题,详情请登录官网:https://ai.oreilly.com.cn/ai-cn

原文摘要:

学习速率是随着时间的推移神经网络里信息积累的速度。学习速率决定了神经网络达到(以及是否能达到)所需特定输出的最佳、最有利位置的速度。在原始随机梯度下降(SGD)中,学习速率与误差梯度的形状无关,因为它使用了一个与误差梯度无关的全局学习速率。

然而可以对原始SGD的更新规则进行许多修改,这些规则会将学习速率跟误差梯度的大小和方向关联起来。

为什么要将学习速率的可视化出来?

将随着时间变化的学习速率可视化与随着道路状况变化的汽车速度可视化是类似的。在高速公路等畅通宽阔的道路上,我们可以提高速度(学习速率),但是在狭窄的丘陵或山谷道路上,我们必须放慢速度。此外,我们不想在高速公路上行驶得太慢,否则我们将花费太长时间才能到达目的地(由于参数不当而导致更长的训练时间)。同样的,我们不想在丘陵和狭窄的道路上(就像优化损失函数表面的沟谷)开车太快,因为我们很容易失去对汽车的控制(陷入局部最小值,或因产生太多的反弹而几乎没有改进)或错过目的地(最优值)。

请记住,“…一个高学习速率… [表示]系统含有太多的动能,参数向量胡乱的弹跳从而不能落入损失函数的较深但较窄的地方”(请参阅Karpathy的cs231n课程笔记)。

基于相同的数据来源,可以通过在数据集的一个子集上训练网络来获得一个良好的初始学习速率估计。理想的策略是从一个很大的学习速率开始,逐次减半直到损失不再变化。在接近训练结束时,学习速率的衰减应在100倍左右或更高。这种衰减使学习好的网络能够抵抗可能使学习失败的随机波动。在这里,我们将会先选择一个小的学习速率在一个小的数据集上测试,并选择适当的值。

学习速率衰减

非自适应学习速率可能不是最佳的。学习速率的衰减可以通过每几个周期减少某个常数因子,或通过指数衰减来实现,指数可以采用每几个周期的指数的数学形式。“衰减”通常被认为是一个消极的概念,在当前的学习速率衰减案例中也是负面的:它指的是学习速率下降的程度。然而这种衰减的结果实际上是我们非常想要的。例如我们降低一辆车的速度以适应道路和交通条件,这种减速可以被理解为汽车速度的“衰减”。同样我们也能从衰减学习速率以适应梯度中获益。

降低学习速率是必要的,因为高的学习速率在进行迭代训练时很可能会落入局部最小值。想象这个局部最小值是一张超速罚单、一个通行费、交通信号灯或是交通拥挤——某些基本上会增加到达目的地的时间的东西。完全避免所有的交通信号灯和通行费是不可能的,但是会有一个我们喜欢的最优驾驶路径。同样的在模型训练中,我们希望寻找最佳路径时避免在梯度上的反复跳跃,并希望模型训练是沿着最佳路径的。理想情况下,我们不希望加速太快因为我们会因此得到一张超速罚单(陷入局部最小值并抛锚)。同样的比喻也适用于学习速率。

动量是一种自适应学习速率方法的参数,它允许以较高速度在平缓方向上移动,而在陡峭方向上降低速度。这种动量定义被认为是“经典动量”,它会对速度进行校正然后在速度方向上大跳跃移动。动量有助于根据梯度的变化加速或减速基础学习速率,将引起净学习速率的变化而不影响其在损失函数表面上的位置。动量使学习到的网络更能抵抗输入中的噪声和随机性。

将学习速率视为超参数的其他更新规则包括:

Duchi等人在2011年提出的AdaGrad,其增加了根据每个维度的历史平方和来缩放梯度的各个元素。

Tieleman和Hinton在2012年提出的RMSProp自适应学习速率,其保留了每个权重的平方梯度的移动平均值以正规化当前梯度。RMSProp增强了抵抗波动和随机噪声的能力。

Kingma和Ba在2014年提出的Adam,其引入了零初始化的一个偏差修正值补偿。

以及rprop,它只使用梯度符号来分别适应每个权重的步长。这不适用于小批量。

除了这些规则,还有很多遵循牛顿更新规则但计算量非常大的二阶方法。然而二阶方法不会把学习速率视为超参数,由于其计算量大所以很少被用于大型深度学习系统。

图1显示了在差不多的超参数设置下不同优化技术的比较:

图1 优化技术的比较。资料来源:Alec Radford,经许可使用

在这个图像中,动量更新越过了目标,但是到达全局最小值的速度更快。“NAG”是Nesterov加速梯度(Nesterov Accelerated Gradient),其首先沿速度的方向移动然后基于新位置对速度矢量进行校正。

从本质上讲,我们的目标不是衰减而是利用衰减到达正确的位置。为了到达全局最优或者期望的目的地,必须有选择性地增大或者减小学习速率。不要害怕这些,因为我们经常要做很多遍。

可视化

想要了解模型学习的进展,可视化是很必要的。例如,损失周期图对于了解损失是如何随着周期变化是非常有用的。当所有数据点在当前训练中至少被看到过一次时就完成一个周期。与迭代相比,跟踪周期更好。这是因为迭代次数取决于可以任意设定的批量大小。

生成这个图的一个好方法是通过叠加不同参数集合的每个周期曲线的损失。这个过程有助于我们识别最适合训练的一组参数。这些图的y轴是损失,x轴是周期数。总体来说,图2所示的几个损失曲线看起来比较相似,但是它们的优化模式存在一些微小的差异,具体表现在其收敛所需的周期数量和结果误差上。

在众多的损失函数中,选择使用哪一种是很重要的。对于一些分类任务,交叉熵误差往往比其他度量更适合(如均方误差),这是因为交叉熵误差背后所代表的数学假设。如果我们将神经网络视为概率模型,则交叉熵会变成一个直观的损失函数,其利用Sigmoid或softmax非线性函数使输入数据被正确分类的可能性最大化。另一方面,均方误差更多地关注于标签不正确的数据。因此平均分类误差是一个粗略的标准。

交叉熵的优点是包括一个log项,使其粒度更细,同时考虑到了预测值与目标值的接近度。交叉熵也有更好的偏导数以产生较大的误差,这会使梯度更大以确保更快的学习速度。通常损失函数应根据输出单元跟概率模型假设相匹配的假设来选择。例如,softmax和交叉熵最适合多类分类。绘制交叉熵函数可能更容易解释,因为log项仅仅是因为学习过程主要表现为指数形式的一个指数过程。

关于本文更多精彩内容,请登录O'Reilly官网:https://www.oreilly.com.cn/ideas/?p=1263

本文来自企鹅号 - 尽在掌握阿媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

4900篇NIPS 2018提交论文难评审?北京大学提出基于CNN的学术论文自动评分模型

22050
来自专栏Pytorch实践

Pytorch实现基于skip-gram的word2vec

对于词语的表示,最开始采用one-hot编码,用于判断文本中是否具有该词语;后来发展使用Bag-of-Words,使用词频信息对词语进行表示;再后来使用TF-I...

1.4K160
来自专栏IT派

神经网络告诉我,谁是世界上最「美」的人?

数月前,华南理工大学发布了关于「颜值预测」的论文和数据集,数据集包括 5500 人,每人按颜值魅力打分,分值在 1 到 5 分之间。

14500
来自专栏数据科学与人工智能

朴素贝叶斯分类算法|机器学习

贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。本文作为分类算法的第一篇,将首先介绍分类问题,对分类问题进行一个正式的定义。然...

28990
来自专栏量子位

一文看懂如何搭建AI应用:10周学会深度学习,还赢下5千美元

春节后第一个休息日,量子位给大家准备了一个不一样的故事。 在这个故事里,主人公David Brailovsky(就叫阿D吧)参加了一场计算机视觉比赛。这个挑战赛...

20150
来自专栏CVer

[计算机视觉论文速递] 2018-03-20

通知:这篇推文有13篇论文速递信息,涉及图像分割、SLAM、显著性、深度估计、车辆计数等方向 往期回顾 [计算机视觉] 入门学习资料 [计算机视觉论文速递] ...

56580
来自专栏磐创AI技术团队的专栏

谱聚类概述

16330
来自专栏AI科技评论

语义分割领域开山之作:Google提出用神经网络搜索实现语义分割

AI 科技评论按:本文作者陈泰红,邮箱 ahong007@yeah.net,他为 AI 科技评论撰写了 Google 利用神经网络搜索实现语义分割的独家解读。

10910
来自专栏新智元

超越GAN!OpenAI提出可逆生成模型,AI合成超逼真人像

【新智元导读】OpenAI最新提出的可逆生成模型Glow,可以使用相对少的数据,快速生成高清的逼真图像,具有GAN和VAE所不具备的精确操作潜在变量、需要内存少...

12700
来自专栏机器之心

资源 | 神经网络告诉我,谁是世界上最「美」的人?

选自TowardsDataScience 作者:Dima Shulga 机器之心编译 参与:路、刘晓坤 「魔镜魔镜告诉我,谁是世界上最美的女人?」这句伴随童年的...

30540

扫码关注云+社区

领取腾讯云代金券