一些经典 CNN

栏目: 数据库 · 发布时间: 5年前

内容简介:LeNet-5 是由 LeCun 在 1998 年的一篇论文中提出的,与今天的一些神经网络相比,LeNet-5 是一个小型神经网络,它只有大约 60000 个参数,而今天经常会有包含千万到亿量级参数的神经网络,我们先来看一下 LeNet-5 的模型:如图所示,输入是一张维度为 (32, 32, 1) 的图片,在这个例子中该图片是一张手写体数字的灰度图片,内容为数字 7,由于这是一张灰度图,因此通道数为 1,下面依次对该网络每层进行说明:

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

一些经典 CNN

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

一些经典 CNN

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

一些经典 CNN

其中,

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


以上所述就是小编给大家介绍的《一些经典 CNN》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

常用算法程序集

常用算法程序集

2009-7 / 58.00元

《常用算法程序集(C++语言描述)第4版》是针对工程中常用且行之有效的算法而编写的,主要内容包括矩阵运算,矩阵特征值与特征向量的计算,线性代数方程组的求解,非线性方程与方程组的求解,插值与逼近,数值积分,常微分方程组的求解,数据处理,极值问题的求解,复数、多项式与特殊函数的计算,查找与排序。书中所有的算法程序均用C++描述,全部程序可从清华大学出版社网站上的《常用算法程序集(C++语言描述)第4版......一起来看看 《常用算法程序集》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

MD5 加密
MD5 加密

MD5 加密工具