可视化并理解CNN

时间:2021-08-02 02:55:41

参考:https://zhuanlan.zhihu.com/p/24833574

        学习论文[1311.2901] Visualizing and Understanding Convolutional Networks

        知乎专栏这篇可视化CNN讲的挺不错,我再稍微提炼下。

        Visualization with a Deconvnet:将feature map中的特征通过反池化、反激活、反卷积映射到像素。

反池化可通过记录最大激活值的位置来实现,反激活直接使用ReLU,反卷积采用该卷积核的转置来进行卷积操作(why?)

Convnet Visualization

       1.Feature Visualization:

      我们发现了CNN学习到的特征呈现分层特性,底层是一些边缘角点以及颜色的抽象特征,越到高层则越呈现出具体的特征,

这也为如何得到更好的模型给出了指导,一个最简单的思路便是使网络更深,使得每层的特征更加层次分明,这样就能学到更加泛化的特征。

     这里还有一个重要的公式,感受野的计算公式:可视化并理解CNN

       其中可视化并理解CNN表示第i层layer的输入的某个区域,可视化并理解CNN表示第i层layer的步长,可视化并理解CNN表示kernel size,注意,不需要考虑padding size。

   2.Feature Evolution during Training

      底层先收敛,然后高层再收敛。

   3.Feature Invariance

     小变换对模型的第一层有着显著的影响,但对顶层影响较小,对于平移和缩放是准线性的。网络输出对于平移和缩放是稳定的。

但是一般来说,除了具有旋转对称性的物体来说,输出来旋转来说是不稳定的.这说明了卷积操作对于平移和缩放具有很好的不变性,而对

于旋转的不变性较差。

    还有其他部分的实验,个人感觉说服力并不是那么让人信服。

 可视化实践:因为在家,没有实验环境,这部分就先留着,等回学校试试