VGG论文笔记

VGG

不同深度的6种VGG的架构:

VGG论文笔记_第1张图片

注意:

1.加粗的层是相较上一层增加的层

2.weight layers是指conv和FC层

3.根据表二可知VGG参数巨多(计算:3* (3 * 3 * c)* c,比5* 5卷积核大小的少)

4.后面16层和19层的模型分别称为VGG16、VGG19

5.VGG模型很容易迁移到其他领域(VGG模型作为特征提取器可以生成4096维向量,之后交给分类器)

6.conv感受野为3*3,卷积核个数从64 * 2一直到512为止

7.max-pooling 2*2 ,步长为2

8.3* 3感受野是最小的,因为要提取上下左右四个方向的信息

9.论文中提到的conv layer width 是指卷积核个数(channels)

论文前3页要点:

1.VGG这篇论文强调了模型深度的重要性,增加深度可以提升精度。

2.多层堆叠小卷积核可以代替一个大的卷积核,感受野不变。

3.否定了LRN层,引入LRN层反而会增加内存以及计算时间。

4.利用1* 1卷积层可以提升模型的非线性表示能力(例如c中增加的层,可以视作线性变换)。

5.采用小卷积代替大卷积核增加深度。

分类框架:

1.训练

基本和AlexNet类似,通过利用minibatch梯度下降优化多分类交叉熵损失函数。batchsize=256,momentum=0.9。通过权重衰减进行正则化,dropout在前两个FC层使用,概率设置为0.5。学习率初始设置为0.01,之后每当准确率不变时除以10。总体上学习率下降了3次。模型收敛快的原因有二:1.更深的深度和更小卷积核的尺寸相当于是隐式的正则化。2.预初始化设置。

预初始化很重要,先练浅的A模型,再拿A模型的4层conv核3层fc初始化。预初始化的层的学习率不会再设置成更小的,其他初始化有随机初始化(正态分布(0,0.01)),偏置初始为0。

训练图像的大小:
设S为一个各向同性训练图的短边(training scale)

各向同性:图像长款缩小比例一样

各向异性:图像长款缩放至某一长度,如果原图是长方形,缩放后图像会变

裁剪大小固定为224 * 224,原则上S大于等于224

S=224:裁剪的图是和原图短边相等的图像

S>>224:裁剪的图像相当于图像的一小部分

设置S的方式:

1.固定S(single-scale training)S=256或者S=384,384时要先训练256来预初始化,不然太慢,学习率更小,为0.001。

2.S可变(multi-scale training)随机,S:[Smin,Smax]。相当于通过尺度抖动来数据增强。

2.测试:

测试有两个要点,一个是FC转化为FCN,一个是全局平均池化。

设Q为图像最短边(test scale)Q不一定要和S相等。

1.FCN:

VGG论文笔记_第2张图片

为什么要转化?:

1.CNN输入固定是因为有FC层,FC与前一层连接时参数要预设好,参数数量时固定的,但卷积核的参数数量就是卷积核的大小,因此输入的图像大小可以变化。

2.提升效率。

2.全局平均池化:

即将每一个通道(depth)取均值变成1* 1* depth的特征。

3.其他细节:

用了4个GPU来数据并行计算(不是模型并行?)

实验结果:

1.Q不变:Q=S,当S不变;Q=0.5*{smin+smax}当S变化。由表可见深度越深效果越好,横向比较变动的S比固定的S效果好。

VGG论文笔记_第3张图片

2.Q可变:Q={S-32,S,S+32},当s固定;Q={smin,s平均,smax},当s变化。由实验结果可见深度越深效果越好,横向比较变动的S比固定的S效果好。

VGG论文笔记_第4张图片

3.multi-crop:使用了multi-crop效果好(互补?)。

VGG论文笔记_第5张图片

模型融合:

取模型后验概率的平均值,准确率提升但不大。googlenet的效果好。

你可能感兴趣的:(论文笔记,论文阅读,深度学习,计算机视觉)