谷歌大作:自动改良反向传播算法,训练速度再提升!


新智元报道

来源:Google AI

编辑:肖琴、三石

【新智元导读】大神 Geffery Hinton 是反向传播算法的发明者,但他也对反向传播表示怀疑,认为反向传播显然不是大脑运作的方式,为了推动技术进步,必须要有全新的方法被发明出来。今天介绍的谷歌大脑多名研究人员发表的最新论文Backprop Evolution,提出一种自动发现反向传播方程新变体的方法,该方法发现了一些新的方程,训练速度比标准的反向传播更快,训练时间也更短。

论文地址:

https://arxiv.org/pdf/1808.02822.pdf

大神 Geoffrey Hinton提出的反向传播算法是深度学习的基石。

1986 年,Geoffrey Hinton 与人合著了一篇论文:Learning representations by back-propagation errors,30 年之后,反向传播算法成了这一波人工智能爆炸的核心。

但去年,Hinton 在接受采访时表示,他对反向传播算法 “深感怀疑”,认为应该彻底抛弃反向传播,另起炉灶。Hinton 认为,反向传播不是大脑运作的方式,我们的大脑显然不需要对所有数据进行标注。为了推动进步,必须要有全新的方法被发明出来。

尽管Hinton、以及无数研究者仍未提出全新的、能够代替传播的方法,但最近机器学习自动搜索方法取得很多成功,反向传播算法的变体也得到越来越多的研究。

柏林工业大学、谷歌大脑的多名研究人员在最新发表的论文 Backprop Evolution,提出一种自动发现反向传播方程新变体的方法。研究人员使用领域特定语言将更新的方程描述为原函数列表。

具体来说,研究人员采用一种基于进化的方法来发现新的传播规则,这些规则在几个epoch的训练之后可以最大限度地提高其泛化表现。他们发现了一些新的方程,它们的训练速度比标准的反向传播更快,训练时间更短,并且在收敛时类似标准反向传播

自动生成反向传播方程

反向传播算法是机器学习中最重要的算法之一。已有研究对反向传播方程的变体进行了一些尝试,并取得一定程度的成功 (e.g., Bengio et al. (1994); Lillicrap et al. (2014); Lee et al. (2015); Nøkland (2016); Liao et al. (2016))。但尽管有这些尝试,反向传播方程的修改并没有得到广泛应用,因为这些修改很少对实际应用有改进,甚至有时会造成损害。

受近期机器学习自动搜索方法取得成功的启发,我们提出一种自动生成反向传播方程的方法。

为此,我们提出一种领域特定语言(domain specific language),以将这些数学公式描述为原始函数列表,并使用一种基于进化(evolution-based)的方法来发现新的传播规则。在经过几个epoch的训练后,搜索条件是使 generalization 最大化。我们找到了和标准反向传播效果同样好的几个变体方程。此外,在较短的训练时间内,这几种变体可以提高准确率。这可以用来改进 Hyperband 之类的算法,在训练过程中做出基于准确性的决策。

反向传播

图1:神经网络可以看作是一些计算图。前向图(forward graph)由网络设计者定义,而反向传播算法隐式地为参数更新定义了一个计算图。本研究的主要贡献是探索如何利用evolution来找到一个比标准反向传播更有效的参数更新计算图。

其中,

是网络的输入,

对layer进行索引,

为第

层的权重矩阵。为了优化神经网络,我们要计算损失

的偏导数,这跟权重矩阵

有关。利用反向传播算法中的链式法则可以计算出这个量。为了计算隐藏激活

的偏导数,要应用一系列运算:

一旦计算出

,就可以将权重更新计算为:

如图1所示,神经网络可以表示为前向和后向的计算图。给定一个由网络设计者定义的前向计算图,反向传播算法定义了一个用于更新参数的反向计算图。但是,有可能找到一个改进的反向计算图,从而得到更好的泛化。

最近,用于机器学习的自动搜索方法已经在各种任务上取得了很好的结果,这些方法涉及修改前向计算图,依靠反向传播来定义适当的反向图。与之不同,在这项工作中,我们关注的是修改反向计算图,并使用搜索方法为

找到更好的方程,产生新的训练规则。

方法

为了找到改进的更新规则,我们使用进化算法来搜索可能的更新方程(update equation)的空间。在每次迭代中,进化控制器将一批突变的更新方程发送给workers池进行评估。每个worker使用其接收到的变异方程来训练一个固定的神经网络结构,并将获得的验证精度报告给控制器。

搜索空间

受到Bello et al. (2017) 的启发,我们使用领域特定语言(domain-specific language,DSL)来描述用于计算

的方程。DSL将每个

方程表示为

,其中

是可能的操作数,

是一元函数,

是二元函数。一元函数和二元函数的集合是手动指定的,但是函数和操作数的各个选择由控制器选择。每个组件的示例如下:

  • 操作数(Operands):W(当前层的权重矩阵),

(高斯矩阵),

(从

的高斯随机矩阵映射),

(前向传播的隐藏激活),

(反向传播的值)。

  • 一元函数
  • 二元函数

其中,

索引当前的层。实验使用的完整设置请见论文附录A。

结果得到的量

在方程1中被用作

,或者在方程的后续部分以递归方式用作

。在实验中,我们探索了由1到3个二元运算组成的方程。这种DSL虽然简单,但可以表示复杂的方程,例如标准的反向传播,feedback alignment,以及direct feedback alignment。

进化算法

进化控制器(evolutionary controller)维护一组已发现的方程。在每次迭代中,控制器执行以下操作之一:1)概率为p的情况下,控制器在搜索期间找到的N个最优竞争力的方程中随机选择一个方程,2)概率为1 - p时,控制器从population的其他方程中随机选择一个方程。

控制器随后将k个突变(mutation)应用于所选方程,其中k是从分类分布中提取的。这k个突变中的每一个只是简单地选择一个随机一致的方程组件(例如,一个操作数,一个一元函数,或者一个二元函数),然后将它与另一个随机选择的同类组件交换。某些突变会导致数学上不可行的方程,在这种情况下,控制器会重新启动突变过程,直到成功。N、p和k的分类分布是算法的超参数。

为了创建初始 population,我们简单地从搜索空间中随机抽样N个方程。此外,在我们的一些实验中,我们从一小部分预定义的方程开始(通常是正常的反向传播方程或其反馈对齐方程变体)。从现有方程出发的能力是基于强化学习的进化方法具有的优势。

实验和结果

在该方法中,用于评估每个新方程的模型的选择是一个重要的设置。规模更大、更深的网络会更真实,但需要更长的时间来训练,而较小的模型训练更快,但可能导致更新网络无法推广。我们通过使用Wide ResNets (WRN) 来平衡这两个标准,其中WRN有16层,宽度multiplier为2,并且在CIFAR-10数据集中进行训练。

基线搜索和泛化

在第一次搜索中,控制器提出新方程训练WRN 16-2网络20个epoch,并且分别在有或没有动量的情况下用SGD训练。根据验证准确性收集前100个新方程,然后在不同场景下进行测试:

(A1)使用20个epoch训练WRN 16-2 ,复制搜索设置;

(A2)使用20个epoch训练WRN 28-10 ,将其推广到更大的模型(WRN 28- 10的参数是WRN 16-2的10倍);

(A3)使用100个epoch训练WRN 16-2 ,测试推广到更长的训练机制。

实验结果如表1所示:

表1:实验结果

从A1到A3,在每个设置中展示了两个性能最好的方程,以及两个在所有设置中都表现良好的方程。在B1中展示了4个性能最好的方程,所有结果均为5次以上的平均测试准确率。基线是梯度反向传播。比基线性能优于0.1%的结果都用粗体表示。我们用

表示

增加训练次数的搜索

之前的搜索实验发现新方程在训练开始时运行良好,但在收敛时不优于反向传播。后一种结果可能是由于搜索和测试机制之间的不匹配,因为搜索使用20个epoch来训练子模型,而测试机制使用100个epoch。

一个后续方案是匹配这两个机制。 在第二次搜索实验中,使用100个epoch训练每个子模型。 为了补偿由于使用较多的epoch进行训练而导致的实验时间增加,使用较小的网络(WRN 10-1)作为子模型。 使用较小的模型是可以接受的,因为新方程倾向于推广到更大,更真实的模型,如(A2)。

实验结果在表1中的(B1),与(A3)较为相似,即,可以找到对SGD表现较好的更新规则,但是对有动量的SGD的结果与基线相当。(A3)和(B1)结果的相似性表明,训练时间的差异可能不是误差的主要来源。 此外,具有动量的SGD对于不同的新方程是几乎不变的。

总结

在这项工作中,提出了一种自动查找可以取代标准反向传播的方程的方法。使用了一种进化控制器(在方程分量空间中工作),并试图最大化训练网络的泛化。探索性研究的结果表明,对于特定的场景,有一些方程的泛化性能比基线更好,但要找到一个在一般场景中表现更好的方程还需要做更多的工作。


原文发布于微信公众号 - 新智元(AI_era)

原文发表时间:2018-08-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技大本营的专栏

硬货 | 一文了解深度学习在NLP中的最佳实践经验和技巧

编译 | AI科技大本营(rgznai100) 参与 | JeyZhang,鸽子 在NLP社区中曾流行着这样一个玩笑,说是一个带注意力机制的LSTM模型在任何的...

31740
来自专栏小樱的经验随笔

神经网络算法

我们在设计机器学习系统时,特别希望能够建立类似人脑的一种机制。神经网络就是其中一种。但是考虑到实际情况,一般的神经网络(BP网络)不需要设计的那么复杂,不需要包...

36040
来自专栏计算机视觉战队

检测与识别人与目标之间的互动

深度学习有在新的高度得到大家的认可,并驱使更多的爱好者去学习、去探索,已不仅仅在图像、视频及语音领域得到重视。现在在SLAM、NLP、医学、经济学等领域都得到愈...

15230
来自专栏视觉求索无尽也

【图像检索】【TPAMI重磅综述】 SIFT与CNN的碰撞:万字长文回顾图像检索任务十年探索历程

基于内容的图像检索任务(CBIR)长期以来一直是计算机视觉领域重要的研究课题,自20世纪90年代早期,研究人员先后采用了图像的全局特征,局部特征,卷积特征的方法...

1.2K10
来自专栏算法channel

北大才女笔记:这样学习线性回归和梯度下降(上篇)

我们说到,机器学习中主要的两个任务就是回归和分类。如果读者有高中数学基础,我们很容易回忆到我们高中学习过的一种回归方法——线性回归。我们将这种方法泛化,就可以得...

12000
来自专栏ATYUN订阅号

为什么我们一定要用随机权重初始化神经网络

必须将人工神经网络的权重初始化为小的随机数。这是因为这是用于训练模型的随机优化算法的期望,即随机梯度下降。

15930
来自专栏IT派

PyTorch实例:用ResNet进行交通标志分类

【导读】本文是机器学习工程师Pavel Surmenok撰写的一篇技术博客,用Pytorch实现ResNet网络,并用德国交通标志识别基准数据集进行实验。文中分...

2.5K00
来自专栏机器之心

业界 | Tensor Core究竟有多快?全面对比英伟达Tesla V100/P100的RNN加速能力

39090
来自专栏IT派

用 TensorFlow 让机器人唱首歌给你听

然后会用一些打过标签的音乐的数据,这些标签就是人类的各种情感。接着通过在这些数据上面训练一个模型,模型训练好后就可以生成符合要求关键词的音乐。

12720
来自专栏机器学习算法工程师

【TPAMI重磅综述】 SIFT与CNN的碰撞:万字长文回顾图像检索任务十年探索历程(上篇)

基于内容的图像检索任务(CBIR)长期以来一直是计算机视觉领域重要的研究课题,自20世纪90年代早期以来,研究人员先后设计了图像的全局特征,局部特征,卷积特征的...

14740

扫码关注云+社区

领取腾讯云代金券