ZFNet 学习笔记
ZFNet
简介
神经网络的内部生成情况目前还没有被很好的理解掌握,理解一个网络的运行需要j进一步解释中间层的特征活动。 ZFNet 的作者通过构筑一种可视化结构实现了对网络的进一步理解。并通过这种方法提高了模型的perfoemance。
present a novel way to map these activities back to the input pixel space
结构
- 反卷积:使用学习到的卷积核的转置对feature map进行卷积。
- 反池化:max-pooling是不可逆的,所以杂网络训练时就需要将最大**的位置用一系列的switch变量记录下来,并与上层重构结果一并输入upplooing层。是个近似的过程。
- 反**:与**函数相同。
改进后的结构:
过程
- 将图片resize到256并减去均值作sub-crop—>
- 设定learning rate 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.
特点
-
发现了CNN学习到的特征呈现分层特性,底层是一些边缘角点以及颜色的抽象特征,越到高层则越呈现出具体的特征,这一过程正与人类视觉系统类似。
they show many intuitively desirable properties such as compositionality, increasing invariance and class discrimination as we ascend the layers.
-
浅层图象收敛更快(深层大概需要40-50epochs)
-
可用于网络结构的调整(Architecture Selection)
- 第一层feature 是高频信息与低频信息的混合(边沿信息和灰度信息)
- 并且二层显示了由于在一层中使用了较大的步长4产生了混叠
- 进行的改进:第一层kernel大小->,改变步长 4->2
-
List item
可用于观察网络训练过程中网络各层的收敛情况
为什么
为什么浅层收敛更快?是否和网络的"梯度弥散"现象相悖?
反卷积究竟完成了什么样的具体过程?
Transposed convolution animations
第一个为 No padding, no strides,第二个为No padding, no strides,transposed
思考
核心应该就是"反卷积"(or transpose convolution)和unpooling。作者试图 通过与神经网络结构相反的机构逆推出feature map 的信息以及通过对原图相应信息的比对发现神经网络的运行机制。