ZFNet 学习笔记

  • by Xie Zhe & One Way

ZFNet


简介

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

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

结构

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

改进后的结构:

ZFNet 学习笔记_第2张图片

过程


  • 将图片resize到256并减去均值作sub-crop—> 224 × 224 224\times224 224×224
  • 设定learning rate 1 0 − 2 10^-2 102 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 学习笔记_第3张图片
    • 第一层feature 是高频信息与低频信息的混合(边沿信息和灰度信息)
    • 并且二层显示了由于在一层中使用了较大的步长4产生了混叠
    • 进行的改进:第一层kernel大小 11 × 11 11\times11 11×11-> 7 × 7 7\times7 7×7,改变步长 4->2
  4. List item

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

为什么


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

Transposed convolution animations


ZFNet 学习笔记_第4张图片 ZFNet 学习笔记_第5张图片

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

思考


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

参考文献

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

你可能感兴趣的:(图像处理,deep,learning)