【深度学习】经典卷积神经网络(三)ZFNet

简介

这篇论文是在AlexNet的基础上做了细微的改动,总的结构没有太大突破,其主要贡献是通过可视化揭示了神经网络各层的作用。这一点也是非常重要的,如果不知道原理只能盲目的进行网络设计与调参。
论文:《Visualizing and Understanding Convolutional Networks》,作者Zeiler硕士阶段的导师是著名的Hinton。

结构

【深度学习】经典卷积神经网络(三)ZFNet
作者最初提出了一个反卷积神经网络,但是没有流行起来,在AlexNet代表的CNN流行起来以后发现可以通过反卷积的思想来对层中的内容进行可视化。这样就可以通过feature map粗略的重建图像像素,因为有些操作并不存在严格意义上的逆操作。
作者对每一层的feature map通过反卷积去学习,可以对filter可视化。
这样可以得到很多中间层的结果:
【深度学习】经典卷积神经网络(三)ZFNet
【深度学习】经典卷积神经网络(三)ZFNet
根据对中间层的输出,作者尝试去改进神经网络。例如作者发现了一些噪声与扰动,通过在AlexNet基础上修改了第一层卷积核大小(可能是因为太大导致出现噪声)与pooling的stride(stride有所降低)。
【深度学习】经典卷积神经网络(三)ZFNet

思考

尽管各个层面也没有做的特别深入,ZFNet也并没有那么流行起来,但其解释了CNN学习过程中各层的特征,并以此找到问题所在对AlexNet进行优化,很多思想还是值得借鉴。比如我们前几层学到的都是角点纹理之类的东西,如果用作预训练模型对训练其他网络也会有帮助。

  • 减小卷积核尺寸
  • pooling stride不要太大
  • 宽度对性能也有帮助