VGG Net
####1. 网络结构
#####1.1 不同结构的对比
VGG一共提供了6个网络版本,卷积层分为5个stage,不同的是,其他结构与A相同;
结构 B:在 A 的 stage2 和 stage3 分别增加一个3x3的卷积层,stage3,stage5 分别增加一个1x1的卷积层,总计16层;
结构D:在 C 的基础上,stage4,有13个卷积层,stage3,stage5 分别再增加一个3x3的卷积层,总计19层。
各结构效果对比:
- A 与 A-LRN 比较:A-LRN 结果没有 A 好, C, E 比较:A 是这当中层数最少的,C,E,增加了额外的非线性提升效果;
- C与D比较:3x3 的卷积核(结构D)比 1x1(结构C)的效果好。
#####1.2 相同的卷积核
此处相同的卷积核仅针对 VGG-16 与 VGG-19 来分析。所有的卷积核尺寸都是 3x3 ,填充 padding 为1。这样做的原因有以下四点:
(1)3x3 是最小的能够捕获左、右、上、下和中心概念的尺寸;
(2)两个连续的 3x3 的卷积相当于 5x5 的感受野,使决策函数更有判别性;二、减少了参数。比如输入输出都是C个通道,使用 7x7 的1个卷积层需要7x7xCxC=49CxC)。
#####1.3 C结构中的 1x1 卷积核
1x1 卷积核主要是为了增加决策函数的非线性,但是 ReLU 增加了非线性。
####2. 模型训练
数据提升:随机裁剪,RGB颜色通道变化。
正则化:L2正则化,dropout 在前两个全连接层后,参数进行随机初始化,0.01) 中采样,对于较深的网络,不用预训练的参数而直接随机初始化也可以。
收敛速度:尽管相比于AlexNet网络更深,但是 VGGNet 在更少的周期内就能收敛(总迭代次数为370k (74 epochs))。
单一尺度与多尺度训练:首先对原始图片进行等比例缩放,然后在图片上随机提取224x224窗口,对应了单一尺度的训练,其中S=384的分类器用S=256的进行初始化;
(2)多尺度(Multi-scale)训练:直接训练一个分类器,每张图片被重新缩放,512]中选择一个,后两个全连接层转化为 1x1 的卷积层) ,其通道数等于类别数量,具有不同的空间分辨率;
(3)为了获得固定尺寸的类别分数向量(class score vector),使用小卷积核的深层网络比使用大卷积核的浅层网络性能更好
(3)即使在测试时使用单一的尺度,Smax])(S∈[S_{min}(S∈[Smin�6�7Smax�6�7]) 比在具有固定最小边 (S=256或S=384) 的图像上训练具有更好的结果。这证实了通过尺度抖动增加训练集确实有助于捕获多尺度图像统计数据。
#####4.2 多尺度评估
(1)测试时的尺度抖动可以带来更好的性能;
(2)最深的配置(D 和 E)表现最好,并且这两种方法确实是互补的,实现测试误差7.3%。之后,测试误差降低到7.0%,测试误差为6.8%。最好的单一模型验证误差为7.1%。
####5. 结论
深度有益于分类准确度,VGGNet 在不同的任务和数据集上有很多好的泛化能力。
该博文主要参考资料:
[1] Very Deep Convolutional Networks for Large-Scale Image Recognition
[2] VGGNet笔记
[3] 深度学习论文随记(二)—VGGNet模型解读-2014年(Very Deep Convolutional Networks for Large-Scale Image Recognition)
[4] 深度学习之解读VGGNet
[5] 2014-VGG-《Very deep convolutional networks for large-scale image recognition》翻译
[6] 深度学习经典卷积神经网络之VGGNet
转自 https://blog.csdn.net/huangfei711/article/details/80484488