神经网络架构算法介绍【转】-叶周景的博客

[复制链接]

17

主题

0

回帖

5

积分

新手上路

Rank: 1

积分
5
发表于 2019-1-30 22:06:16 | 显示全部楼层 |阅读模式
深圳网广告位招租:点击联系     深圳网广告位招租     深圳网,深圳最好的本地论坛     深圳商铺写字楼二手房     深圳网广告位招租
全民云计算 云主机低至2折
      深度神经网络和深度学习是强大并流行的算法。它们所取得的成功源自于对于神经网络架构的精细设计。      我想在深度学习的环境中重温一下过去几年神经网络设计的历史。
      有关此处讨论的关于神经网络的更为深入的分析和比较,请阅读我们最近的文章。这篇文章中的一个具有代表性的表格如下:

       LeNet5
      卷积神经网络(CNN)推动了深度学习领域的发展,而出现在1994年的LeNet5是最早的CNN之一。Yann LeCun的这项开创性的工作在1988年以来的多次成功迭代之后被命名为LeNet5.
       LeNet5架构是基础性的,尤其是关于图像的特征是分布在整个图像上的洞见和 【具备可学习参数的卷积操作】 【是用少量参数】 在多个区域提取相似特征的有效的方式。那时候还没有使用GPU来辅助训练,并且GPU也很慢。因此能够节省参数和计算是一个关键优势。这与使用单个像素作为单独输入的大规模的多层神经网络的情况正好相反。LeNet5说明了那些做法不应该在第一层使用,因为图像是高度空间相关的,而使用图像的单个像素作为单独的输入特征并不会利用到这些像素空间相关的优势。
     LeNet5的特征可以总结如下:
    卷积神经网络有3层:卷积层、池化层和非线性层。从这篇论文之后,这些方法可能是利用深度学习方法对图片进行处理的关键特征。使用卷积提取空间特征使用了空间平均的子样本使用了tanh或者sigmoid非线性函数多层神经网络(多层感知器MLP)作为最后的分类器层与层之间使用了稀疏连接矩阵以避免大的计算开销总而言之,这项工作是最近许多架构的起源,并且给了在这个领域的人很多灵感。
     The gap
      从1998年到2010年,神经网络正在孕育之中。许多人没有注意到它们慢慢增长的能力,而另一些研究者也进展缓慢。由于手机摄像头和廉价的数码相机的兴起,获得了越来越多的数据。硬件的计算能力也在增长,GPU变得更快,并且变成了一个通用计算工具。这些趋势使得神经网络不断发展,虽然缓慢。数据和计算力使得神经网络处理的问题越来越有趣。并且未来可期...
      Dan Ciresan Net
      在2010年,Dan Claudiu Ciresan 和 Jurgen Schmidhuber发表了GPU神经网络的第一个实现。他们在NVIDIA GTX 280图形处理器上训练了一个将前向传播和反向传播都实现了的9层的神经网络。
      AlexNet
      在2012年,Alex Krizhevsky发布了AlexNet,AlexNet是一个更深更宽的LeNet,并且在很大程度上赢得了困难的ImageNet比赛。
       AlexNet将LeNet的洞见放大了,认为更大的神经网络可以学习到更复杂的对象特征和对象层次。这项工作的主要贡献如下:
       使用了ReLU非线性函数使用了的dropout技术在训练过程中选择性的忽略单个神经元,这是避免模型过拟合的一种方式重叠最大池化,避免平均池化的平均化影响使用GPUNVIDIA GTX 580 来减少训练时间
      那时候GPU提供了远超过CPU的核心,并且带来10倍的训练时间加速,这又促进了使用更大的数据集和更大的图像。
      AlexNet的成功带来了一场小的革命。CNN现在是深度学习的主力,而深度学习变成了“解决有趣的任务的更大的神经网络”新的名字。
      Overfeat
      在2013年12月,Yann LeCun所在的 NYU 实验室提出了Overfeat,这是AlextNet 的衍生物。这篇文章还提出了learning bounding boxes,后来又引发了许多关于同一主题的论文。我认为这种方法更适合于学习segment object 而非artificial bounding boxes。
      VGG
      来自牛津大学的VGG网络最先在卷积层中使用了更小尺寸的 的卷积核,并且将它们组合为一个卷积序列。这个方法似乎与LeNet的原理相反,后者使用大的卷积核来捕捉在图像中的相似的特征。不同于AlextNet的 或 的卷积核,卷积核开始变得更小,很快就要接近LeNet想要避免的 的大小,至少是在第一层快要接近。但是VGG最大的优势是关于多个 卷积核序列可以模拟更大感受野的效果,如 和 . 这些想法也被最近一些网络架构所使用,如Inception和ResNet。
      VGG使用了多个 卷积层来表示复杂的特征。注意到VGG-E的3,4,5构建块: 、 和 大小的卷积核序列多次使用已提取更为复杂的特征和特征的组合。这实际上就像3层 的大分类器,这就是卷积。这显然相当于大量的参数,以及学习能力。但是训练这样的网络是很困难的,所以必须分成更小的网络,而这些网络的层(layer)是一层一层添加的。需要这样做的原因是缺乏强力的方法来对模型进行正则化,或者不知如何来限制由大量参数导致的巨大的搜索空间。
      VGG在许多层都使用了大的特征尺寸,因此在运行时推理时成本很高。减少特征数量,正如Inception bottlenecks中所做的,会节省一些计算开销。
      Network-in-network
     Network-in-network(NiN) 具有使用 卷积来提供更强大的关于卷积层特征组合能力的洞见。
     为了更好地在其它层之前组合特征,NiN架构在每个卷积后使用了洗漱MLP层。再一次可以认为 的卷积违反了LeNet的原则,但是实际上它们有助于以更好的方式组合卷积特征,而这通过简单的堆叠更多的卷积层是不可能做到的。这不同于使用原始像素作为下一层的输入。在这里 的卷积被用来在卷积之后来对特征映射的特征进行空间组合,所以它们能够使用很少的参数,在这些特征的所有像素之间共享。
      MLP的强大功能可以通过将它们组合(combine)成更复杂的组(groups)来极大地提高单个卷积特征的有效性。这些想法在之后的大多数神经网络架构中,如ResNet、Inception和其他衍生。
      NiN也使用了平均池化层作为最后分类器的一部分,这又是之后另一个常见的做法。这样做是为了在分类之前平均网络对多个输入图像的响应。
       GoogLeNet and Inception
       来自谷歌的Christian Szegedy开始寻求旨在减少神经网络计算负担的方法,并设计出了第一个Inception架构的GoogLeNet。到目前为止,2014年秋季,深度学习模型在分类图像内容和视频帧中变得非常有用。许多怀疑论者都认为深度学习和神经网络这次回来了。鉴于这些技术的有效性,向谷歌这样的互联网巨头对于在他们的服务器上有效和大规模部署这些架构。
      Christian 对于减少深度神经网络的计算负担并能获得最好的表现(例如在ImageNet上)思考了很多。或者在同样计算开销的前提下也能获得性能的改善。
      他和他的队伍提出了Inception模块:
       这第一眼看上去基本上是 , 和 大小的卷积核的并行化组合。但是inception模块的非凡的洞见是在昂贵的并行块之前使用了 大小的卷积块来减少特征的数量。这通常被称为“bottleneck”. 这值得使用单独一节来解释:见下面的“bottleneck layer”章。GoogLeNet没有使用inception模块的初始层和类似于NiN的平均池化和softmax分类器。相较于AlexNet和VGG,这个分类器也是只需要非常少量的操作。这对于非常有效的网络设计也有贡献。
      Bottleneck layer
      由NiN得到的灵感,Inception的bottleneck层觉少了特征的数量,因此每一层的操作也相应减少,所以执行推理所花的时间能够保持在一个较低的水平。在将数据传递到昂贵的卷积模块之前,特征的数量减少了4倍。结果就是节省了大量的计算开销,所以最终也导致了这个架构的成功。
     让我们详细研究一下。比如说现在我们有256个输入特征,256个输出特征,并且Inception层只进行 的的卷积。那就是说必须执行 此的卷积操作(589,000s乘法累加或MAC运算)。这也许超过我们在谷歌服务器上0.5ms的计算预算。换一种方式,我们决定减少必须要参与卷积的特征的数量,像是64或者 。这样,我们首先执行 的卷积,然后在所有的Inception分支上执行64次卷积,然后对来自 的特征再次执行 的卷积。这些操作如下:
      现在只需要70,000操作,而之前我们需要执行600,000次操作。几乎减少了10倍的操作。
      虽然我们减少了操作,并没有损失这层的泛化能力(losing generality)。实际上,bottleneck层被证明在诸如ImageNet的数据集上具有最好的表现,在之后像ResNet的架构中也使用了bottleneck层。
       bottleneck成功的原因是输入的特征是相关的,因此使用 的卷积操作来将这些特征进行合适的组合可以去除冗余。之后经过具有更少数量特征的卷积层,对于下一层而言,它们可以再次扩展为更有意思的组合。
      Inception V3 (and V2)
      Christian和他的团队是非常有效率的研究者。在2015年2月, Batch-normalized Inception 被引入为Inception V2。Batch-normalization 在每一层的输出计算所有特征图的平均以及标准差,并且使用这些值来对它们的响应进行规范化。这相当于对数据进行“白化”,因此使得所有的神经映射的响应值都有相同范围,并且平均值为0。这有助于训练,因为下一层不需要学习输入数据的偏置,因此能够聚焦于如何最好的组合这些特征。更多详情请阅读
      baijiahao.baidu.com/s?id=1610909412547726886&wfr=spider&for=pc&isFailFlag=1
免责声明:深圳网不承担任何由内容提供商提供的信息所引起的争议和法律责任! 本文地址:https://www.szaima.com/thread-283656-1-1.html 上一篇:   STEP1:首先在眼睫毛根部的位置, 下一篇:  眼线液笔的握法——眼线液与握铅笔的方法是一样

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 提醒:请严格遵守本站规则,禁止广告!否则封号处理!!

关闭

站长推荐上一条 /2 下一条

深圳网广告位招租
广告位招租
广告位招租
快速回复 返回顶部 返回列表