美文网首页
卷积神经网络可视化 Visualizing and Unders

卷积神经网络可视化 Visualizing and Unders

作者: 赵智雄 | 来源:发表于2017-12-11 15:31 被阅读332次

    主要是Visualizing and Understanding Convolutional Networks这篇文章的一个笔记。

    Abstract

    卷积神经网络再ImageNet的图片分类的表现很不错,但是很多人还是搞不懂为啥CNN会有这么好的效果和怎么提高神经网络的效果,本文将解决这些问题。本文利用反卷积对featuremap进行了可视化。通过可视化展示CNN内部的一些特点,并且分析怎么优化网络结构。

    Introduction

    CNN自发明以来,在手写数字识别人脸检测,等各种视觉分类任务中都取得了不错的成绩。convnet复兴有这几个原因,1 样本多了,训练集大了2 GPU强大了3 一些更好的优化策略,例如Dropout

    本文

    • 把featuremap 重构到像素空间中实现可视化,
    • 观察特征在训练时的演变过程,并且从中发现了一些问题,
    • 遮挡图片的一部分,说明图片那部分是对分类器重要的,
    • 研究了模型的泛化能力。

    Related Work

    • 通过直接观察来分析网络模型的相关特征是一个常用的方法。缺点主要是,只适用于第一层网络的分析,高层的特征不适合人眼观察理解,就不太好用了。
    • Erhan 通过梯度下降法寻找使神经元响应最大的图片,但是这种方法容易受初值影响,而且没有反映出神经网络之中的一些不变性。
    • Leet show how the Hessian of a given unit may be
      computed numerically around the optimal response,
      giving some insight into invariances. (没看懂。。。)
    • 本文提出的是一种非参数化观察网络的不变性的方法。

    Approach

    采用 (LeCun et al.,1989) and (Krizhevsky et al., 2012)提出的标准的监督学习卷积网络模型,把输入的二维图像通过一系列神经网络层转换为一个概率向量,每个概率对应C个不同分类。每层包括 1 卷积层,2 relu激活层, 3 [可选]maxpooling池化层。4 [可选] 归一化层。最后几层是全连接层,输出层是一个softmax分类器。图3展示了这个模型。


    image.png

    用交叉熵损失函数,随机梯度下降进行训练。

    Visualization with a Deconvnet

    图一展示了一层的反卷积可视化流程。

    image.png
    反卷积可以认为是卷积的逆过程,他们具有相同的卷积核和pooling参数。
    我们要验证特定的featuremap,把其他的activation全设成0,(我理解是一个卷积核对应一个activation,也就是一个featuremap ,就是把特定的featuremap保留这层其他的featuremap置成0,送到反卷积网络里。或者把其他卷积核置0,只保留一个。)然后送到反卷积网络里,经过一系列的反池化,反激活,反卷积,最后回到像素空间。
    • Unpooling 池化是不可逆的,记录每次最大值的索引,反池化的时候,最大值放回原来的位置,其他地方置0。
    • Rectification 再通过一次relu保证没有负值。(为啥要保证没有负值。。。)
    • Filtering 反卷积使用和卷积一样的权值的转置。(https://www.zhihu.com/question/43609045 高票答案对反卷积解释地挺好)
      unpooling的过程中,只保留了极大值的信息,其它地方填充0,因此重构出来的图片更像是原图的某些碎片。

    Training Details

    使用ImageNet训练集。先截取图片中心256 * 256像素的位置,然后减去图片的颜色均值,再截10个不同的224 * 224的窗口(水平翻转,滑动)。随机梯度训练。学习率0.01,动量系数0.9,当误差趋于收敛时,手动停止。Dropout系数0.5,所有权值初始值0.01,bias设为0。图6(a)展示了部分卷积核,其中有一部分核数值过大,于是对均方根大于0.1的进行归一化,使其均方根为0.1。


    image.png

    Feature Visualization

    image.png

    图2 显示了9个让特定featuremap响应最大的可视化结果。从而展示其中的不变性。一些固定的输入特征刺激神经网络产生固定的输出特征(隐含的),这也解释了图像畸变时候,为什么输出结果保持不变。和重构特征相比,输入图片之间的差异很大,而重构特征只包含哪些具有判别能力的纹理结构。举例说明,第5层第1行第二列,9张图片个不相同,重构出来的特征显示的是背景的草地,没有前景特征。


    image.png

    层2展示了物体的边缘和轮廓,以及颜色的组合。
    层3展示了更复杂的特征,相似的纹理。
    层4不同组重构的特征有较大差异,狗的脸,鸟的腿。
    层5每组图片都展示了存在重大差异的一类物体,如,键盘,狗。

    Feature Evolution during Training

    image.png

    经过一定次数迭代后底层特征先趋于稳定,高层特征则需要更多周期。

    Feature Invariance

    image.png

    分别进行了平移和缩放和旋转变换。在第一层,微小的输入对输出特征的影响都比较明显。到高层平移和缩放的影响越来越小。对旋转操作没有明显的不变性,除非实物本身比较对称(就像第五个图entertainment center)。

    Architecture Selection

    经过可视化发现,(1)第一层是高频和低频内容的混合,中频部分比较缺乏。(2)第二层的可视化效果比较混乱,可能是因为第一层的卷积层步长4太大导致的。于是把第一层的模板从11 * 11改成了 7 * 7,把步长从4改为2。改完提升了性能。

    Occlusion Sensitivity

    image.png

    把灰块覆盖在可视化的区域,识别率明显下降。这也表明可视化出来的东西和特征确实有着对应关系,也就验证了图2和图4。

    Correspondence Analysis

    深度神经网络没有一套有效的理论分析特定物体的部件之间的关系,但是可能是隐式计算了这些特征。


    image.png

    ImageNet 2012 Varying ImageNet Model Sizes

    image.png

    调整神经元的数量,或者完全删除他们。去除6,7,error只长了一点,去除中间两个卷积层影响也较小,这四层都去掉性能骤降。改变全连接的大小,影响不大,增加卷积核的个数可以提高性能,增加卷积核同时增加全连接个数,似乎有点过拟合。

    Feature Generalization

    保持卷积层不变,仅训练softmax分类器,测试了其他数据集。表现,基于imagenet库训练的特征似乎更有效。

    Feature Analysis

    image.png

    模型学习到的特征同样适用于svm分类。保留层越多,分类性能越好。说明,深度增加了,网络学到的特征更好。

    相关文章

      网友评论

          本文标题:卷积神经网络可视化 Visualizing and Unders

          本文链接:https://www.haomeiwen.com/subject/thgvixtx.html