经典模型梳理:VGG

本文主要目的是为自己梳理知识,以便日后复习。

  • 网络结构
  • 堆积 3×3 的作用
  • 实验的方法

VGG

Very Deep Convolutional Networks for Large-Scale Image Recognition
https://arxiv.org/abs/1409.1556

VGG-16 的16表示网络中共有16层含有参数(pool没有)。 孙剑说过,神经网络有众多超参,但深度是影响性能最大的一个。VGG 这篇论文主要就是探索深度在卷积网络结构设计中的影响,给我们自己设计网络有重要的启发。(例如我们要获取 32×32 矩阵所有位置的信息,在加 padding 的情况下用 3×3 的核只需15层就卷完了)

文章着重探索深度,因此对比实验时固定其他超参,只添加卷积层增加网络深度,且除了 C 中有1×1的核外,每一层都使用3×3的核。网络结构如下

vgg
  • 全网络使用了3×3的卷积核和2×2的最大池化核
  • 滤波器个数从 64,64->128,128>256,256->512,512

对比实验的网络结构如下

vgg

这里有三个重点,也是我们设计网络结构非常实用的点

  1. 为什么用 3×3 的核? 因为是包含上下左右位置信息的最小单元

  2. 为什么用堆积的 3×3 的核?因为两层 3×3 的感受野等于单层 5×5(不加 padding 的情况下),但学习的参数更少, 2 ( 3 2 C 2 ) < 5 2 C 2 2(3^2C^2)<5^2C^2 ,为什么两层 3×3 的感受野等于单层 5×5?自己画个图想想,或者看看信号处理中的卷积

  3. 为什么用 1×1 的核?因为等同给网络添加了一个非线性函数,从而减少或保持输入层中的通道数不变,Inception 中把这一点发挥得是淋淋尽致!

EVALUATION

SINGLE SCALE

evaluation
  • LRN 没提高网络性能(A,A-LRN 组)
  • 深度增加分类误差减小(B比A好; C和D比B好; D比E好)
  • 1×1 的核有作用,实质是增加了一层非线性变换,讲道理模型复杂了,效果提升也是正常的(C比B好)
  • 3×3 感受野大一点的核效果更好,但参数也增多了(D比C好)
  • 尺度扰动能使误差减小,数据增强的手段之一,可以 capturing multi-scale image statistics

论文中还提及

  • 当深度达到19层时,错误率达到饱和,但是更大的数据集使用更深的模型会更好。
  • 作者用网络 B 与一个 5x5 的浅卷积网络(B中堆积的 3×3 换成 5×5)进行了比较,浅层网络的top-1错误率比B(在中心裁剪图像上)高了7%,证明了 a deep net with small filters outperforms a shallow net with larger filters

以上

参考

Simonyan. Very Deep Convolutional Networks for Large-Scale Image Recognition. 2014

Ng. Deep Learning Specialization. CNN-Classic networks

猜你喜欢

转载自blog.csdn.net/u013982164/article/details/83537747
今日推荐