经典卷积神经网络的结构一般满足如下表达式:

输出层 -> (卷积层+ -> 池化层?)+  -> 全连接层+

上述公式中,“+”表示一个或者多个,“?”表示一个或者零个,如“卷积层+”表示一个或者多个卷积层,“池化层?”表示一个或者零个池化层。“->”表示 forward 方向。

  下面将分别介绍 LeNet-5AlexNetVGG-16 结构。

1. LeNet-5(modern)

图 1  LeNet-5

1.1 LeNet-5 结构:

  • 输入层

图片大小为 32×32×1,其中 1 表示为黑白图像,只有一个 channel。

  • 卷积层

filter 大小 5×5,filter 深度(个数)为 6,padding 为 0, 卷积步长 $s=1$,输出矩阵大小为 28×28×6,其中 6 表示 filter 的个数。

  • 池化层

average pooling,filter 大小 2×2(即 $f=2$),步长 $s=2$,no padding,输出矩阵大小为 14×14×6。

  • 卷积层

filter 大小 5×5,filter 个数为 16,padding 为 0, 卷积步长 $s=1$,输出矩阵大小为 10×10×16,其中 16 表示 filter 的个数。

  • 池化层

average pooling,filter 大小 2×2(即 $f=2$),步长 $s=2$,no padding,输出矩阵大小为 5×5×16。注意,在该层结束,需要将 5×5×16 的矩阵flatten 成一个 400 维的向量。

  • 全连接层(Fully Connected layer,FC)

neuron 数量为 120。

  • 全连接层(Fully Connected layer,FC)

neuron 数量为 84。

  • 全连接层,输出层

现在版本的 LeNet-5 输出层一般会采用 softmax 激活函数,在 LeNet-5 提出的论文中使用的激活函数不是 softmax,但其现在不常用。该层神经元数量为 10,代表 0~9 十个数字类别。(图 1 其实少画了一个表示全连接层的方框,而直接用 $\hat{y}$ 表示输出层。)

1.2 LeNet-5 一些性质:

  • 如果输入层不算神经网络的层数,那么 LeNet-5 是一个 7 层的网络。(有些地方也可能把 卷积和池化 当作一个 layer)(LeNet-5 名字中的“5”也可以理解为整个网络中含可训练参数的层数为 5。)
  • LeNet-5 大约有 60,000 个参数。
  • 随着网络越来越深,图像的高度和宽度在缩小,与此同时,图像的 channel 数量一直在增加。
  • 现在常用的 LeNet-5 结构和 Yann LeCun 教授在 1998 年论文中提出的结构在某些地方有区别,比如激活函数的使用,现在一般使用 ReLU 作为激活函数,输出层一般选择 softmax。

2. AlexNet

图 2  AlexNet

2.1 AlexNet 结构:

  • 输入层:图像大小为 227×227×3,其中 3 表示输入图像的 channel 数(R,G,B)为 3。
  • 卷积层:filter 大小 11×11,filter 个数 96,卷积步长 $s = 4$。(filter 大小只列出了宽和高,filter矩阵的 channel 数和输入图片的 channel 数一样,在这里没有列出)
  • 池化层:max pooling,filter 大小 3×3,步长 $s = 2$。
  • 卷积层:filter 大小 5×5,filter 个数 256,步长 $s = 1$,padding 使用 same convolution,即使得卷积层输出图像和输入图像在宽和高上保持不变。
  • 池化层:max pooling,filter 大小 3×3,步长 $s = 2$。
  • 卷积层:filter 大小 3×3,filter 个数 384,步长 $s = 1$,padding 使用 same convolution。
  • 卷积层:filter 大小 3×3,filter 个数 384,步长 $s = 1$,padding 使用 same convolution。
  • 卷积层:filter 大小 3×3,filter 个数 256,步长 $s = 1$,padding 使用 same convolution。
  • 池化层:max pooling,filter 大小 3×3,步长 $s = 2$;池化操作结束后,将大小为  6×6×256 的输出矩阵 flatten 成一个 9216 维的向量。
  • 全连接层:neuron 数量为 4096。
  • 全连接层:neuron 数量为 4096。
  • 全连接层,输出层:softmax 激活函数,neuron 数量为 1000,代表 1000 个类别。

2.2 AlexNet 一些性质:

  • 大约 60million 个参数;
  • 使用 ReLU 作为激活函数。

3. VGG-16

图 3  VGG-16

3.1 VGG-16 结构:

  • 输入层
  • 卷积层
  • 卷积层
  • 池化层
  • 卷积层
  • 卷积层
  • 池化层
  • 卷积层
  • 卷积层
  • 卷积层
  • 池化层
  • 卷积层
  • 卷积层
  • 卷积层
  • 池化层
  • 卷积层
  • 卷积层
  • 卷积层
  • 池化层
  • 全连接层
  • 全连接层
  • 全连接层,输出层

3.2 VGG-16 一些性质:

  • VGG-16 中的 16 表示整个网络中有 trainable 参数的层数为 16 层。(trainable 参数指的是可以通过 back-propagation 更新的参数)
  • VGG-16 大约有 138million 个参数。
  • VGG-16 中所有卷积层 filter 宽和高都是 3,步长为 1,padding 都使用 same convolution;所有池化层的 filter 宽和高都是 2,步长都是 2。

References

Course 4 Convolutional Neural Networks by Anderw Ng

《TensorFLow实战Google深度学习框架》

经典卷积神经网络结构——LeNet-5、AlexNet、VGG-16的更多相关文章

  1. 经典卷积神经网络(LeNet、AlexNet、VGG、GoogleNet、ResNet)的实现(MXNet版本)

    卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现. 其中 文章 详解卷 ...

  2. Deep Learning 经典网路回顾#之LeNet、AlexNet、GoogLeNet、VGG、ResNet

    #Deep Learning回顾#之LeNet.AlexNet.GoogLeNet.VGG.ResNet 深入浅出——网络模型中Inception的作用与结构全解析 图像识别中的深度残差学习(Deep ...

  3. 经典卷积神经网络算法(2):AlexNet

    .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...

  4. CNN 卷积神经网络结构

    cnn每一层会输出多个feature map, 每个Feature Map通过一种卷积滤波器提取输入的一种特征,每个feature map由多个神经元组成,假如某个feature map的shape是 ...

  5. 吴裕雄--天生自然python Google深度学习框架:经典卷积神经网络模型

    import tensorflow as tf INPUT_NODE = 784 OUTPUT_NODE = 10 IMAGE_SIZE = 28 NUM_CHANNELS = 1 NUM_LABEL ...

  6. 五大经典卷积神经网络介绍:LeNet / AlexNet / GoogLeNet / VGGNet/ ResNet

    欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! LeNet / AlexNet / GoogLeNet / VGG ...

  7. 卷积神经网络之LeNet

    开局一张图,内容全靠编. 上图引用自 [卷积神经网络-进化史]从LeNet到AlexNet. 目前常用的卷积神经网络 深度学习现在是百花齐放,各种网络结构层出不穷,计划梳理下各个常用的卷积神经网络结构 ...

  8. CNN-1: LeNet-5 卷积神经网络模型

    1.LeNet-5模型简介 LeNet-5 模型是 Yann LeCun 教授于 1998 年在论文 Gradient-based learning applied to document      ...

  9. 卷积神经网络的一些经典网络(Lenet,AlexNet,VGG16,ResNet)

    LeNet – 5网络 网络结构为: 输入图像是:32x32x1的灰度图像 卷积核:5x5,stride=1 得到Conv1:28x28x6 池化层:2x2,stride=2 (池化之后再经过激活函数 ...

随机推荐

  1. 悲剧啊!Mysql的上古BUG!!!

    导读 这是MySQL8.0修复的上古bug之一,在2003年由Percona的CEO(当时应该还没Percona吧)提出的bug#199,光看这bug号就扑面而来一股上古时代的沧桑气息. 问题的本质在 ...

  2. IE8 jquery解析xml的兼容问题

    正常情况下可以这么写: jQuery(node).find(xpath.replace("//", ""))[0]; 但是在IE8下得到的是undefined应 ...

  3. Mac环境下svn的使用

    在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境.在Mac环境下,由于Mac自带了svn的服务器端和客户端功能,所以我们可以在不装任何第三方软件的前提下使用svn功能,不过还 ...

  4. 【随便走走】Vietnam

    从来没有一个地方让我如此留念过.   初到越南印象就是乱,满街轰轰轰的摩托车,狭窄的街道,各种小酒店小商店.从机场出来的路上还看到了不少中国品牌如豪爵摩托等等. 落地办理了落地签,从大陆是不能办的.越 ...

  5. 图片变换 矩阵 Bitmap Matrix

    Matrix矩阵介绍 在Android中,对图片的处理需要使用到Matrix类,Matrix是一个3 x 3的矩阵,内部就是个一维数组,内部有9个元素:可以通过setValues( float[])进 ...

  6. Facade ——为子系统的一组接口提供一致界面

    Façade模式提供了子系统一组接口的一致封装特性,如下图所示: 如图所示,OperationWrapper的实现依赖SubSystem1,2等的Operation操作.但用户调用OperationW ...

  7. jenkins学习之自动打包构建nodejs应用

    上一节记录了下jenkins在centos下的安装,这节继续,说下怎么使用jenkins和nodejs进行自动打包更新服务. 创建任务 创建任务比较简单,这里我们创建自由风格项目: General信息 ...

  8. PS图像特效算法——百叶窗

    这个只要设置好条纹的宽度和条纹的间隔,建立一个遮罩层,等间隔的对原图进行等间距的遮罩. clc; clear all; Image=imread('4.jpg'); Image=double(Imag ...

  9. 关于Puppet不得不说的故事

    Puppet对于做DevOps的同学来说,是个熟悉的名字,但仍有许多人并不了解它.那么我先来简单介绍一下:Puppet是由Puppetlabs公司开发的系统管理框架和工具集,被用于IT服务的自动化管理 ...

  10. 交互神器-最好用的Mac原型设计工具

    市场上有着大量的开发和设计工具支持在Mac上安装使用,今天给大家强烈推荐一款Mac上的原型设计工具-Mockplus,原型工具在产品开发设计中是必不可少的,无论是现在非常火的小程序设计,还是网页设计, ...