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激活函数,将预测结果转化为概率分布。

         

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐