简介
ZFNet模型获得2013年ImageNet视觉挑战赛的冠军,是在AlexNet的基础上改进而来,网络结构没有太大的突破,论文名称是《Visualizing and Understanding Convolutional Networks》。论文最大的贡献是通过可视化技术揭示了神经网络的各层到底在干什么,起到了什么作用,作者使用多层的反卷积来可视化训练过程中特征的演化及发现潜在的问题。
论文动机
CNN性能良好,识别分类精度高,但不知道为何良好,网络像黑箱子,可解释性差。
网络架构
网络整体架构和AlexNet一致,只做了参数的改动并将模型集成一起训练,参数的修改是根据可视化技术而优化。
可视化操作
一个卷积层加一个对应的反卷积层,输入的是feature map,输出的是图像像素,过程包括反池化操作、relu和反卷积过程。
反池化:严格来说反池化不能实现,在下采样过程中丢失的信息无法恢复,作者采用近似的实现,即在训练过程中记录每个池化操作位置,在反池化的时候,将最大值返回其所在的位置,其余位置补0.
relu:在训练过程中relu保证输出的feature map中的值都是正数,反之同样也要使用relu保证相同的效果。
反卷积:卷积操作后输出的尺寸小于等于输入尺寸,反卷积可将输出尺寸恢复与输入相同,相当于上采样。在反卷积过程中,与卷积使用相同的卷积核,但需要将卷积核转置,然后与输出的feature map进行卷积,主要是转置卷积操作。
随着训练,可将特征映射到输入的像素空间,观察每一层关注的最主要特征是什么。网络学到的特征存在层级结构,第二层学到一些边缘和角点信息,第三层学到一些纹理特征,第四层学到一些不变性特征,比如狗脸和鸟腿等,可解释性变差,第五层学到的特征更为显著的语义特征,区分能力更强,且对位置敏感。整个过程如下所示:
第五层可视化结果
通过可视化,发现CNN具有一些特性:
(1)特征不变性:
对于模型的第一层,输入特征小的变化也会有较大影响,但对于高层来说,几乎没有影响,网络训练之后对于平移和尺度变化具有不变性,但对旋转不具有不变性。
(2)特征演化:
底层特征经过较少的epoch训练之后就比较稳定,而高层的特征需要更多的epoch训练模型才能收敛。
(3)特征提取的通用性:
作者在ImageNet数据集上训练CNN,在保持前七层不变的情况下,重新在小数据集上训练softmax层,效果良好。说明预训练模型的特征提取功能具有通用性,这是后来迁移学习的理论基础。
论文创新点
(1)提出一种可视化方法。
(2)学习到的特征远不是无法解释的,而是特征间存在层次性,层数越深,特征不变性越强,类别的判别能力越强。
(3)通过可视化模型中间层,在AlexNet基础上提升了分类效果。
(4)预训练模型可以在其他数据集上微调得到很好的结果,为迁移学习提供理论支撑。
思考
这篇文章首次提出了可视化CNN的方法,使得优化网络有了方向,不再是简单调整参数,此外,模型特征提取的的通用性证实迁移学习可行性,不必任何一个模型都重头训练。