0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何快速简单地训练神经网络?

DPVg_AI_era 来源:未知 作者:李倩 2018-06-27 14:11 次阅读

如何快速简单地训练神经网络?谷歌大脑研究人员研究了CNN的可训练性,提出了一种简单的初始化策略,不需要使用残差连接或批标准化,就能训练10000层的原始CNN。作者表示,他们的这项工作清除了在训练任意深度的原始卷积网络时存在的所有主要的障碍。

2015年,ResNet横空出世,以令人难以置信的3.6%的错误率(人类水平为5-10%),赢得了当年ImageNet竞赛冠军,在图像分类、目标检测和语义分割各个分项都取得最好成绩,152层顺序堆叠的残差模块让业界大为赞叹。

此后,ResNet作为训练“极”深网络的简单框架,得到了广泛的应用,包括最强版本的AlphaGo——AlphaGo Zero。

此后,随着神经网络向着更深、更大的规模发展,性能不断提高的同时,也为训练这样的网络带来了越来越大的挑战。虽然现在有类似谷歌AutoML的项目,将设计和优化神经网络的工作,交给神经网络自己去做,而且效果还比人做得更好。但是,AI研究者还是在思考,为什么残差连接、批标准化等方法,会有助于解决梯度消失或爆炸的问题。

在谷歌大脑研究人员发表于ICML 2018的论文《CNN动态等距和平均场论》(Dynamical Isometry and a Mean Field Theory of CNNs: How to Train 10,000-Layer Vanilla Convolutional Neural Networks)中,他们对CNN的可训练性和信号在卷积网络中的传输特点进行了研究,并拓展了此前关于深度学习平均场论(Mean Field Theory)的工作。

他们发现,卷积核在空间上的分布情况扮演了很重要的角色:当使用在空间上均匀分布的卷积核对CNN做初始化时,CNN在深度上会表现得像全连接层;而使用在空间上不均匀分布的卷积核时,信号在深度网络中就表现出了多种传输模式。

基于这一观察,他们提出了一个简单的初始化策略,能够训练10000层乃至更深的原始CNN结构。

不用残差连接,也不用批标准化,只用一个简单的初始化策略,就能训练10000层深度的网络。上图为在MNIST数据集的结果,下图是CIFAR10,实线是测试,训练是训练。来源:论文

作者表示,他们的这项工作提供了对残差连接、批标准化等实践方法的理论理解。“残差连接和批标准化(Batch Normalization)这些结构上的特征,可能在定义好的模型类(model class)中有着重要的作用,而不是仅仅简单地能够提高训练的效率。”

CNN可以被训练的深度,就是信号能完全通过的层数

在物理学和概率论中,平均场论(Mean Field Theory,MFT)是对大且复杂的随机模型的一种简化。未简化前的模型通常包含数量巨大且存在相互作用的小个体。

平均场理论则做了这样的近似:对于某个独立的小个体,所有其他个体对它产生的作用可以用一个平均的量给出,这样简化后的模型就成了一个单体问题。

这种思想源于皮埃尔·居里(对,就是居里夫人的老公)和法国物理学家皮埃尔·外斯(Pierre-Ernest Weiss)对相变的研究。现在,平均场论广泛用于如传染病模型、排队论、计算机网络性能和博弈论当中。

在深度学习领域,平均场论也得到了研究。这些研究都揭示了一点,那就是在初始化阶段,信号能在网络中传输的深度存在一个最大值,而深度网络之所以能够被训练,恰恰是因为信号能够全部通过这些层。

平均场论预测信号在网络中传输深度存在一个最大值,这也就是网络可以被训练的深度

在这项工作中,作者基于平均场论开发了一个理论框架,研究深度CNN中信号的传播情况。通过研究信号在网络中向前和向后传播而不衰减的必要条件,他们得出了一个初始化方案,在不对网络的结构进行任优化(比如做残差连接、批标准化)的情况下,这个方案能帮助训练超级深——10000乃至更深的原始CNN。

简单初始化策略,训练10000层原始CNN

那么,这个初始化方案是什么呢?先从结论说起,就是这个算法

这是一个生成随机正交卷积核的算法,目的是为了实现动态等距(dynamical isometry)。

大家都知道,深度神经网络中权重的初始化会对学习速度有很大的影响。实际上,深度学习建立在这样一个观察之上,即无监督的预训练为随后通过反向传播进行的微调提供了一组好的初始权重。

这些随机权重的初始化主要是由一个原理驱动,即深度网络雅可比矩阵输入-输出的平均奇异值应该保持在1附近。这个条件意味着,随机选择的误差向量在反向传播时将保持其范数。由于误差信息在网络中进行忠实地、等距地反向传播,因此这个条件就被称为“动态等距”。

对深度线性网络学习的非线性动力学的精确解进行理论分析后发现,满足了动态等距的权重初始化能够大大提高学习速度。对于这样的线性网络,正交权重初始化实现了动态等距,并且它们的学习时间(以学习轮数的数量来衡量)变得与深度无关。

这表明深度网络雅可比矩阵奇异值的整个分布形状,会对学习速度产生巨大的影响。只有控制二阶矩,避免指数级的梯度消失和爆炸,才能留下显著的性能优势。

现在,最新的这项研究发现,在卷积神经网络中也存在类似的情况。作者将要传播的信号分解为独立的傅里叶模式,促进这些信号进行均匀的传播。由此证明了可以比较容易地训练10000层或更多的原始CNN。

清除训练任意深度原始CNN的所有主要障碍

ICLR 2017的一篇论文中,谷歌的研究人员,包括深度学习教父 Geoffrey Hinton 和谷歌技术大牛 Jeff Dean在内,提出了一个超大规模的神经网络——稀疏门控混合专家层(Sparsely-Gated Mixture-of-Experts layer,MoE)。

MoE 包含上万个子网络(也即“专家”),每个专家都有一个简单的前馈神经网络和一个可训练的门控网络(gating network),门控网络会选择专家的一个稀疏组合来处理每个输入。

嵌入在循环语言模型中的混合专家(Mixture of Experts,MoE)模块。在这种情况下,稀疏门函数选择两个专家来执行计算,它们的输出由门控网络的输出控制。

最终的网络虽然是含有1370亿个参数的庞然大物,但由于实现了条件计算的好处,模型容量得到了超过1000倍的提升,而计算效率只有相对微小的损失。MoE在大规模语言建模和机器翻译基准测试中,花费很小的计算力实现了性能的显著提升。这项工作也是深度网络条件计算在产业实践中的首次成功。

2017年6月,Facebook人工智能实验室与应用机器学习团队合作,提出了一种新的方法,能够大幅加速机器视觉任务的模型训练过程,仅 1 小时就训练完ImageNet这样超大规模的数据集。Facebook 团队提出的方法是增加一个新的预热阶段(a new warm-up phase),随着时间的推移逐渐提高学习率和批量大小,从而帮助保持较小的批次的准确性。

现在,谷歌大脑的这项工作,提供了对这些实践方法的理论理解。作者在论文中写道,

我们的结果表明,我们已经清除了在训练任意深度的原始卷积网络时存在的所有主要的障碍。在这样做的过程中,我们也为解决深度学习社区中的一些突出问题奠定了基础,例如单凭深度是否可以提高泛化性能。

我们的初步结果表明,在一定的深度上,在几十或几百层的这个数量级上,原始卷积结构的测试性能已经饱和。

这些观察结果表明,残差连接和批标准化(Batch Normalization)这些结构上的特征,可能在定义好的模型类(model class)中有着重要的作用,而不是仅仅简单地能够提高训练的效率。

这一发现对深度学习研究社区有着重大的意义。不用批标准化,也不用残差连接,仅仅通过一个初始化函数,就训练10000层的原始CNN。

即使你不训练10000层,这个初始化带来的训练速度提升也是可观。

不过,作者目前只在MNIST和CIFAR10数据集上验证了他们的结果,推广到更大的数据集后情况会如何,还有待观察。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4560

    浏览量

    98622
  • 深度学习
    +关注

    关注

    73

    文章

    5218

    浏览量

    119859
  • cnn
    cnn
    +关注

    关注

    3

    文章

    326

    浏览量

    21289

原文标题:【谷歌ICML】简单初始化,训练10000层CNN

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    人工神经网络原理及下载

    这个网络输入和相应的输出来“训练”这个网络网络根据输入和输出不断地调节自己的各节点之间的权值来满足输入和输出。这样,当训练结束后,我们给定
    发表于 06-19 14:40

    神经网络教程(李亚非)

      第1章 概述  1.1 人工神经网络研究与发展  1.2 生物神经元  1.3 人工神经网络的构成  第2章人工神经网络基本模型  2.1 MP模型  2.2 感知器模型  2.3
    发表于 03-20 11:32

    训练好的神经网络用于应用的时候,权值是不是不能变了?

    训练好的神经网络用于应用的时候,权值是不是不能变了????就是已经训练好的神经网络是不是相当于得到一个公式了,权值不能变了
    发表于 10-24 21:55

    请问Labveiw如何调用matlab训练好的神经网络模型呢?

    我在matlab中训练好了一个神经网络模型,想在labview中调用,请问应该怎么做呢?或者labview有自己的神经网络工具包吗?
    发表于 07-05 17:32

    【PYNQ-Z2申请】基于PYNQ的卷积神经网络加速

    项目名称:基于PYNQ的卷积神经网络加速试用计划:申请理由:本人研究生在读,想要利用PYNQ深入探索卷积神经网络的硬件加速,在PYNQ上实现图像的快速处理项目计划:1、在PC端实现Lnet网络
    发表于 12-19 11:37

    【案例分享】ART神经网络与SOM神经网络

    元,它决定了该输入向量在地位空间中的位置。SOM神经网络训练的目的就是为每个输出层神经元找到合适的权向量,以达到保持拓扑结构的目的。SOM的训练过程其实很
    发表于 07-21 04:30

    简单神经网络的实现

    简单神经网络
    发表于 09-11 11:57

    【AI学习】第3篇--人工神经网络

    `本篇主要介绍:人工神经网络的起源、简单神经网络模型、更多神经网络模型、机器学习的步骤:训练与预测、训练
    发表于 11-05 17:48

    如何移植一个CNN神经网络到FPGA中?

    训练一个神经网络并移植到Lattice FPGA上,通常需要开发人员既要懂软件又要懂数字电路设计,是个不容易的事。好在FPGA厂商为我们提供了许多工具和IP,我们可以在这些工具和IP的基础上做
    发表于 11-26 07:46

    基于光学芯片的神经网络训练解析,不看肯定后悔

    基于光学芯片的神经网络训练解析,不看肯定后悔
    发表于 06-21 06:33

    matlab实现神经网络 精选资料分享

    神经神经网络,对于神经网络的实现是如何一直没有具体实现一下:现看到一个简单神经网络模型用于训练
    发表于 08-18 07:25

    图像预处理和改进神经网络推理的简要介绍

    为提升识别准确率,采用改进神经网络,通过Mnist数据集进行训练。整体处理过程分为两步:图像预处理和改进神经网络推理。图像预处理主要根据图像的特征,将数据处理成规范的格式,而改进神经网络
    发表于 12-23 08:07

    卷积神经网络模型发展及应用

    十余年来快速发展的崭新领域,越来越受到研究者的关注。卷积神经网络(CNN)模型是深度学习模型中最重要的一种经典结构,其性能在近年来深度学习任务上逐步提高。由于可以自动学习样本数据的特征表示,卷积
    发表于 08-02 10:39

    优化神经网络训练方法有哪些?

    优化神经网络训练方法有哪些?
    发表于 09-06 09:52

    如何进行高效的时序图神经网络训练

    现有的图数据规模极大,导致时序图神经网络训练需要格外长的时间,因此使用多GPU进行训练变得成为尤为重要,如何有效地将多GPU用于时序图神经网络训练
    发表于 09-28 10:37