1 ZFNet
1.1 模型介绍
ZFNet是由 M a t t h e w Matthew Matthew D . Z e i l e r D. Zeiler D.Zeiler和 R o b Rob Rob F e r g u s Fergus Fergus在AlexNet基础上提出的大型卷积网络,在2013年ILSVRC图像分类竞赛中以11.19%的错误率获得冠军(实际上原ZFNet所在的队伍并不是真正的冠军,原ZFNet以13.51%错误率排在第8,真正的冠军是 C l a r i f a i Clarifai Clarifai这个队伍,而 C l a r i f a i Clarifai Clarifai这个队伍所对应的一家初创公司的CEO又是 Z e i l e r Zeiler Zeiler,而且 C l a r i f a i Clarifai Clarifai对ZFNet的改动比较小,所以通常认为是ZFNet获得了冠军) [ 3 − 4 ] ^{[3-4]} [3−4]。ZFNet实际上是微调(fine-tuning)了的AlexNet,并通过反卷积(Deconvolution)的方式可视化各层的输出特征图,进一步解释了卷积操作在大型网络中效果显著的原因。
1.2 模型结构
图1 ZFNet网络结构图(原始结构图与AlexNet风格结构图)
如图4.4所示,ZFNet与AlexNet类似,都是由8层网络组成的卷积神经网络,其中包含5层卷积层和3层全连接层。两个网络结构最大的不同在于,ZFNet第一层卷积采用了 7 × 7 × 3 / 2 7\times7\times3/2 7×7×3/2的卷积核替代了AlexNet中第一层卷积核 11 × 11 × 3 / 4 11\times11\times3/4 11×11×3/4的卷积核。图4.5中ZFNet相比于AlexNet在第一层输出的特征图中包含更多中间频率的信息,而AlexNet第一层输出的特征图大多是低频或高频的信息,对中间频率特征的缺失导致后续网络层次如图4.5(c)能够学习到的特征不够细致,而导致这个问题的根本原因在于AlexNet在第一层中采用的卷积核和步长过大。
图2 (a)ZFNet第一层输出的特征图(b)AlexNet第一层输出的特征图(c)AlexNet第二层输出的特征图(d)ZFNet第二层输出的特征图
表3 ZFNet网络参数配置
网络层 | 输入尺寸 | 核尺寸 | 输出尺寸 | 可训练参数量 |
---|---|---|---|---|
卷积层 C 1 C_1 C1 ∗ ^* ∗ | 224 × 224 × 3 224\times224\times3 224×224×3 | 7 × 7 × 3 / 2 , 96 7\times7\times3/2,96 7×7×3/2,96 | 110 × 110 × 96 110\times110\times96 110×110×96 | ( 7 × 7 × 3 + 1 ) × 96 (7\times7\times3+1)\times96 (7×7×3+1)×96 |
下采样层 S m a x S_{max} Smax | 110 × 110 × 96 110\times110\times96 110×110×96 | 3 × 3 / 2 3\times3/2 3×3/2 | 55 × 55 × 96 55\times55\times96 55×55×96 | 0 |
卷积层 C 2 C_2 C2 ∗ ^* ∗ | 55 × 55 × 96 55\times55\times96 55×55×96 | 5 × 5 × 96 / 2 , 256 5\times5\times96/2,256 5×5×96/2,256 | 26 × 26 × 256 26\times26\times256 26×26×256 | ( 5 × 5 × 96 + 1 ) × 256 (5\times5\times96+1)\times256 (5×5×96+1)×256 |
下采样层 S m a x S_{max} Smax | 26 × 26 × 256 26\times26\times256 26×26×256 | 3 × 3 / 2 3\times3/2 3×3/2 | 13 × 13 × 256 13\times13\times256 13×13×256 | 0 |
卷积层 C 3 C_3 C3 | 13 × 13 × 256 13\times13\times256 13×13×256 | 3 × 3 × 256 / 1 , 384 3\times3\times256/1,384 3×3×256/1,384 | 13 × 13 × 384 13\times13\times384 13×13×384 | ( 3 × 3 × 256 + 1 ) × 384 (3\times3\times256+1)\times384 (3×3×256+1)×384 |
卷积层 C 4 C_4 C4 | 13 × 13 × 384 13\times13\times384 13×13×384 | 3 × 3 × 384 / 1 , 384 3\times3\times384/1,384 3×3×384/1,384 | 13 × 13 × 384 13\times13\times384 13×13×384 | ( 3 × 3 × 384 + 1 ) × 384 (3\times3\times384+1)\times384 (3×3×384+1)×384 |
卷积层 C 5 C_5 C5 | 13 × 13 × 384 13\times13\times384 13×13×384 | 3 × 3 × 384 / 1 , 256 3\times3\times384/1,256 3×3×384/1,256 | 13 × 13 × 256 13\times13\times256 13×13×256 | ( 3 × 3 × 384 + 1 ) × 256 (3\times3\times384+1)\times256 (3×3×384+1)×256 |
下采样层 S m a x S_{max} Smax | 13 × 13 × 256 13\times13\times256 13×13×256 | 3 × 3 / 2 3\times3/2 3×3/2 | 6 × 6 × 256 6\times6\times256 6×6×256 | 0 |
全连接层 F 6 F_6 F6 | 6 × 6 × 256 6\times6\times256 6×6×256 | 9216 × 4096 9216\times4096 9216×4096 | 1 × 1 × 4096 1\times1\times4096 1×1×4096 | ( 9216 + 1 ) × 4096 (9216+1)\times4096 (9216+1)×4096 |
全连接层 F 7 F_7 F7 | 1 × 1 × 4096 1\times1\times4096 1×1×4096 | 4096 × 4096 4096\times4096 4096×4096 | 1 × 1 × 4096 1\times1\times4096 1×1×4096 | ( 4096 + 1 ) × 4096 (4096+1)\times4096 (4096+1)×4096 |
全连接层 F 8 F_8 F8 | 1 × 1 × 4096 1\times1\times4096 1×1×4096 | 4096 × 1000 4096\times1000 4096×1000 | 1 × 1 × 1000 1\times1\times1000 1×1×1000 | ( 4096 + 1 ) × 1000 (4096+1)\times1000 (4096+1)×1000 |
卷积层 C 1 C_1 C1与AlexNet中的 C 1 C_1 C1有所不同,采用 7 × 7 × 3 / 2 7\times7\times3/2 7×7×3/2的卷积核代替 11 × 11 × 3 / 4 11\times11\times3/4 11×11×3/4,使第一层卷积输出的结果可以包含更多的中频率特征,对后续网络层中多样化的特征组合提供更多选择,有利于捕捉更细致的特征。
卷积层 C 2 C_2 C2采用了步长2的卷积核,区别于AlexNet中 C 2 C_2 C2的卷积核步长,所以输出的维度有所差异。
1.3 模型特性
ZFNet与AlexNet在结构上几乎相同,此部分虽属于模型特性,但准确地说应该是ZFNet原论文中可视化技术的贡献。
- 可视化技术揭露了激发模型中每层单独的特征图。
- 可视化技术允许观察在训练阶段特征的演变过程且诊断出模型的潜在问题。
- 可视化技术用到了多层解卷积网络,即由特征激活返回到输入像素空间。
- 可视化技术进行了分类器输出的敏感性分析,即通过阻止部分输入图像来揭示那部分对于分类是重要的。
- 可视化技术提供了一个非参数的不变性来展示来自训练集的哪一块激活哪个特征图,不仅需要裁剪输入图片,而且自上而下的投影来揭露来自每块的结构激活一个特征图。
- 可视化技术依赖于解卷积操作,即卷积操作的逆过程,将特征映射到像素上。