【神经网络】怎样设计最优的卷积神经网络架构?卷积神经网络的训练过程

2019 年 8 月 8 日 产业智能官


怎样设计最优的卷积神经网络架构?| NAS原理剖析

原创: 磐石001 磐创AI 

来源 | Medium

译者 | 磐石001

虽然,深度学习在近几年发展迅速。但是,关于如何才能设计出最优的卷积神经网络架构这个问题仍在处于探索阶段。

其中一大部分原因是因为当前那些取得成功的神经网络的架构设计原理仍然是一个黑盒。虽然我们有着关于改进神经网络表现的丰富心得,但其实并没有真正了解神经网络是如何达到当前这么优秀的表现。

关于CNNs的一些线索

我们从如下几点开始剖析。近期研究提供了一些具体地证据证明这几点确实可以用来提升CNN的表现:

  • 增加图像分辨率

  • 增加网络深度

  • 增加网络宽度

  • 增加跳过连接(密集块或残差块)

经验表明,以上几种方式是使得CNN之所以取得最优结果的关键。增加图像的分辨率可以“喂养”网络更多的信息去学习;增加网络宽度与深度使网络学习到更多的参数。另外,增加“跳过连接”可以增加网络的复杂性,从而增强网络的表征能力。

密集连接块(DenseNet)

一个宽网络上的跳过连接(ResNext)

神经架构搜索

NAS是一种寻找最优神经网络架构的算法。绝大多数NAS算法工作原理类似。

首先,定义一组适用于我们网络的“构建块”。然后,尝试以不同的方式组合这些“构建快”进行训练。通过这种试错方式,NAS算法最终能够确定哪一种“构建快”与哪一种网络配置可以得到最优结果。

事实证明,这种方法行得通且可以找到最优的预测效果。如NASNet的论文中所示,可以组合出一些奇怪的结构。如下:

通过NAS算法发现的NASNEt块

这也正是NAS的伟大之处之一,可以让我们发现一些之前还未探索过的网络结构。

然而,它也有自己的局限性。由于其从一组固定的“构建快”开始采样和进行组合,所以我们将不能通过此算法发现新的构建块。跳过连接也是如此,NASNet只允许含有一次下采样的跳过连接,但其他类型的连接也同样值得尝试。

Facebook的人工智能研究团队通过“随机连接神经网络(randomly wired neural networks)”对NAS进行新的尝试。它们的动机是:如果“架构搜索”在固定的块和连接上表现得很好,那么在更大的搜索空间下(例如:随机连接)将会产生一些更优的配置。

随机连接神经网络

由于论文作者想要专门研究神经网络的连接方式,所以他们对网络结构做了如下限制:

  • 网络输入尺寸为224x224

  • 网络块始终为ReLU-Conv-BatchNorm三项组形式。且三项组中的卷积都是参考自Xception结构中使用的3x3可分离卷积。

  • 多组张量的聚合(例如当跳过连接与原连接进行聚合时)均以加权和的方式进行聚合。这些权重具有可学习性与可持续更新性。

  • 网络组成总是保持一致。一般的CNN结构是由多个卷积块组成,然后通过多次向下采样,直到最终的softmax分类层。这也已经成为网络设计的标准。在这些研究实验中均采用了这种范式。

    通用CNN结构范式

ImageNet竞赛的标准输入尺寸为224x224--ImageNet数据集被用来作为一个基线数据集来检验“手工网络”(NAS算法生成的网络架构)的性能。ReLU-Conv-BatchNorm三项组块也很常见,而且已经被广泛证明成为了可以为深度卷积神经网络带来最优的效果。

张量聚合的方式不止一种,很多优异的网络在没有进行加权的情况下直接进行求和或连结--但不会对性能造成较大的影响。上述表格中描述的这些过去常用的网络结构同样也用在了ResNets,DenseNets和NASNets中。

注意,这并不是一个完全的随机神经网络。它并不是完全从零开始随机化。而是在其他组件保持不变的情况下,针对CNN设计过程中一个被称为“连接(wiring)”的单一组件进行探索。

作者试图让读者明白的一个重要观点--他们还没有实现完全意义的随机化神经网络,但正开始对组件搜索空间一步一步的进行深入的探索。

在这些约束条件下,各种经典的随机模型图被用来生成网络的随机连接。

一些随机连接网络结构

随机网络打开了深度学习探索的大门

本研究的意义在于其探索性思想:拓展NAS算法的搜索空间,寻找新的、更好的网络设计。虽然研究人员已经发现了一些很棒的设计,但是以手动尝试的方式遍历整个搜索空间实际上是不可行的。

这也扩展到了另一观点:如果我们要扩展搜索空间,我们需要一种擅长搜索的算法(在本例中用的是网络生成器),。这种算法必须知道要寻找什么,或者至少类似梯度下降优化算法有着通过设计向优化方向靠拢的趋势。

架构搜索是深度学习研究的下一个前沿领域。它使我们可以使用算法来发现最优的网络架构,而不是反复进行试验。

目前,在搜索其他组件(在本例中是“连接方式”)时修复一些网络组件已经成为可能。这将问题简化为更容易处理的小问题。由于这是我们发现新颖架构的唯一方法,NAS算法应该具备一定程度的随机性。

下一步是进一步扩展搜索空间和增情搜索算法的随机性。这意味着随机搜索思想将扩展到网络中越来越多的组件上,直到全部网络组件均可以被算法自动设计好为止。

当实现完全意义的NAS时会发生什么?它会选择像2x4这样的非平方卷积吗?它会使用反馈循环吗?网络变得更简单还是更复杂?

神经架构搜索是一个令人兴奋的新兴研究领域。希望搜索算法变得更加具有随机性从而实现利用随机化的方式发现创造性的、以前从未想到过的架构。




卷积神经网络的训练过程

卷积神经网络的训练过程分为两个阶段。 第一个阶段是数据由低层次向高层次传播的阶段,即前向传播阶段。 另外一个阶段是,当前向传播得出的结果与预期不相符时,将误差从高层次向底层次进行传播训练的阶段,即反向传播阶段。
训练过程如图4-1所示。
训练过程为:


  • 网络进行权值的初始化;
  • 输入数据经过卷积层、下采样层、全连接层的向前传播得到输出值;
  • 求出网络的输出值与目标值之间的误差;
  • 当误差大于我们的期望值时,将误差传回网络中,依次求得全连接层,下采样层,卷积层的误差。 各层的误差可以理解为对于网络的总误差,网络应承担多少; 当误差等于或小于我们的期望值时,结束训练。
  • 根据求得误差进行权值更新。然后在进入到第二步。


图4-1卷积神经网络的训练过程
1.1 卷积神经网络的前向传播过程
在前向传播过程中,输入的图形数据经过多层卷积层的卷积和池化处理,提出特征向量,将特征向量传入全连接层中,得出分类识别的结果。 当输出的结果与我们的期望值相符时,输出结果。
1.1.1 卷积层的向前传播过程
卷积层的向前传播过程是,通过卷积核对输入数据进行卷积操作得到卷积操作。 数据在实际的网络中的计算过程,我们以图3-4为例,介绍卷积层的向前传播过程。 其中一个输入为15个神经元的图片,卷积核为2×2×1的网络,即卷积核的权值为W1,W2,W3,W4。 那么卷积核对于输入数据的卷积过程,如下图4-2所示。 卷积核采用步长为1的卷积方式,卷积整个输入图片,形成了局部感受野,然后与其进行卷积算法,即权值矩阵与图片的特征值进行加权和(再加上一个偏置量),然后通过激活函数得到输出。
图4-2图片深度为1,卷积层的向前传播过程
而在图3-4中,图片深度为2时,卷积层的向前传播过程如图4-3所示。 输入的图片的深度为4×4×2,卷积核为2×2×2,向前传播过程为,求得第一层的数据与卷积核的第一层的权值的加权和,然后再求得第二层的数据与卷积核的第二层的权值的加权和,两层的加权和相加得到网络的输出。



图4-3图片深度为2,卷积层的向前传播过程
1.1.2 下采样层的向前传播过程
上一层(卷积层)提取的特征作为输入传到下采样层,通过下采样层的池化操作,降低数据的维度,可以避免过拟合。 如图4-4中为常见的池化方式示意。 最大池化方法也就是选取特征图中的最大值。 均值池化则是求出特征图的平均值。 随机池化方法则是先求出所有的特征值出现在该特征图中的概率,然后在来随机选取其中的一个概率作为该特征图的特征值,其中概率越大的选择的几率越大。


图4-4池化操作示意图


1.1.3 全连接层的向前传播过程
特征图进过卷积层和下采样层的特征提取之后,将提取出来的特征传到全连接层中,通过全连接层,进行分类,获得分类模型,得到最后的结果。 图4-5为一个三层的全连接层。 假设卷积神经网络中,传入全连接层的特征为x1,x2。 则其在全连接层中的向前传播过程如图4-5所示。 第一层全连接层有3个神经元y1,y2,y3。 这三个节点的权值矩阵为W,其中b1,b2,b3分别为节点y1,y2,y3的偏置量。 可以看出,在全连接层中,参数的个数=全连接层中节点的个数×输入的特征的个数+节点的个数(偏置量)。 其向前传递过程具体如图所示,得到输出矩阵后,经过激励函数f(y)的激活,传入下一层。
图4-5全连接层的向前传播过程
1.2 卷积神经网络的反向传播过程
当卷积神经网络输出的结果与我们的期望值不相符时,则进行反向传播过程。 求出结果与期望值的误差,再将误差一层一层的返回,计算出每一层的误差,然后进行权值更新。 该过程的主要目的是通过训练样本和期望值来调整网络权值。 误差的传递过程可以这样来理解,首先,数据从输入层到输出层,期间经过了卷积层,下采样层,全连接层,而数据在各层之间传递的过程中难免会造成数据的损失,则也就导致了误差的产生。 而每一层造成的误差值是不一样的,所以当我们求出网络的总误差之后,需要将误差传入网络中,求得该各层对于总的误差应该承担多少比重。
反向传播的训练过程的第一步为计算出网络总的误差: 求出输出层n的输出a(n)与目标值y之间为误差。
计算公式为:
其中,为激励函数的导函数的值。
1.2.1 全连接层之间的误差传递
求出网络的总差之后,进行反向传播过程,将误差传入输出层的上一层全连接层,求出在该层中,产生了多少误差。 而网络的误差又是由组成该网络的神经元所造成的,所以我们要求出每个神经元在网络中的误差。 求上一层的误差,需要找出上一层中哪些节点与该输出层连接,然后用误差乘以节点的权值,求得每个节点的误差,具体如图所示:
图4-6 全连接层中误差的传递过程
1.2.2 当前层为下采样层,求上一层的误差
在下采样层中,根据采用的池化方法,把误差传入到上一层。 下采样层如果采用的是最大池化(max-pooling)的方法,则直接把误差传到上一层连接的节点中。 果采用的是均值池化(mean pooling)的方法,误差则是均匀的分布到上一层的网络中。 另外在下采样层中,是不需要进行权值更新的,只需要正确的传递所有的误差到上一层。
1.2.3 当前层为卷积层,求上一层的误差
卷积层中采用的是局部连接的方式,和全连接层的误差传递方式不同,在卷积层中,误差的传递也是依靠卷积核进行传递的。 在误差传递的过程,我们需要通过卷积核找到卷积层和上一层的连接节点。 求卷积层的上一层的误差的过程为: 先对卷积层误差进行一层全零填充,然后将卷积层进行一百八十度旋转,再用旋转后的卷积核卷积填充过程的误差矩阵,并得到了上一层的误差。 如图4-7为卷积层的误差传递过程。 图右上方为卷积层的向前卷积过程,而右下方为卷积层的误差传递过程。 从图中可以看出,误差的卷积过程正好是沿着向前传播的过程,将误差传到了上一层。
图4-7卷积层的误差传递过程
1.3 卷积神经网络的权值更新
1.3.1 卷积层的权值更新
卷积层的误差更新过程为: 将误差矩阵当做卷积核,卷积输入的特征图,并得到了权值的偏差矩阵,然后与原先的卷积核的权值相加,并得到了更新后的卷积核。 如图4-8,图中可以看出,该卷积方式的权值连接正好和向前传播中权值的连接是一致的。
图4-8卷积核的权值更新过程
1.3.2 全连接层的权值更新过程


全连接层中的权值更新过程为:

  • 求出权值的偏导数值:学习速率乘以激励函数的倒数乘以输入值;

  • 原先的权值加上偏导值,得到新的权值矩阵。具体的过程如图4-9所示(图中的激活函数为Sigmoid函数)。


图4-9全连接层的权值更新过程


本文转自:博客园 - 元墨,转载此文目的在于传递更多信息,版权归原作者所有。


原文链接:https://www.cnblogs.com/hesi/p/9013328.html


先进制造业+工业互联网




产业智能官  AI-CPS


加入知识星球“产业智能研究院”:先进制造业OT(自动化+机器人+工艺+精益)和工业互联网IT(云计算+大数据+物联网+区块链+人工智能)产业智能化技术深度融合,在场景中构建状态感知-实时分析-自主决策-精准执行-学习提升的产业智能化平台;实现产业转型升级、DT驱动业务、价值创新创造的产业互联生态链。


产业智能化平台作为第四次工业革命的核心驱动力,将进一步释放历次科技革命和产业变革积蓄的巨大能量,并创造新的强大引擎; 重构设计、生产、物流、服务等经济活动各环节,形成从宏观到微观各领域的智能化新需求,催生 新技术、新产品、新产业、新业态和新模式; 引发经济结构重大变革,深刻改变人类生产生活方式和思维模式,实现社会生产力的整体跃升。

产业智能化技术分支用来的今天,制造业者必须了解如何将“智能技术”全面渗入整个公司、产品、业务等商业场景中, 利用工业互联网形成数字化、网络化和智能化力量,实现行业的重新布局、企业的重新构建和焕然新生。

版权声明产业智能官(ID:AI-CPS推荐的文章,除非确实无法确认,我们都会注明作者和来源,涉权烦请联系协商解决,联系、投稿邮箱:erp_vip@hotmail.com。




登录查看更多
6

相关内容

在数学(特别是功能分析)中,卷积是对两个函数(f和g)的数学运算,产生三个函数,表示第一个函数的形状如何被另一个函数修改。 卷积一词既指结果函数,又指计算结果的过程。 它定义为两个函数的乘积在一个函数反转和移位后的积分。 并针对所有shift值评估积分,从而生成卷积函数。
[ICML-Google]先宽后窄:对深度薄网络的有效训练
专知会员服务
34+阅读 · 2020年7月5日
专知会员服务
73+阅读 · 2020年5月21日
【CVPR2020-港中文】 图像识别中的自注意力探索
专知会员服务
55+阅读 · 2020年4月29日
CVPR2020 | 商汤-港中文等提出PV-RCNN:3D目标检测新网络
专知会员服务
43+阅读 · 2020年4月17日
【Google】利用AUTOML实现加速感知神经网络设计
专知会员服务
29+阅读 · 2020年3月5日
麻省理工学院MIT-ICLR2020《神经网络能推断出什么?》
专知会员服务
50+阅读 · 2020年2月19日
模型压缩究竟在做什么?我们真的需要模型压缩么?
专知会员服务
27+阅读 · 2020年1月16日
图像分类:常用分类网络结构(附论文下载)
极市平台
13+阅读 · 2019年4月8日
深度剖析卷积神经网络
云栖社区
7+阅读 · 2018年5月27日
关于CNN图像分类的一份综合设计指南
云栖社区
10+阅读 · 2018年5月15日
卷积神经网络的最佳解释!
专知
12+阅读 · 2018年5月1日
机器学习必知的8大神经网络架构
七月在线实验室
7+阅读 · 2018年4月26日
全连接网络到卷积神经网络逐步推导
炼数成金订阅号
7+阅读 · 2018年4月25日
从零开始:教你如何训练神经网络
机器之心
5+阅读 · 2017年12月11日
变种神经网络的典型代表:深度残差网络
机器学习研究会
9+阅读 · 2017年10月20日
Arxiv
6+阅读 · 2019年3月19日
Arxiv
25+阅读 · 2018年1月24日
Arxiv
8+阅读 · 2018年1月19日
VIP会员
相关资讯
图像分类:常用分类网络结构(附论文下载)
极市平台
13+阅读 · 2019年4月8日
深度剖析卷积神经网络
云栖社区
7+阅读 · 2018年5月27日
关于CNN图像分类的一份综合设计指南
云栖社区
10+阅读 · 2018年5月15日
卷积神经网络的最佳解释!
专知
12+阅读 · 2018年5月1日
机器学习必知的8大神经网络架构
七月在线实验室
7+阅读 · 2018年4月26日
全连接网络到卷积神经网络逐步推导
炼数成金订阅号
7+阅读 · 2018年4月25日
从零开始:教你如何训练神经网络
机器之心
5+阅读 · 2017年12月11日
变种神经网络的典型代表:深度残差网络
机器学习研究会
9+阅读 · 2017年10月20日
Top
微信扫码咨询专知VIP会员