您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    改进卷积神经网络,你需要这14种设计模式
    时间:2017-04-18 13:26 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    深度学习领域近来已经发展出大量的新架构,而如何选择使用这些新架构提升卷积神经网络的性能就显得越发重要了。机器之心之前报道过提交 ICLR 2017 的论文: 解析深度卷积神经网络的14种设计模式 也正是关注于此。而本文在描述14种设计模式之余更加注重于阐述构建和训练卷积网络的小技巧。

    自从 2011 年深度卷积神经网络(CNN)在图像分类任务中优于人类开始,它们就成为了计算机视觉任务中的行业标准,这些任务包括图像分割、目标检测、场景标记、跟踪以及文本检测等等。

    然而,训练神经网络的技巧并不容易掌握。与之前的机器学习方法一样,细节是最恐怖的地方,然而在卷积神经网络中有更多的细节需要去管理:你所用的数据和硬件的限制是什么?你应该以哪种网络作为开始呢?AlexNet、VGG、GoogLeNet 还是 ResNet 呢?甚至 ResNet 里面还有 ResNet 分支选项。你应当建立多少与卷积层相对应的密集层?你使用哪种激活函数?即使你选择了广为流行的 ReLU,你也还要选择是不是使用普通的 ReLU、Very Leaky ReLU、RReLU、PReLU 或通用版本的 ELU。

    最难优化的参数之一就是学习率(learning rate),它是调节神经网络训练的最重要的超参数。学习率太小,可能导致你永远不会收敛到一个解决方案,学习率太大,可能导致你刚好跳过了最优解。即便是适应性学习率的方法,也可能在计算上过于昂贵,这取决于你的硬件资源。

    设计的选择和超参数的设定会严重地影响 CNN 的训练和表现,然而对于刚进入深度学习领域的人而言,建立一种设计架构的直觉所需要的资源是稀缺的,而且是分散的。

    改进卷积神经网络,你需要这14种设计模式

    每个人都知道 VGG 是缓慢而庞大的,但是,倘若你正确地调节它,你仍然可以生成最先进的结果以及高性能的商用应用。图片来源:Canziani, et al

    着重于实际调节的主要书籍是《神经网络:权衡技巧(Neural Networks: Tricks Of The Trade)》,作者:Orr & Muller,最初出版于 2003 年,再版于 2012 年。关于深度学习的热潮始于 2012 年《纽约时报》报导的 Geoffrey Hinton 的团队在 Merck Drug Discovery Challenge 上的惊人成功,所以最近几年先进的研究是缺失的。

    幸运的是,美国海军研究室的研究员 Leslie Smit 等人已经发表了关于卷积神经网络架构改进和技术提升的系统性研究。下面列举一些他所强调的最重要的一些设计模式。

    关于图像分类的卷积神经网络设计模式

    根据 Smith 的观点,这「14 种原创设计模式可以帮助没有经验的研究者去尝试将深度学习与各种新应用相结合」。尽管高级人工智能研究员可以依靠直觉、经验以及针对性的实验,但这些建议对于剩下的没有机器学习博士学位的人来说是一个很好的起点。

    1)架构要遵循应用

    你也许会被 Google Brain 或者 DeepMind 这些奇特的实验室所发明的那些耀眼的新模型所吸引,但是其中许多在你的用例或者业务环境中要么是不可能实现,要么是实现起来非常不现实。你应该使用对你的特定应用最有意义的模型,这种模型或许比较简单,但是仍然很强大,例如 VGG。

    改进卷积神经网络,你需要这14种设计模式

    较新的架构可能在学术性的基准测试上会更加准确,但是你应该选择你自己理解的并且最适合你的应用的架构。图片来源:Canziani 等。

    2)网络路径的激增

    每年的 ImageNet Challenge 的冠军都会使用比上一届冠军更加深层的网络。从 AlexNet 到 Inception,再到 ResNet,Smith 注意到了「网络中路径数量倍增」的趋势,并且「ResNet 可以是不同长度的网络的指数集合」。

    3)争取简单

    然而,更大的并不一定是更好的。在名为「Bigger is not necessarily better」的论文中,Springenberg 等人演示了如何用更少的单元实现最先进的结果。参考:https://arxiv.org/pdf/1412.6806.pdf

    4)增加对称性

    无论是在建筑上,还是在生物上,对称性被认为是质量和工艺的标志。Smith 将 FractalNet 的优雅归功于网络的对称性。

    5)金字塔式的形状

    你也许经常在表征能力和减少冗余或者无用信息之间权衡。卷积神经网络通常会降低激活函数的采样,并会增加从输入层到最终层之间的连接通道。

    6)过度训练

    另一个权衡是训练准确度和泛化能力。用类似 drop-out 或者 drop-path 的方法进行正则化可以提高泛化能力,这是神经网络的重要优势。请在比你的实际用例更加苛刻的问题下训练你的网络,以提高泛化性能。

    7)全面覆盖问题空间

    为了扩展你的训练数据和提升泛化能力,请使用噪声和数据增强,例如随机旋转、裁剪和一些图像操作。

    8)递增的特征构造

    随着网络结构越来越成功,它们进一部简化了每一层的「工作」。在非常深层的神经网络中,每一层仅仅会递增的修改输入。在 ResNets 中,每一层的输出和它的输入时很相似的,这意味着将两层加起来就是递增。实践中,请在 ResNet 中使用较短的跳变长度。

    9)标准化层的输入

    标准化是另一个可以使计算层的工作变得更加容易的方法,在实践中被证明可以提升训练和准确率。批量标准化(batch normalization)的发明者认为原因在于处理内部的协变量,但是 Smith 认为,「标准化把所有层的输入样本放在了一个平等的基础上(类似于一种单位转换),这允许反向传播可以更有效地训练」。

    10)输入变换

    研究表明,在 Wide ResNets 中,性能会随着连接通道的增加而增强,但是你需要权衡训练代价与准确度。AlexNet、VGG、Inception 和 ResNets 都在第一层使用了输入变换以让输入数据能够以多种方式被检查。

    11)可用的资源决指引着层的宽度

    然而,可供选择的输出数量并不是显而易见的,这依赖于你的硬件能力以及期望的准确度。

    12)Summation Joining

    (责任编辑:admin)