一些经典 CNN

在计算机视觉的发展过程中,出现了很多经典的卷积神经网络模型,它们对后来的研究有很大影响,这篇文章简要谈谈 LeNet-5、AlexNet 和 VGGNet.

LeNet-5

LeNet-5 是由 LeCun 在 1998 年的一篇论文中提出的,与今天的一些神经网络相比,LeNet-5 是一个小型神经网络,它只有大约 60000 个参数,而今天经常会有包含千万到亿量级参数的神经网络,我们先来看一下 LeNet-5 的模型:

image

如图所示,输入是一张维度为 (32, 32, 1) 的图片,在这个例子中该图片是一张手写体数字的灰度图片,内容为数字 7,由于这是一张灰度图,因此通道数为 1,下面依次对该网络每层进行说明:

  • 第一层:
    • 6 个大小为 5 × 5 的过滤器,Padding = 1,Stride = 1. 输出维度为 (28, 28, 6) 的图片。
    • 均值池化层,过滤器大小为 2 × 2,Stride = 2. 输出维度为 (14, 14, 6) 的图片。
  • 第二层:
    • 6 个大小为 5 × 5 的过滤器,Padding = 1,Stride = 1. 输出维度为 (10, 10, 6) 的图片。
    • 均值池化层,过滤器大小为 2 × 2,Stride = 2. 输出维度为 (5, 5, 6) 的图片。
  • 第三层:全连接层,共 120 个结点
  • 第四层:全连接层,共 84 个结点
  • 第五层:输出层,输出预测值

Note: 由于池化层并不包含任何参数,因此将其与前一个卷积层共算作一层。

这个网络可以完成手写体数字识别的任务,输入一张大小为 32 × 32 的灰度图,最终输出对图中数字的预测,其中池化层用的是均值池化,而目前更常用的最大池化,另外,现在输出层通常使用 softmax 函数,而当时使用的是另一种函数。

该网络中用到结构在现今仍非常常用,即先使用一层或几层卷积层,再使用一层池化层,然后再使用一层或几层卷积层,再使用一层池化层,最后再使用几层全连接层,最后输出结果。这种结构方式在今天也非常常见。

AlexNet

与 LeNet-5 只有大约 60000 个参数不同,AlexNet 有大约 6 千万个参数,不过这二者拥有很相似的结构,只是 AlexNet 拥有更多的隐藏神经元,在更大的数据上训练,这使得它有更好的性能,它的结构如下

image
  • 第一层:
    • 96 个大小为 11 × 11 的过滤器,Padding = 1,Stride = 4. 输出维度为 (55, 55, 96).
    • 最大池化层,过滤器大小为 3 × 3,Stride = 2. 输出维度为 (27, 27, 96).
  • 第二层:
    • 256 个大小为 5 × 5 的过滤器,Padding = same,Stride = 1. 输出维度为 (27, 27, 256).
    • 最大池化层,过滤器大小为 3 × 3,Stride = 2. 输出维度为 (13, 13, 256).
  • 第三层:384 个大小为 3 × 3 的过滤器,Padding = same,Stride = 1. 输出维度为 (13, 13, 384).
  • 第四层:384 个大小为 3 × 3 的过滤器,Padding = same,Stride = 1. 输出维度为 (13, 13, 384).
  • 第五层:
    • 256 个大小为 3 × 3 的过滤器,Padding = same,Stride = 1. 输出维度为 (13, 13, 256).
    • 最大池化层:过滤器大小为 3 × 3,Stride = 2. 输出维度为 (6, 6, 256).
  • 第六层:全连接层,共 4096 个结点
  • 第七层:全连接层,共 4096 个结点
  • 第八层:输出层,使用 softmax 输出预测类别

另一个与 LeNet-5 不同之处是,AlexNet 的激活函数使用了 ReLU,而非 LeNet-5 使用的 sigmoid 或者 tanh,这也使得其性能更好一些。

实际上上面列出的结构是原始 AlexNet 的简化,原始的 AlexNet 中还有局部响应归一层,但后来并不太常用,因此这里做了简化。

VGG-16

VGG-16 中的 16 是指该网络中有 16 层带有权重的层,这是一个很大的神经网络,这导致该网络中的参数多达 1 亿 3 千 8 百万个。但是 VGG 的结构非常统一,该网络中的所有卷积层的过滤器大小都是 3 × 3,Stride 都是 1,Padding 都是 same,而池化层过滤器的大小全为 2 × 2,Stride 全为 2。结构方面,总是现有几层卷积层,然后是池化层,再来几层卷积层,再来一个池化层。由于该网络层数很多,结构图稍微简化了一些:

image

其中,

  • [CONV 64] × 2 是指两层各有 64 个过滤器的卷积层
  • POOL 指池化层
  • FC 指全连接层

可以看到,虽然 VGG-16 是一个比较大的网络,但是由于其结构统一,因此受到了许多研究者的青睐,另外还有 VGG-19,指拥有 19 层带有权重的层的 VGG,但由于其性能与 VGG-16 差不多,因此大多数人还是选择用 VGG-16。

以上是对三个经典卷积神经网络的简单介绍,文末附上 AlexNet 和 VGG 的相关论文。

[Krizhevsky et al., 2012. ImageNet classification with deep convolutional neural networks]

[Simonyan & Zisserman 2015. Very deep convolutional networks for large-scale image recognition]

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 经典网络(Classic networks) 这节课,我们来学习几个经典的神经网络结构,分别是LeNet-5、Al...
    极客Array阅读 2,335评论 1 15
  • 对与错是考虑问题的重要因素,但不是唯一因素,一个事情的抉择需要有很多方面的因素支撑,而经过思考后的快刀斩乱麻也不失...
    老杨111阅读 314评论 0 0
  • 2017年,8月4号星期五 阴 昨天我的亲子日记也写一百天啦。[鼓掌]时间真快,想想当初,以一百天为目标的...
    厦小薛智一爸爸阅读 243评论 2 3
  • 人生一场 空杯以对 所有的故事没有什么人是独立存在的 包括眼前这个完美的世界 生活总是两难,再多执着 却也学不会接...
    张仟宸妃阅读 167评论 0 3
  • 在一起就是无休止的争吵,分开又是折磨人的思念。。。。 又一部感天动地的人鬼情未了。。。那哀怨的歌声把死神都唱哭了,...
    风筝2017阅读 682评论 0 0