ZFNet 学习笔记

ZFNet


简介

神经网络的内部生成情况目前还没有被很好的理解掌握,理解一个网络的运行需要j进一步解释中间层的特征活动。 ZFNet 的作者通过构筑一种可视化结构实现了对网络的进一步理解。并通过这种方法提高了模型的perfoemance。

present a novel way to map these activities back to the input pixel space

结构

ZFNet 学习笔记
  • 反卷积:使用学习到的卷积核的转置对feature map进行卷积。
  • 反池化:max-pooling是不可逆的,所以杂网络训练时就需要将最大**的位置用一系列的switch变量记录下来,并与上层重构结果一并输入upplooing层。是个近似的过程。
  • 反**:与**函数相同。

改进后的结构:

ZFNet 学习笔记

过程


  • 将图片resize到256并减去均值作sub-crop—>224×224224\times224
  • 设定learning rate 10210^-2 momentum 0.9, 128-batch SGD
  • Visualization of the first layer filters during training reveals that a few of them dominate, as shown in Fig. 6(a). To combat this, we renormalize each filter in the convolutional layers whose RMS value exceeds a fixed radius of 10−1 to this fixed radius.

特点


  1. 发现了CNN学习到的特征呈现分层特性,底层是一些边缘角点以及颜色的抽象特征,越到高层则越呈现出具体的特征,这一过程正与人类视觉系统类似。

    they show many intuitively desirable properties such as compositionality, increasing invariance and class discrimination as we ascend the layers.

  2. 浅层图象收敛更快(深层大概需要40-50epochs)

  3. 可用于网络结构的调整(Architecture Selection)

    ZFNet 学习笔记
    • 第一层feature 是高频信息与低频信息的混合(边沿信息和灰度信息)
    • 并且二层显示了由于在一层中使用了较大的步长4产生了混叠
    • 进行的改进:第一层kernel大小11×1111\times11->7×77\times7,改变步长 4->2
  4. List item

可用于观察网络训练过程中网络各层的收敛情况

为什么


为什么浅层收敛更快?是否和网络的"梯度弥散"现象相悖?
反卷积究竟完成了什么样的具体过程?

Transposed convolution animations


ZFNet 学习笔记ZFNet 学习笔记

第一个为 No padding, no strides,第二个为No padding, no strides,transposed

思考


核心应该就是"反卷积"(or transpose convolution)和unpooling。作者试图 通过与神经网络结构相反的机构逆推出feature map 的信息以及通过对原图相应信息的比对发现神经网络的运行机制。

参考文献

https://arxiv.org/pdf/1311.2901.pdf