卷积网络的发展:卷积网络的发展经历了从简到繁再到简的过程。如下图(来自慕课官网):
1998年由LeCun提出,用于解决手写数字识别(MNIST)。如下图来自https://www.cnblogs.com/skyfsm/p/8451834.html
由Hinton的学生AlexNet提出,获得了ILSCVR 2012计算机视觉领域的冠军。如下图:
如上图可知道,其简略结构为:输入>卷积>池化>卷积>池化>卷积>卷积>卷积>池化>全连接>全连接>全连接>输出,总共有8层,有5个卷积层, 第1,2,5个卷积层之后为最大池化层,使用3个FC层。在FC层中使用了dropout层,由于FC层参数量相比卷积层参数量大的多,使用dropout可以防止过拟合,防止梯度消失。除了最后一个FC层,其他层使用了激活函数RELU,可以加快网络收敛,同时可以增加网络的非线性表达能力。
AlexNet各层输出feature map计算(作者使用GPU进行网络训练):
各层的结构和参数如下:
由公式计算卷积操作之后feature map 大小:
H = (H+2*pad-kernel_size)/stride +1
W=(W+2*pad-kernel_size)/stride + 1
由公式计算池化操作之后feature map 大小:
H = (H-kernel_size)/stride + 1
W = (W-kernel_size)/stride + 1
C1层是个卷积层,其输入输出结构如下:
输入: 224 x 224 x 3 滤波器大小: 11 x 11 x 3 滤波器个数:96 2*pad=3 stride = 4 使用了LRN
输出: 55 x 55 x 96
P1层是C1后面的池化层,其输入输出结构如下:
输入: 55 x 55 x 96 滤波器大小: 3 x 3 滤波器个数:96 stride = 2, pad = 0
输出: 27 x 27 x 96
C2层是个卷积层,其输入输出结构如下:
输入: 27 x 27 x 96 滤波器大小: 5 x 5 x 96 滤波器个数:256 2*pad=4 stride = 1 使用了LRN
输出: 27 x 27 x 256
P2层是C2后面的池化层,其输入输出结构如下:
输入: 27 x 27 x 256 滤波器大小: 3 x 3 滤波器个数:256 stride = 2, pad = 0
输出: 13 x 13 x 256
C3层是个卷积层,其输入输出结构如下:
输入: 13 x 13 x 256 滤波器大小: 3 x 3 x 256 滤波器个数:384 2*pad=2 stride =1
输出: 13 x 13 x 384
C4层是个卷积层,其输入输出结构如下:
输入: 13 x 13 x 384 滤波器大小: 3 x 3 x 384 滤波器个数:384 2*pad=2 stride =1
输出: 13 x 13 x 384
C5层是个卷积层,其输入输出结构如下:
输入: 13 x 13 x 384 滤波器大小: 3 x 3 x 384 滤波器个数:256 2*pad=2 stride =1
输出: 13 x 13 x 256
P5层是C5后面的池化层,其输入输出结构如下:
输入: 13 x 13 x 256 滤波器大小: 3 x 3 滤波器个数:256 stride = 2, pad = 0
输出: 6 x 6 x 256
F6层是个全连接层,其输入输出结构如下:
输入:6 x 6 x 256
输出:4096
F7层是个全连接层,其输入输出结构如下:
输入:4096
输出:4096
F8层也是个全连接层,即输出层,其输入输出结构如下:
输入:4096
输出:1000
AlexNet特点:
AlexNet意义:(1)证明了CNN在复杂模型下的有效性;(2).利用GPU进行训练,在可接受范围内得到了结果。
在 AlexNet的基础上做了细节调整,并取得了2013年ILSVRC冠军,从可视化的角度解释了CNN有非常好的性能的原因。
ZFNet只用了一块GPU的稠密连接结构,同时,由于可视化可以用来选择好的网络结构,通过可视化发现AlexNet第一层中有大量的高频和低频信息的混合,却几乎没有覆盖到中间的频率信息;且第二层中由于第一层卷积用的步长为4太大了,导致了有非常多的混叠情况;因此改变了AlexNet的第一层即将滤波器的大小11x11变成7x7,并且将步长4变成了2。第三,四,五个卷积核的输出通道数为 512,1024,512.
特征划分:
深层次特征鲁棒性体现在:当原始图像发生轻微的扰动,浅层次的特征会发生比较明显的变化,而深层次的特征变化越来越小即不敏感。但是,并非网络越深越好,因为伴随着网络不断加深,网络会变的越来越难训练,网络收敛变的很困难。
由牛津大学计算机视觉组和谷歌的DeepMind共同设计,主要用来研究网络的深度对于模型准确度的影响,并使用小卷积堆叠的 方式来搭建整个网络。
VGG特点:
VGG意义 :