Auto Byte

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

微信扫一扫获取更多资讯

Science AI

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

微信扫一扫获取更多资讯

卷积神经网络

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

简介

卷积网络是一种专门用于处理具有已知的、网格状拓扑数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。卷积网络在实际应用中取得了巨大的成功。

名称“卷积神经网络”表示网络采用称为卷积的数学运算。卷积是一种特殊的线性操作。卷积网络是简单的神经网络,它使用卷积代替至少一层中的一般矩阵乘法。因此,要解释卷积神经网络必须对卷积操作进行解释,卷积操作通常用星号表示,写作:

s(t)=(x*w)(t)

在实际使用中,我们经常在多个轴上使用卷积,因此上式也需要根据实际情况进行修改。例如,如果我们使用二维图像I作为我们的输入,我们可能也想使用二维内核K:

S(i,j)=(I*K)(i,j)=\sum_{m}\sum_{n}I(m,n)K(i-m,j-n)

卷积是可交换的,这意味着我们可以等价地写出:

S(i,j)=(I*K)(i,j)=\sum_{m}\sum_{n}I(i-m,j-n)K(m,n)

下图很好的解释了卷积神经网络中卷积的操作:

[图片来源:Goodfellow, I.; Bengio Y.; Courville A. (2016). Deep Learning. MIT Press. ]

在卷积网络术语中,卷积的第一个参数(在本例中为函数x)通常称为输入,第二个参数(在本例中为函数w)作为内核。输出有时被称为特征映射。

卷积操作主要利用了三个可以帮助改进机器学习系统的重要思想:稀疏交互,参数共享和等变表示。此外,卷积提供了处理可变大小输入的手段。

此外,在卷积神经网络中还常用到一种称为“池化”(pooling)的操作,几乎所有的卷积网络都使用该操作。池化有助于使模型变得几乎不受输入的小波动的影响。例如,当要确定图像是否包含脸部时,我们无需知道像素完美准确的眼睛位置,我们只需要知道脸部左侧有一只眼睛,右侧有一只眼睛脸的一面。下图给出了一个例子:

[图片来源:Goodfellow, I.; Bengio Y.; Courville A. (2016). Deep Learning. MIT Press. ]

上图顶部最上面一行显示了最大池化后的输出,神经元的取值为所有输入神经元的最大值。底部则将绗棉的输入向右移动一个像素后,再次进行池化。底部最下面一行中的每个值都发生了变化,但是顶行中只有一半的值发生了变化,因为在池化操作中邻域中的最大值重要,而不是其确切的位置。

值得注意的是,通常在卷积神经网络中使用的操作并不完全对应于其他领域(如工程或数学)中使用的卷积的定义。对卷积网络体系结构的研究进展非常迅速,以至于每隔几周到几个月就会公布一个新的最佳体系结构,这使得描述最佳体系结构变得不切实际,但所有目前为止最好的架构都由上面所描述的元素构成。

[描述来源:Goodfellow, I.; Bengio Y.; Courville A. (2016). Deep Learning. MIT Press. URL: http://www.deeplearningbook.org]

发展历史

描述

卷积神经网络并不是一个新的学科,虽然对于其的研究热情在近年来逐渐增长,Kunihiko Fukushima早于1979年——英文文献发表于1982年,但可以查到他于1979年发表了一篇主题相同的日文文献——开发了一种他称为Neocognitron的人工神经网络,这是最早的CNN之一。1989年,Yann LeCun在贝尔实验室的研究首次将反向传播算法进行了实际应用,他将使用反向传播算法训练的卷积神经网络结合到读取“手写”数字上。这也是后来被称为LeNet的卷积神经网络的开始,一直到1998年Yann LeCun等人发表了关于LeNet的多篇论文,并取得了巨大的成功。

1998年到2010年这段期间,由于计算机的计算能力不足等因素,神经网络的发展不如预期,人工智能的研究主要在其他方向。直到2012年,Alex Krizhevsky发布了AlexNet,这是LeNet的更深和更广的版本,并以巨大的优势赢得了当年的ImageNet竞赛。AlexNet的成功开始了卷积神经网络的时代,卷积神经网络现在成为了深度学习的主力。2013年12月,Yann LeCun的纽约大学实室推出了AlexNet的衍生产品Overfeat。当年ImageNet的胜者则为ZF Net,实现了11.2%的错误率。ImageNet2014年的获胜者是由牛津大学的Karen Simonyan和Andrew Zisserman创建的一个19层的CNN,叫做VGG Net,其错误率仅为7.3%,并创新性的使用了多个3*3的卷积层,强化了卷积神经网络必须具有深层网络才能使视觉数据的分层表示工作的观点。但VGG在很多层中使用了很大的特征尺寸,因此推断非常昂贵。

来自Google的Christian Szegedy开始了一项旨在减少深度神经网络计算负担的任务,并将GoogLeNet设计为第一个Inception架构。GoogLeNet是一个22层的CNN,其赢得了ILSVRC 2014的比赛。Christian Szegedy强调,这个新模型着重考虑内存和功率,即堆叠卷积层并添加大量过滤器会产生计算和内存成本,以及过拟合的可能性会增加。GoogLeNet是第一个引入CNN层并不总是必须依次叠加的概念的模型之一,他们证明了创造性的图层结构可以提高性能和计算效率。它为接下来几年出现的一些新架构奠定了基础。

2015年微软亚洲研究院推出了ResNet,这是一种新的152层网络架构,其赢得了ILSVRC 2015比赛,并且错误率仅为3.6%,而人类根据他们的技能和专业知识,通常徘徊在5-10%的错误率,这是在这个比赛上第一次神经网络的表现超越了人类。

同时,卷积神经网络在图像分割(R-CNN,FAST R-CNN, FASTER R-CNN),图像生成(生成对抗网络),对不同图像区域进行自然语言描述等领域都取得了优秀的表现。.

[内容参考:EUGENIO CULURCIELLO:THE HISTORY OF NEURAL NETWORKS. URL: http://dataconomy.com/2017/04/history-neural-networks/]

[内容参考:Adit Deshpande:The 9 Deep Learning Papers You Need To Know About (Understanding CNNs Part 3). URL: https://adeshpande3.github.io/The-9-Deep-Learning-Papers-You-Need-To-Know-About.html]

Gao Huang等学者从ResNet的恒等/跳跃连接(identity/skip connections)中直接获取灵感,于2016年提出了DenseNet,它们可以缓解消失梯度问题,加强特征传播,鼓励特征重用以及大幅减少参数数量。该模型在CIFAR-10、CIFAR-100、SVHN和ImageNet上进行评估,并在多个数据集上实现了顶尖性能,同时只需要较少的计算来实现这样的高性能。Larsson等学者则提出了FractalNet,其使用不同长度的子路径,没有传递(pass-through)或残差连接,而是使用滤波器和非线性函数改变内部信号进行转换。FractalNet可以重复连接多个并行层序列和不同数量的卷积block,以获取大的额定深度,同时维护网络中的很多短路径。

正如前文所述,对卷积网络体系结构的研究进展非常迅速,CNN的架构迭代也非常快,同时越来越多的学者将CNN用于不同的领域和任务中,任何设计优秀的网络都有可能很快被纳入到新的研究中。伯克利实验室的CAMERA(能源高级数学研究与应用中心,Center for Advanced Mathematics for Energy Research Applications)专注于开发可以通过很小的数据集进行学习的技术,2017年其研究人员Daniël Pelt和James Sethian开发了多尺度密集卷积神经网络(MS-D,Mixed-Scale Dense Convolution Neural Network),这种新方法与传统方法相比,需要的参数更少,收敛得也更快,而且可以基于相当小的训练集进行学习。阿姆斯特丹大学的研究组专注于面向球面图像的分析模型,2018年他们提出了球面CNN理论;对于球面和三维特殊正交群的广义傅里叶变换给出了首个可自动微分的实现,其提供的开源的PyTorch代码使用简单、运算快速,且内存使用效率高;并就球面CNN对旋转不变类学习问题的适用性给出了实证支持。在ICLR 2018上,还有Jörn-Henrik Jacobsen等学者提出的可逆网络架构i-RevNet,证明对于分类网络的泛化能力,通过信息丢弃构造信息瓶颈并不是必要条件,该结论甚至对ImageNet这样的大型数据集也是成立的;同时,通过保留中间表征的所有信息,逆向完全地恢复原图也变得可行。在AAAI 2018上,则有腾讯联合德克萨斯大学阿灵顿分校提出的自适应图卷积神经网络AGCN,可接受任意图结构和规模的图作为输入,在训练时为每个图数据构建一个任务驱动的自适应图(adaptive graph)。

主要事件

年份

事件

相关论文/Reference

1979

Kunihiko Fukushima提出了Neocognitron

Fukushima K., Miyake S. (1982) Neocognitron: A Self-Organizing Neural Network Model for a Mechanism of Visual Pattern Recognition. Competition and Cooperation in Neural Nets.pp 267-285.

1989

Yann LeCun等人开始了LeNet研究

LeCun Y.; Jackel L. D.; Boser B.; Denker J. S.; Graf H. P.; Guyon I.; Henderson D.; Howard R. E.; Hubbard W.(1989). Handwritten digit recognition: Applications of neural net chips and automatic learning. IEEE Communication, pp 41-46.

1998

Yann LeCun等人训练的LeNet在识别手写字符上取得了巨大的成功

LeCun Y.; Bottou L.; Bengio Y.; Haffner P.(1998). Gradient-based learning applied to document recognition.Proceedings of the IEEE.

2012

Alex Krizhevsky发布了AlexNet

Krizhevsky, A., Sutskever, I.; Hinton, G. E. (2012). Imagenet classification with deep convolutional neural networks. Advances in neural information processing systemspp. 1097-1105.

2013

Sermanet等学者提出了Overfeat

Sermanet. P.; Eigen D.; Zhang X.; Mathieu M.; Fergus R.;LeCun Y. (2013).OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks.

2013

Zeiler和Fergus提出了ZF net

Zeiler M. D.;Fergus R. (2014).Visualizing and Understanding Convolutional Networks.ECCV.pp 818-833

2013

Girshick等学者提出R-CNN

Girshick R.;Donahue J.; Darrell T.; Malik J. (2014). Rich feature hierarchies for accurate object detection and semantic segmentation Tech report (v5).Proceedings of the IEEE.

2014

Simonyan和Zisserman提出了VGG net

Simonyan K.; Zisserman A. (2015).Very Deep Convolutional Networks for Large-Scale Image Recognition.

2014

Goodfellow等学者提出了生成对抗网络

Goodfellow I. J. et al. (2014). Generative Adversarial Nets. NIPS 2014.

2014

Szegedy等学者提出了GoogLeNet

Szegedy C.;Liu W. et al. (2014).Going Deeper with Convolutions.

2015

Girshick提出Fast R-CNN

Girshick R. (2015).Fast R-CNN.

2015

Ren和Girshick等学者提出Faster R-CNN

Ren S.; He K.; Girshick R.; Sun J. (2015).Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks.NIPS 2015.

2015

Karpathy和李飞飞将CNN和RNN结合在一起以对图像区域进行描述

Karpathy A.; Li F. (2015).Deep Visual-Semantic Alignments for Generating Image Descriptions. NIPS 2015.

2015

He等学者提出了ResNet

He K.; Zhang X.; Ren S.;Sun J. (2015).Deep Residual Learning for Image Recognition. CVPR 2015

2016

Gao Huang等学者提出了DenseNet

Huang, G. et al. (2016).Densely Connected Convolutional Networks.arXiv:1608.06993.

2016

Larsson等学者提出了FractalNet

Larsson et al. (2016). FractalNet: Ultra-Deep Neural Networks without Residuals. arXiv: 1605.07648.

2017

aniël Pelt和James Sethian开发了多尺度密集卷积神经网络(MS-D,Mixed-Scale Dense Convolution Neural Network)

Pelt, D.; Sethian, J.(2017).A mixed-scale dense convolutional neural network for image analysis.PNAS.

2018

阿姆斯特丹大学的研究组提出了球面CNN理论

Cohen, T. S. et al. (2018). SPHERICAL CNNS. ICLR 2018.

2018

Jörn-Henrik Jacobsen等学者提出可逆网络架构i-RevNet

Jacobsen, J .H.; Smeulders,A. W. M.;Oyallon, E. (2018).i-RevNet: Deep Invertible Networks. ICLR 2018.

2018

腾讯联合德克萨斯大学阿灵顿分校提出自适应图卷积神经网络AGCN

Li, R.; Wang, S.; Zhu, F.; Huang, J. (2018). Adaptive Graph Convolutional Neural Networks. AAAI 2018.

发展分析

瓶颈

卷积神经网络在许多任务上都取得了成功,但其仍缺乏足够的理论支撑,我们无法系统的、完备的对其表现进行分析。

未来发展方向

目前有不少研究集中在对卷积神经网络的学习过程,如分析其神经元对含有不同特征的图片的反应。此外,卷积神经网络的应用范围也越来越广,或许在卷积神经网络还将在我们没有预见到的领域获得成功。

Contributor: Yuanyuan Li

简介