一些经典 CNN

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

LeNet-5

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

如图所示,输入是一张维度为 (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 拥有更多的隐藏神经元,在更大的数据上训练,这使得它有更好的性能,它的结构如下

  • 第一层:
    • 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。结构方面,总是现有几层卷积层,然后是池化层,再来几层卷积层,再来一个池化层。由于该网络层数很多,结构图稍微简化了一些:

其中,

  • [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]

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值