经典卷积神经网络结构——LeNet-5、AlexNet、VGG-16
经典卷积神经网络的结构一般满足如下表达式:
输出层 -> (卷积层+ -> 池化层?)+ -> 全连接层+
上述公式中,“+”表示一个或者多个,“?”表示一个或者零个,如“卷积层+”表示一个或者多个卷积层,“池化层?”表示一个或者零个池化层。“->”表示 forward 方向。
下面将分别介绍 LeNet-5、AlexNet 和 VGG-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的更多相关文章
- 经典卷积神经网络(LeNet、AlexNet、VGG、GoogleNet、ResNet)的实现(MXNet版本)
		
卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现. 其中 文章 详解卷 ...
 - Deep Learning 经典网路回顾#之LeNet、AlexNet、GoogLeNet、VGG、ResNet
		
#Deep Learning回顾#之LeNet.AlexNet.GoogLeNet.VGG.ResNet 深入浅出——网络模型中Inception的作用与结构全解析 图像识别中的深度残差学习(Deep ...
 - 经典卷积神经网络算法(2):AlexNet
		
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
 - CNN 卷积神经网络结构
		
cnn每一层会输出多个feature map, 每个Feature Map通过一种卷积滤波器提取输入的一种特征,每个feature map由多个神经元组成,假如某个feature map的shape是 ...
 - 吴裕雄--天生自然python Google深度学习框架:经典卷积神经网络模型
		
import tensorflow as tf INPUT_NODE = 784 OUTPUT_NODE = 10 IMAGE_SIZE = 28 NUM_CHANNELS = 1 NUM_LABEL ...
 - 五大经典卷积神经网络介绍:LeNet / AlexNet / GoogLeNet / VGGNet/ ResNet
		
欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! LeNet / AlexNet / GoogLeNet / VGG ...
 - 卷积神经网络之LeNet
		
开局一张图,内容全靠编. 上图引用自 [卷积神经网络-进化史]从LeNet到AlexNet. 目前常用的卷积神经网络 深度学习现在是百花齐放,各种网络结构层出不穷,计划梳理下各个常用的卷积神经网络结构 ...
 - CNN-1: LeNet-5 卷积神经网络模型
		
1.LeNet-5模型简介 LeNet-5 模型是 Yann LeCun 教授于 1998 年在论文 Gradient-based learning applied to document ...
 - 卷积神经网络的一些经典网络(Lenet,AlexNet,VGG16,ResNet)
		
LeNet – 5网络 网络结构为: 输入图像是:32x32x1的灰度图像 卷积核:5x5,stride=1 得到Conv1:28x28x6 池化层:2x2,stride=2 (池化之后再经过激活函数 ...
 
随机推荐
- linux下安装xhprof
			
https://jingyan.baidu.com/article/a24b33cd7ee1d519ff002b6d.html
 - android点击返回键,如何做到不destory当前activity,只是stop。重新返回该activity的 时候可以直接使用,不需要创建新的activity实例
			
问题描述,如题目: android点击返回键,顺序执行 pause,stop,destory. 以至于想重新进入这个activity的时候还要重新执行onCreate()方法,那么如何解决不再重新执行 ...
 - Servlet线程
			
一,servlet容器如何同时处理多个请求. Servlet采用多线程来处理多个请求同时访问,Servelet容器维护了一个线程池来服务请求.线程池实际上是等待执行代码的一组线程叫做工作者线程(Wor ...
 - asp.net 六大对象之Request、Response
			
ASP.NET的六大对象,本质上只是 Context 里面的属性,严格上不是对象. 1.Request-->读取客户端在Web请求期间发送的值 2.Response-->封装了页面执行期后 ...
 - jsp 条件查询、列表分页
			
条件查询 dao //根据搜索条件筛选数据 public List<User> GetUserBySearch(String userName, String sex) throws SQ ...
 - spring boot之从零开始开发自己的网站
			
概述 首先要感谢两位大神,该项目的想法来源自tale和MyBlog,本项目的想法. 做了一些改造,增加了一些功能和一些代码的重构,并且更换了博客主题. 关于项目,对于开发的练手项目,能够工程化,严谨一 ...
 - js中给easyUI年份,月份选择下拉框赋值
			
sp中定义 js中初始化 //年度下拉框初始化 $("#yearChoose").combobox({ valueField:'year', textField:'y ...
 - SSM-SpringMVC-24:SpringMVC异常高级之自定义异常
			
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 自定义异常,大家都会,对吧,无非就是继承异常类等操作,很简单,我就不多扯皮了,但是在xml配置文件中有个不同的 ...
 - 你应该知道的 5 个 Docker 工具
			
你可以在网上找到大量炫酷的Docker 工具,并且大部分是开源的,可以通过Github访问.在过去的两年里,我开始在开发项目中大量使用Docker.当你开始使用Docker,你会发现它比你想象的还要适 ...
 - 基于Jmeter+maven+Jenkins构建性能自动化测试平台
			
一.目的: 为能够将相关系统性能测试做为常规化测试任务执行,且可自动无人值守定时执行并输出性能测试结果报告及统计数据,因此基于Jmeter+maven+Jenkins构建了一套性能自动化测试平台 ...
 
			
		