卷积神经网络模型

Hits: 178

本文我们开始介绍Coursera-Deep Learning第四课卷积神经网络的week2的内容:深度卷积神经网络模型

上文我们介绍了卷积神经网络的基本原理,但那只是最基本的模型,在此基础上又诞生了很多变种,它们在性能上都比最基本的模型要好,当然也更复杂。今天我们就介绍一些常见的卷积神经网络模型,主要有以下几种:LeNet-5, AlexNet, VGG-16, ResNet(残差网络)和Inception,其中前三者属于经典模型。

  • LeNet-5

    LeNet-5这个模型是由深度学习大神Yann LeCun于1998年在其发表一篇名为Gradient-Based Learning Applied to Document Recognition的论文中被首次提出的,可以说LeCun大神是CNN的开山鼻祖了,也有人称之为卷积网络之父。LeNet-5的名字就取自于LeCun,而5表示这个模型一共有5层,分别是两个卷积层和两个全连接层,还有一个输出层用于分类。他的结构如下:

    Imgur
    他有什么特点呢?

    • 输入图像只有单通道,也就是黑白图片
    • 没有采用padding技术,所以卷积的图像尺寸越来越小
    • 使用了average pooling,而不是现在最主流的max pooling
    • 非线性函数使用了Sigmoid和Tanh,而不是ReLU。比如在pooling之后就使用sigmoid做了非线性处理。
    • 参数数量只有大概60万个,相比于今天随便一个复杂CNN的一千万到一个亿的参数而言是很小的,但对于当时的机器性能而言还是非常大的(没有GPU加速),而且当时还存在SVM这么个无敌的对手,所以LeNet在当时也就没有流行起来。
  • AlexNet

    AlexNet也是以发明者的名字命名的,它是由Geoffrey Hinton的学生Alex Krizhevsky在2012发表在NIPS上的一篇论文ImageNet Classification with Deep Convolutional Neural Networks中首次提出的(截至目前为止,Google Scholar上这篇论文的引用数已经到达令人瞠目的19000次)。这个模型之所以名声大噪,不仅是因为他夺得了2012年ImageNet的冠军,还因为它把准确率从70%多提高到了80%多。这篇论文的发表使得人们开始严肃思考深度学习在计算视觉,语音识别等领域可能的应用,也标志着深度学习正式开始起飞。它的结构如下:
    Imgur
    相比于LeNet-5,他有如下改进:

    • 结构上非常类似,但是比LeNet-5大了很多,它有6000万个超参数
    • 非线性函数采用了ReLU
    • 采用了dropout正则化方法
    • 使用多GPU运算加速训练
  • VGG-16

    VGG是由牛津大学的Karen Simonyan和Andrew Zisserman在2014年首次提出的,他们发表的论文题目是:Very Deep Convolutional Networks forLarge-Scale Image Recognition(链接中的论文为第二版,发表在ICLR, 2015)。为什么要叫VGG呢?我查了好多资料都没查到,但我Google后发现牛津大学Department of Engineering Science下面有个研究组叫做Visual Geometry Group,所以猜测应该是这个研究组的缩写,而16表示的是这个网络的层数。它的结构如下:
    Imgur
    它有如下特点:

    • 相比于AlexNet来说,结构上很类似,但是更深了,足足有16层(上图中x2表示有两个一样的卷积,画图时省略了,只写了一个)
    • 这种网络结构专注于卷积,它有14个卷积层,两个全连接层
    • 除此之外,它的卷积层结构是很有规律的:卷积图像尺寸不断变小,每次减半,依次是224x224, 112x112, 56x56, 28x28一直到7x7;与此同时,通道数不断递增,每次增加一倍,依次是64, 128, 256一直到512。这个很有意思。
  • ResNet

    ResNet中文名叫做残差网络,是一个由中国人发明的深度学习网络模型。由来自微软亚洲研究院(MSRA)的何恺明,张翔宇,任少卿,孙剑在2015年发表的论文Deep Residual Learning for Image Recognition中提出的。这个模型在2015年的ImageNet大赛中夺冠,并且把top-5错误率降低到了3.57%,一举超越了人类水平的5.1%。这个模型最大的特点是它解决了深度神经网络中的退化问题,传统神经网络如果层数太深的话,会很容易产生梯度消失或者梯度爆炸的问题导致训练困难,训练效果也随着层数递减。而ResNet则很好的解决了这个问题,它可以做到非常深,层数可以达到100层,甚至是1000层,而且效果也能随着层数的增加而增加。 这几年这个模型在非常火热,在机器翻译,语音合成,语音识别中被广泛使用,而前段时间刷屏朋友圈的AlphaGo-Zero就采用了这个算法。下面我们来看一下它的具体结构,残差网络是由一个叫作残差块(Residual Block)的基本单元组成的,它的结构如下:
    Imgur
    这个结构其实很简单,就一个词:跨层连接。在计算当前神经元的激活值时,不仅考虑上一层的输出,还会考虑前两层的输出。下面我们以计算两层神经元\(a^{[l+1]}\)和\(a^{[l+2]}\)为例:
    Plain Net的计算过程如下:
    $$
    \begin{align*}
    & z^{[l+1]} = w^{[l+1]}a^{[l]} + b^{[l+1]} \\
    & a^{[l+1]} = g(z^{[l+1]}) \\
    & z^{[l+2]} = w^{[l+2]}a^{[l+1]} + b^{[l+2]} \\
    & a^{[l+2]} = g(z^{[l+2]})
    \end{align*}
    $$
    ResNet的计算过程如下:
    $$
    \begin{align*}
    & z^{[l+1]} = w^{[l+1]}a^{[l]} + b^{[l+1]} \\
    & a^{[l+1]} = g(z^{[l+1]}) \\
    & z^{[l+2]} = w^{[l+2]}a^{[l+1]} + b^{[l+2]} \\
    & a^{[l+2]} = g(z^{[l+2]} + a^{[l]})
    \end{align*}
    $$

    他们的区别就在最后一行,\(a^{[l+2]}\)的计算方式是不一样的,差异一目了然
    ResNet的整个网络的结构都是由这些残差块堆积在一起的,如下所示:

    Imgur

  • Inception

    Inception是由Google的Christian Szegedy等人在2015年发表的论文Going Deeper with Convolutions中提出的。这个模型最大的特色就是:不需要手工选择使用哪些滤波器或者是否使用maxpooling,而是先把多个规格的滤波器算出来,然后把他们连接到一起,由网络学习决定采用哪个滤波器。原论文中的模型图比较复杂,这里我们只截取其中的一小段滤波器组合单元,整个网络都是由这些单元组成的。
    Imgur

说一说ImageNet

介绍完了这几个模型我们来说一说ImageNet。这些模型基本都是在历年的ImageNet上证明自己的,可以说ImageNet见证了CNN网络的发展,而错误率从最初的28.2%下降到3.57%才用了短短的四五年的时间,人类进步的速度太令人惊讶了。下面让我们先来看一下CNN网络的性能演进史:
Imgur
其实,2016年ILSVRC的Top5-error就已经降到3%以下(使用的是ensemble方法),而人类的水平是5.1%。也就是说CNN已经把图像识别攻破了,错误率低到了极致,再研究下去也没有价值了。于是,CVPR2017研讨会“超越ILSVRC”宣布今年是 ImageNet竞赛正式组织的最后一年,未来,计算机视觉的重点在图像理解而非识别。
其实,这几年AI浪潮的兴起跟计算机视觉的飞速发展有巨大关系,计算机视觉技术的成熟是实时目标检测,自动驾驶等尖端应用能够落地的关键原因。倘若没有计算机视觉和自然语言处理的长足进步,今天的AI不过是个巨大泡沫。所以感谢CNN,感谢ImageNet。
至此,ImageNet完成了它的历史使命,退出了历史舞台。让我们对ImageNet说再见吧。


发表评论

电子邮件地址不会被公开。 必填项已用*标注