跟着大佬学图像分类系列,→ 传送门 ←
本博客图像分类系列文章传送门:
前言
图像分类是学习目标检测的“量变”内容,那么,废话不多说,开搞!
一、VGG 是什么?
VGG 网络是14年被牛津大学的著名研究组 VGG(Visual Geometry Group)提出,斩获该年 ImageNet 竞赛中 Localization Task(定位任务)第一名和 Classification Task(分类任务)第二名。
二、网络结构
1.网络特点
- 通过堆叠多个 3*3 的卷积核来代替大尺度卷积核(减少所需的参数)
论文提出可以通过堆叠两个 3*3 的卷积核来代替 5*5 的卷积核;堆叠三个 3*3 的卷积核来代替 7*7 的卷积核。虽然用了小的卷积核来替换大的卷积核,但并不会影响感受野,即感受野是相同的。
2.感受野(拓展)
在卷积神经网络中,决定某一层输出结果中一个元素所对应的输入层的区域大小,被称为感受野。通俗来说就是输出的 feature map 上的一个单元对应输入层上的区域大小。
如上图所示,自下向上,输入一个 9*9*1 的特征图,经过卷积层 Conv1,得到 4*4*1 大小的第一个输出层,再经过池化层 MaxPool1,得到 2*2*1 大小的输出层,。那么第二个输出层的一个单元(绿色方块)的感受野就是 2*2 大小的区域;第一层输出层的一个单元(蓝色方块)的感受野就是 5*5 大小的区域。
感受野计算公式: F ( i ) F(i) F(i) = ( F ( i + 1 ) − 1 ) ∗ S t r i d e + K s i z e ( F(i + 1) - 1 )*Stride + Ksize (F(i+1)−1)∗Stride+Ksize
式中, F ( i ) F(i) F(i) 为第 i 层感受野,Stride 为第 i 层的步距,Ksize 为卷积核或池化核的尺寸
以上图为例:
Feature Map: F ( 3 ) = 1 F(3) = 1 F(3)=1(因为上面没有了,所以是1个单元格)
Pool1: F ( 2 ) F(2) F(2) = ( F ( 3 ) − 1 ) ∗ 2 + 2 = 2 (F(3) - 1 )*2+ 2 = 2 (F(3)−1)∗2+2=2
Conv1: F ( 1 ) F(1) F(1) = ( F ( 2 ) − 1 ) ∗ 2 + 3 = 5 ( F(2) - 1 )*2+ 3 = 5 (F(2)−1)∗2+3=5
那么放在 VGG中就是:
Feature Map: F = 1 F = 1 F=1(顶层)
Conv3: F F F = ( 1 − 1 ) ∗ 1 + 3 = 3 (1 - 1 )*1+ 3 = 3 (1−1)∗1+3=3(VGG的卷积核默认步长为1,大小为 3*3)
Conv2: F ( 1 ) F(1) F(1) = ( 3 − 1 ) ∗ 1 + 3 = 5 (3 - 1 )*1+ 3 = 5 (3−1)∗1+3=5 (所以堆叠两层卷积核,感受野与一个 5*5 大小的卷积核是一样的)
Conv

本文是图像分类系列文章,介绍了VGG网络。VGG由牛津大学VGG组于14年提出,在竞赛中取得佳绩。阐述了其网络特点,如用小卷积核堆叠替代大卷积核,还介绍了感受野概念及计算方法。主要分析VGG16结构,最后给出用Pytorch搭建VGG网络的代码及数据集。


被折叠的 条评论
为什么被折叠?



