0. 写作目的
好记性不如烂笔头。这里只是笔者记录的过程,如果读者有时间的话,建议看英文论文。
1. 网络结构
1.1 为什么采用更小的卷积
主要思想是:将卷积核换成卷积核较小的。
例如: 5 * 5 的卷积的视野与 2个 3 * 3 的卷积视野相同。7 * 7 的卷积视野与 3 个 3 * 3 的卷积视野相同。
以1层 7 * 7的卷积换成 3层3 * 3的卷积为例进行说明:
i) 使用3层非线性来代替1层非线性,使得决策函数更具有可分性(原文)。
可以这样理解:增加了网络的非线性程度。
ii) 可以减少参数的量
如: 假设 输入和输出feature map 的channel 都是C,
则采用7 * 7的参数为: 7 * 7 * C * C = 49C*C
采用 3 个 3 * 3的参数为 (3 * 3 * C * C) * 3 = 27C*C
1.2 网络配置
VGG认为在AlextNet中的LRN 对降低test error 没有什么用处,而且会增加内存消耗和运行时间,因此去除LRN。
卷积时采用的是保持分辨率不变的卷积。激活函数是:ReLU.
下图中Net-D 和Net-E分别是我们平时所说的VGG16 和VGG19.
通过Net-A 和 Net-A-LRN对比,发现LRN不能降低test error,因此其他网络均未采用LRN。
在两个4096全连接层后加上Dropout( 0.5 ).
2. 训练时的细节
2.1 训练参数的设置
SGD wit