Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

Asifullah Khan 等作者王淑婷 姜悦编译

7大类深度CNN架构创新综述

深度卷积神经网络(CNN)是一种特殊类型的神经网络,在各种竞赛基准上表现出了当前最优结果。深度 CNN 架构在挑战性基准任务比赛中实现的高性能表明,创新的架构理念以及参数优化可以提高 CNN 在各种视觉相关任务上的性能。本综述将最近的 CNN 架构创新分为七个不同的类别,分别基于空间利用、深度、多路径、宽度、特征图利用、通道提升和注意力。

引言

通过 1989 年 LeCun 处理网格状拓扑数据(图像和时间系列数据)的研究,CNN 首次受到关注。CNN 被视为理解图像内容的最好技术之一,并且在图像识别、分割、检测和检索相关任务上表现出了当前最佳性能。CNN 的成功引起了学界外的注意。在产业界,如谷歌、微软、AT&T、NEC 和 Facebook 这样的公司都设立了研究团队来探索 CNN 的新架构。目前,图像处理竞赛中的大多数领跑者都会采用基于深度 CNN 的模型。

自 2012 年以来,关于 CNN 架构的不同创新被提出来。这些创新可分为参数优化、正则化、结构重组等。但是据观察,CNN 网络的性能提升应主要归功于处理单元的重构和新模块的设计。自 AlexNet 在 ImageNet 数据集上展现出了非凡的性能后,基于 CNN 的应用变得越来越普及。类似地,Zeiler 和 Fergus 介绍了特征分层可视化的概念,这改变了用深度架构(如 VGG)在简单的低空间分辨率中提取特征的趋势。如今,大多数新架构都是基于 VGG 引入的简单原则和同质化拓扑构建的。

另一方面,谷歌团队引入了一个非常著名的关于拆分、转换和合并的概念,称为 Inception 模块。初始块第一次使用了层内分支的概念,允许在不同空间尺度上提取特征。2015 年,为了训练深度 CNN,Resnet 引入的残差连接概念变得很有名,并且,后来的大多数网络像 Inception-ResNet,WideResNet,ResNext 等都在使用它。与此类似,一些像 WideResnet、Pyramidal Nets、Xception 这样的架构都引入了多层转换的概念,通过额外的基数和增加的宽度来实现。因此,研究的重点从参数优化和连接再次调整,转向了网络架构设计(层结构)。这引发了许多像通道提升、空间和通道利用、基于注意力的信息处理等新的架构概念。

本文结构如下:

图 1:文章结构

图 2:典型模式识别(OR)系统的基本布局。PR 系统分为三个阶段:阶段 1 和数据挖掘相关,阶段 2 执行预处理和特征选择,而阶段 3 基于模型选择、调参和分析。CNN 有良好的特征提取能力和强大的鉴别能力,因此在一个 PR 系统中,它可以用于特征提取/生成和模型选择阶段。

4 CNN 中的架构创新

自 1989 年至今,CNN 架构已经有了很多不同的改进。CNN 中的所有创新都是通过深度和空间相结合实现的。根据架构修改的类型,CNN 可以大致分为 7 类:基于空间利用、深度、多路径、宽度、通道提升、特征图利用和注意力的 CNN。深度 CNN 架构的分类如图 3 所示。

图 3:深度 CNN 架构分类

4.1 基于空间利用的 CNN

CNN 有大量参数,如处理单元数量(神经元)、层数、滤波器大小、步幅、学习率激活函数等。由于 CNN 考虑输入像素的邻域(局部性),可以使用不同大小的滤波器来探索不同级别的相关性。因此,在 2000 年初,研究人员利用空间变换来提升性能,此外,还评估了不同大小的滤波器对网络学习率的影响。不同大小的滤波器封装不同级别的粒度;通常,较小的滤波器提取细粒度信息,而较大的滤波器提取粗粒度信息。这样,通过调整滤波器大小,CNN 可以在粗粒度和细粒度的细节上都表现很好。

4.2 基于深度的 CNN

深度 CNN 架构基于这样一种假设:随着深度的增加,网络可以通过大量非线性映射和改进的特征表示更好地逼近目标函数。网络深度在监督学习的成功中起了重要作用。理论研究已表明,深度网络能够以指数方式比浅层网络更有效地表示特定的 20 个函数类型。2001 年,Csáji 表示了通用近似定理,指出单个隐藏层足够逼近任何函数,但这需要指数级的神经元,因而通常导致计算上行不通。在这方面,Bengio 和 elalleau 认为更深的网络有潜力在更少的成本下保持网络的表现能力。2013 年,Bengio 等人通过 实证表明,对于复杂的任务,深度网络在计算和统计上都更有效。在 2014-ILSVR 竞赛中表现最佳的 Inception 和 VGG 则进一步说明,深度是调节网络学习能力的重要维度。

一旦特征被提取,只要其相对于其他位置的近似位置被保留,其提取位置就变得没那么重要了。池化或下采样(如卷积)是一种有趣的局部操作。它总结了感受野附近的类似信息,并输出了该局部区域内的主要反应。作为卷积运算的输出结果,特征图案可能会出现在图像中的不同位置。

4.3 基于多路径的 CNN

深度网络的训练颇具挑战性,这也是近来很多深度网络研究的主题。深度 CNN 为复杂任务提供了高效的计算和统计。但是,更深的网络可能会遭遇性能下降或梯度消失/爆炸的问题,而这通常是由增加深度而非过拟合造成的。梯度消失问题不仅会导致更高的测试误差,还会导致更高的训练误差。为了训练更深的网络,多路径或跨层连接的概念被提出。多路径或捷径连接可以通过跳过一些中间层,系统地将一层连接到另一层,以使特定的信息流跨过层。跨层连接将网络划分为几块。这些路径也尝试通过使较低层访问梯度来解决梯度消失问题。为此,使用了不同类型的捷径连接,如零填充、基于投影、dropout 和 1x1 连接等。

激活函数是一种决策函数,有助于学习复杂的模式。选择适当的激活函数可以加速学习过程。卷积特征图的激活函数定义为等式(3)。

4.4 基于宽度的多连接 CNN

2012 至 2015 年,网络架构的重点是深度的力量,以及多通道监管连接在网络正则化中的重要性。然而,网络的宽度和深度一样重要。通过在一层之内并行使用多处理单元,多层感知机获得了在感知机上映射复杂函数的优势。这表明宽度和深度一样是定义学习原则的一个重要参数。Lu 等人和 Hanin & Sellke 最近表明,带有线性整流激活函数神经网络要足够宽才能随着深度增加保持通用的近似特性。并且,如果网络的最大宽度不大于输入维度,紧致集上的连续函数类无法被任意深度的网络很好地近似。因此,多层堆叠(增加层)可能不会增加神经网络的表征能力。与深度架构相关的一个重要问题是,有些层或处理单元可能无法学习有用的特征。为了解决这一问题,研究的重点从深度和较窄的架构转移到了较浅和较宽的架构上。

4.5 基于特征图(通道特征图)开发的 CNN

CNN 因其分层学习和自动特征提取能力而闻名于 MV 任务中。特征选择在决定分类、分割和检测模块的性能上起着重要作用。传统特征提取技术中分类模块的性能要受限于特征的单一性。相较于传统技术,CNN 使用多阶段特征提取,根据分配的输入来提取不同类型的特征(CNN 中称之为特征图)。但是,一些特征图有很少或者几乎没有目标鉴别作用。巨大的特征集有噪声效应,会导致网络过拟合。这表明,除了网络工程外,特定类别特征图的选取对改进网络的泛化性能至关重要。在这一部分,特征图和通道会交替使用,因为很多研究者已经用通道这个词代替了特征图。

4.6. 基于通道(输入通道)利用的 CNN

图像表征在决定图像处理算法的性能方面起着重要作用。图像的良好表征可以定义来自紧凑代码的图像的突出特征。在不同的研究中,不同类型的传统滤波器被用来提取单一类型图像的不同级别信息。这些不同的表征被用作模型的输入,以提高性能。CNN 是一个很好的特征学习器,它能根据问题自动提取鉴别特征。但是,CNN 的学习依赖于输入表征。如果输入中缺乏多样性和类别定义信息,CNN 作为鉴别器的性能就会受到影响。为此,辅助学习器的概念被引入到 CNN 中来提升网络的输入表征。

4.7 基于注意力的 CNN

不同的抽象级别在定义神经网络的鉴别能力方面有着重要的作用。除此之外,选择与上下文相关的特征对于图像定位和识别也很重要。在人类的视觉系统中,这种现象叫做注意力。人类在一次又一次的匆匆一瞥中观察场景并注意与上下文相关的部分。在这个过程中,人类不仅注意选择的区域,而且推理出关于那个位置的物体的不同解释。因此,它有助于人类以更好的方式来抓取视觉结构。类似的解释能力被添加到像 RNN 和 LSTM 这样的神经网络中。上述网络利用注意力模块来生成序列数据,并且根据新样本在先前迭代中的出现来对其加权。不同的研究者把注意力概念加入到 CNN 中来改进表征和克服数据的计算限制问题。注意力概念有助于让 CNN 变得更加智能,使其在杂乱的背景和复杂的场景中也能识别物体。

论文:A Survey of the Recent Architectures of Deep Convolutional Neural Networks 

论文地址:https://arxiv.org/abs/1901.06032

摘要:深度卷积神经网络(CNN)是一种特殊类型的神经网络,在各种竞赛基准上表现出了当前最优结果。深度 CNN 的超强学习能力主要是通过使用多个非线性特征提取阶段实现的,这些阶段能够从数据中自动学习分层表征。大量数据的可用性和硬件处理单元的改进加速了 CNN 的研究,最近也报道了非常有趣的深度 CNN 架构。近来,深度 CNN 架构在挑战性基准任务比赛中实现的高性能表明,创新的架构理念以及参数优化可以提高 CNN 在各种视觉相关任务上的性能。鉴于此,关于 CNN 设计的不同想法被探索出来,如使用不同的激活函数损失函数参数优化、正则化以及处理单元的重构。然而,在表征能力方面的主要改进是通过重构处理单元来实现的。尤其是,使用块而不是层来作为结构单元的想法获得了极大的赞赏。本综述将最近的 CNN 架构创新分为七个不同的类别。这七个类别分别基于空间利用、深度、多路径、宽度、特征图利用、通道提升和注意力。此外,本文还涵盖了对 CNN 组成部分的基本理解,并揭示了 CNN 目前面临的挑战及其应用。

理论卷积神经网络神经网络架构注意力机制
13
相关数据
Microsoft机构

微软是美国一家跨国计算机科技公司,以研发、制造、授权和提供广泛的计算机软件服务为主。总部位于美国华盛顿州的雷德蒙德,最为著名和畅销的产品为Microsoft Windows操作系统和Microsoft Office办公室软件,以及Xbox的游戏业务。微软是美国《财富》杂志2015年评选的世界500强企业排行榜中的第95名。

https://www.microsoft.com/en-us/about
池化技术

池化(Pooling)是卷积神经网络中的一个重要的概念,它实际上是一种形式的降采样。有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见的。它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。直觉上,这种机制能够有效的原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。通常来说,CNN的卷积层之间都会周期性地插入池化层。

激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

重构技术

代码重构(英语:Code refactoring)指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果。 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。

VGG技术

2014年,牛津大学提出了另一种深度卷积网络VGG-Net,它相比于AlexNet有更小的卷积核和更深的层级。AlexNet前面几层用了11×11和5×5的卷积核以在图像上获取更大的感受野,而VGG采用更小的卷积核与更深的网络提升参数效率。VGG-Net 的泛化性能较好,常用于图像特征的抽取目标检测候选框生成等。VGG最大的问题就在于参数数量,VGG-19基本上是参数量最多的卷积网络架构。VGG-Net的参数主要出现在后面两个全连接层,每一层都有4096个神经元,可想而至这之间的参数会有多么庞大。

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

学习率技术

在使用不同优化器(例如随机梯度下降,Adam)神经网络相关训练中,学习速率作为一个超参数控制了权重更新的幅度,以及训练的速度和精度。学习速率太大容易导致目标(代价)函数波动较大从而难以找到最优,而弱学习速率设置太小,则会导致收敛过慢耗时太长

模式识别技术

模式识别(英语:Pattern recognition),就是通过计算机用数学技术方法来研究模式的自动处理和判读。 我们把环境与客体统称为“模式”。 随着计算机技术的发展,人类有可能研究复杂的信息处理过程。 信息处理过程的一个重要形式是生命体对环境及客体的识别。其概念与数据挖掘、机器学习类似。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

数据挖掘技术

数据挖掘(英语:data mining)是一个跨学科的计算机科学分支 它是用人工智能、机器学习、统计学和数据库的交叉方法在相對較大型的数据集中发现模式的计算过程。 数据挖掘过程的总体目标是从一个数据集中提取信息,并将其转换成可理解的结构,以进一步使用。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

目标函数技术

目标函数f(x)就是用设计变量来表示的所追求的目标形式,所以目标函数就是设计变量的函数,是一个标量。从工程意义讲,目标函数是系统的性能标准,比如,一个结构的最轻重量、最低造价、最合理形式;一件产品的最短生产时间、最小能量消耗;一个实验的最佳配方等等,建立目标函数的过程就是寻找设计变量与目标的关系的过程,目标函数和设计变量的关系可用曲线、曲面或超曲面表示。

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

神经元技术

(人工)神经元是一个类比于生物神经元的数学计算模型,是神经网络的基本组成单元。 对于生物神经网络,每个神经元与其他神经元相连,当它“兴奋”时会向相连的神经元发送化学物质,从而改变这些神经元的电位;神经元的“兴奋”由其电位决定,当它的电位超过一个“阈值”(threshold)便会被激活,亦即“兴奋”。 目前最常见的神经元模型是基于1943年 Warren McCulloch 和 Walter Pitts提出的“M-P 神经元模型”。 在这个模型中,神经元通过带权重的连接接处理来自n个其他神经元的输入信号,其总输入值将与神经元的阈值进行比较,最后通过“激活函数”(activation function)产生神经元的输出。

图像处理技术

图像处理是指对图像进行分析、加工和处理,使其满足视觉、心理或其他要求的技术。 图像处理是信号处理在图像领域上的一个应用。 目前大多数的图像均是以数字形式存储,因而图像处理很多情况下指数字图像处理。

正则化技术

当模型的复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后又增大。当选择的模型复杂度过大时,过拟合现象就会发生。这样,在学习时就要防止过拟合。进行最优模型的选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。

梯度消失问题技术

梯度消失指的是随着网络深度增加,参数的梯度范数指数式减小的现象。梯度很小,意味着参数的变化很缓慢,从而使得学习过程停滞,直到梯度变得足够大,而这通常需要指数量级的时间。这种思想至少可以追溯到 Bengio 等人 1994 年的论文:「Learning long-term dependencies with gradient descent is difficult」,目前似乎仍然是人们对深度神经网络的训练困难的偏好解释。

特征选择技术

在机器学习和统计学中,特征选择(英语:feature selection)也被称为变量选择、属性选择或变量子集选择。 它是指:为了构建模型而选择相关特征(即属性、指标)子集的过程。

堆叠技术

堆叠泛化是一种用于最小化一个或多个泛化器的泛化误差率的方法。它通过推导泛化器相对于所提供的学习集的偏差来发挥其作用。这个推导的过程包括:在第二层中将第一层的原始泛化器对部分学习集的猜测进行泛化,以及尝试对学习集的剩余部分进行猜测,并且输出正确的结果。当与多个泛化器一起使用时,堆叠泛化可以被看作是一个交叉验证的复杂版本,利用比交叉验证更为复杂的策略来组合各个泛化器。当与单个泛化器一起使用时,堆叠泛化是一种用于估计(然后纠正)泛化器的错误的方法,该泛化器已经在特定学习集上进行了训练并被询问了特定问题。

推荐文章
暂无评论
暂无评论~