VggNet
Paper : Very Deep Convolutional Networks for Large-Scale Image Recognition
Code : torchvision
概要
本文的主要贡献是提出了Vgg16和Vgg19两种网络结构,并强调了使用多个小卷积核代替大卷积核的重要性,提高了神经网络可训练的最大层数。再一次强调了对于神经网络而言,“深即使好”这一观点,之后若干篇paper的主要思路就是如何将网络层数增大。
网络结构
其中,Vgg16/19中的16/19指的是只包含卷积层和全连接层,不包含池化层和**函数,一共有16/19层。
对于Vgg网络,有以下几点说明
- Conv1表示卷积核大小为1*1,可以看作是对输入图片的每个像素进行了一个线性变换。
- Conv3表示卷积核大小为3*3,是具有感受野的情况下最小的卷积核,Vgg网络相当一部分的贡献在于强调了小卷积核的重要作用。
- Conv3-x表示卷积核的输出通道大小为x。
- Conv层之后紧邻一个ReLU**层,如果使用Batch Norm层,三者的顺序为 Conv-BN-ReLU。
- MaxPool窗的大小为2*2,步长为2。
核心观点
- 多个小卷积核的层叠与大卷积核的感受野相同,但是参数规模更小,例如3*3 + 3*3感受野的规模与 5*5相同。而且多个小卷积核可以搭配更多的**函数,增强模型的非线性性。
- 1*1的卷积核的作用是在不影响卷积层感受野的情况下,增强模型的非线性性。1*1的卷积核在大多数情况下有两种用途,改变输入的channel,增加一层**函数来增强模型的非线性性。
- 更深的网络可以带来更好的表现。
- 多尺度训练的重要性,如果我们在相同尺度上进行训练,那么我们可能在一些物体尺度不同的图片上分类错误,因此需要将训练图片随机放缩后进行剪裁。