深度学习图像处理之VGG网络模型 (超级详细)
VGG介绍:由牛津大学著名研究所VGG提出,斩获该年ImageNet竞赛中Localization Task(定位任务)第一名和Classification Task(分类任务)第二名。VGG网络的配置:(VGG-16是许多模型中的主干网络)在原论文中,作者给了6个VGG网络的不同配置,并且尝试了不同的深度(11、13、16、19层)以及是否采用LRN等。在实际使用过程中,我们一般都会采用D这个配
·
VGG介绍:
由牛津大学著名研究所VGG提出,斩获该年ImageNet竞赛中Localization Task(定位任务)第一名和Classification Task(分类任务)第二名。
VGG网络的配置:(VGG-16是许多模型中的主干网络)
在原论文中,作者给了6个VGG网络的不同配置,并且尝试了不同的深度(11、13、16、19层)以及是否采用LRN等。在实际使用过程中,我们一般都会采用D这个配置,即16层:13个卷积层以及最后3个全连接层。
VGG网络的亮点:
通过堆叠多个3*3的卷积核来代替大尺度卷积核(目的:减少所需参数)。在原论文中提到,可以通过堆叠2个3*3的卷积核替代5*5卷积核(使得2个3*3的卷积核与5*5的卷积核拥有相同的感受野);堆叠3个3*3的卷积核替代7*7的卷积核(使得3个3*3的卷积核与7*7的卷积核拥有相同的感受野)。
概念扩展-CNN感受野(receptive field):
在卷积神经网络中,决定某一层输出结果中一个元素所对应的输入层的区域大小,被称作感受野。通俗的来说就是,输出feature map 上的一个单元对应输入层上的区域大小。
简单例子:
如上图,最下层是一个9*9*1的特征矩阵 ,首先将其通过Conv1(大小为3*3,步距为1),通过计算公式,可以得到大小为4*4*1的特征矩阵;再将其通过最大池化下载量操作(大小为2*2,步距为2),得到一个2*2*1的大小。
接下来计算感受野:
Feature map(最后得到的特征图):F=1
Pool1层:其输出的是2*2大小,其输入的是4*4大小,Ksize=2,Stride=2则F=(1-1)*2+2=2
Conv1:其输出的是4*4大小,其输入的是9*9大小,Ksize=3,Stride=2则F=(2-1)*2+3=5
VGG网络结构:
上面我们说过,我们常用的是D配置,即VGG-16,其过程为:①输入224大小的RGB图像②通过两层3*3的卷积核③通过maxpool(最大下载量)④通过两层3*3的卷积核⑤通过maxpool⑥通过三层3*3的卷积核⑦通过maxpool⑧通过三层3*3的卷积核⑨通过maxpool⑩通过三层3*3的卷积核、通过maxpool、通过三个全连接层、通过soft-max处理,得到概率分布。
补充:
(通过3*3的卷积核,输入、输出尺寸不变;通过maxpool,将特征矩阵的高和宽直接缩小一半)。
结构图:(通过D这个模型进行绘制的)
说明:白色矩形框:代表卷积和激活函数
红色矩形框:代表最大池化下载量
蓝色矩形框:全连接层和激活函数
橙色矩形框:softmax处理
结构过程:(配置表和结构图一起观察)
1、首先输入一张224*224*3大小的图像,经过两个3*3的卷积层之后,所得到的特征图大小为224*224*64(尺寸大小不变,因为采用的是64个卷积核,所以深度也为64)。
2、通过一个最大池化下载量层,得到的特征图为112*112*64(大小缩小一半,不改变深度)。
3、再通过两个3*3*128的卷积层,得到的特征图为112*112*128(深度变为128)。
4、通过一个最大池化下载量层,得到的特征图为56*56*128(大小缩小一半,不改变深度)。
5、再通过三个3*3*256的卷积层,得到的特征图为56*56*256(深度变为256)。
6、通过一个最大池化下载量层,得到的特征图为28*28*256(大小缩小一半,不改变深度)。
7、再通过三个3*3*512的卷积层,得到的特征图为28*28*512(深度变为512)。
8、通过一个最大池化下载量层,得到的特征图为14*14*512(大小缩小一半,不改变深度)。
9、再通过三个3*3*512的卷积层,得到的特征图为14*14*512(深度变为512)。
10、通过一个最大池化下载量层,得到的特征图为7*7*512(大小缩小一半,不改变深度)。
11、再通过两个为4000个节点的全连接层以及激活函数,得到1*1*4096向量
12、再通过一个为1000个节点的全连接层(因为1000个类别),注意不需要激活函数,得到1*1*1000向量。
13、最后将通过全连接层得到的一维向量,输入到softmax激活函数,将预测结果转化为概率分布。
更多推荐
所有评论(0)