开坑3—Visualizing and Understanding Convolutional Networks(主讲反卷积细节)

Visualizing and Understanding Convolutional Networks

摘要

正文翻译 笔记

大型卷积网络模型最近在ImageNet平台上获得了令人印象深刻的分类性能。然而,对于它们为什么表现得如此好,以及如何加以改进,人们并没有明确的理解。本文对这两个问题进行了探讨。

阐述研究问题

我们介绍了一种新的可视化技术,它能深入了解中间特征层的功能和分类器的操作。这些可视化使我们能够在ImageNet分类基准测试中找到优Krizhevsky等人的模型体系结构。

研究的成果1,可视化技术

我们还进行了一项模型简化测试,以发现不同模型层的性能贡献。我们展示了我们的ImageNet模型可以很好地推广到其他数据集:当Softmax分类器被重新训练时,它令人信服地击败了Caltech-101和Caltech-256数据集上目前最先进的结果。

研究成果2,使用可视化技术进行模型简化测试(ablation study)

1、引言

正文总结 笔记

从1990年初,卷积神经网络模型由LeCun等人[1]介绍后,便逐渐在诸多领域表现出很好的性能,如手写字母识别和人脸检测领域。在最近的十八个月内,卷积神经网络得到迅速发展,在ImageNet 数据库和CIFAR-10数据库均表现出卓越的分类识别性能。之所以有这么好的表现,我们可归纳为以下几个原因:

1.训练数据集规模大,可达百万级别。

2.GPU的应用,使得训练大规模数据可行化。

3.更好的泛化策略,如dropout策略[2]。

研究背景

除了上述这些易于理解的解释,目前缺少的是对卷积神经网络模型到底是如何作用的阐述。 从科研的立场来看这个问题,目前的对卷积神经网络的理解是令人不满意的,没有本质上清楚的解释卷积神经网络模型是怎么工作的以及为什么这么工作,那么未来的发展就只能基于过往的经验,这对卷积神经网络的发展来说是个不利因素。

问题阐述

本文提出一种可视化技术用于揭示输入是怎么激励模型各个中间特征层输出的,同时我们可以借此观察到训练过程中特征层的卷积结果来诊断模型中潜在的问题。该可视化技术主要应用多层反卷积网络,它是由ZeiLer等人[3]提出。

研究内容

本文使用可视化技术,我们从标准的全监督卷积神经网络模型开始,探索不同的体系结构在ImageNet上的表现,发现优于其结果的架构。然后对模型对其他数据集的泛化能力进行了探讨(只需对上面的Softmax分类器进行再训练。因此,这是一种监督预训练的形式,与Hinton等人推广的无监督预训练方法形成了对比)。

研究内容2:在相同卷积的情况下,重新训练分类器,来分析卷积层的性能。

1.1 Related Work(相关工作)

可视化:可视化功能,以获得对网络的直觉是普遍的实践,但大部分限于第一层,其中投影到像素空间是可能的。在较高层中,必须使用交替的方法,通过在图像空间中进行梯度下降以使单元的激活最大化,找到每个单元的最佳刺激。这需要仔细的初始化,并且不提供任何关于单元不变性的信息。在后者的短时激励下,[19]展示了如何围绕最优响应对给定单元的恒心进行数值计算,给出了对不变性的一些洞察力。问题是,对于较高的层,不变性是非常复杂的,所以很难用简单的二次近似来捕捉。相反,我们的方法提供了不变性的非参数视图,显示了训练集中哪些模式激活了特征图。我们的方法类似于Simonyan等人的当代工作。[23]通过从完全连接的网络层向后投影,而不是我们使用的卷积特征来演示如何从ConvNet中获得显着性映射。girshick等人[10]显示可视化,以识别数据集中的补丁,这些补丁负责在模型的较高层进行强激活。我们的vi-假设的不同之处在于,它们不仅仅是输入图像的作物,而是自上而下的投影,它们揭示了每个卷积中刺激特定特征图的结构。

总结:反卷积为自上而下的投影,反应特定卷积核(或特征图的特征)

2. 反卷积网络的设计

理解卷积神经网络的突破点在于理解中间特征层含义,本文提出一种新颖的方法可将中间特征层的输出映射到原始输入的空间上,这种映射是通过反卷积网络来实现的,一个反卷积网络可以看做是利用相同元素(kernels, pooling )的卷积网络,只是这些元素的顺序要依次对调过来。卷积神经网络是把像素映射成特征,那么反卷积网络就是把特征映射为输入空间上的像素

应用反卷积网络辅助理解一个卷积神经网络,需要在该网络模型的每一层附带一个反卷积层,在检测理解某一层的某一个activation map时,我们需要先将该层的其他activation map 的值置为0,然后将该层的feature maps 作为输入传递给该层附带的反卷积层,依次执行unpooling, rectification, filtering 来重构响应的输入像素特征。(查阅了一下其他博客发现activation map就是特征图的意思)

补充:1)反卷积不是放在一起的,而在每个卷积层后都有。

           2)反卷积在计算时,是一个特征图一个卷积核那样计算的。

具体的部件如下:

Unpooling: 在卷积网络中,max pooling 操作是不可逆的,然而我们可以通过记录最大值的位置(switch variables)来近似执行它的反操作。

Rectification: 在卷积层中,利用relu这一非线性函数来校正feature maps,使得特征值均为正值,因而在反卷积中来实现特征重构时,也需要将值传递给一个relu的非线性函数。(为什么直接传给relu而不给反函数呢?哈哈哈,因为relu本身啊)

Filtering: 在卷积网络中,利用可学习的filters 来跟上一层的feature maps进行卷积,为了近似的反转这个过程,反卷积层利用同一filter的转置矩阵(FT)作为卷积核

3、具体训练流程

从图中可看出"reconstruction"是"layer below pooled map"的一个重构近似结果。(反卷积也是一个近似结果)

4、网络特征可视化

如图 3.1所示是将模型进行特征可视化的结果示意图。对于一个给定的feature map,我们选取前九个activations,每一个都单独反卷积过去投射到像素空间(投射的结果称为projections),从而揭示了与之对应的filter所敏感的像素特征。旁边是与之对应的图像块。对比可发现,这与我们视觉的观察结果有很大不同。例如,在5层中,第一列的第二个中,图像块彼此并没有什么相同点,但相应的filter却发现了它们有相同的背景,并不是背景前面的物体。

此外,每一层的projections显示的信息均具有层次感,也体现了神经网络观察分辨图片的层次能力。如第二层网络对应的是边界、轮廓和色块信息;第三层捕捉的是纹理信息;第四层展现了较大的差异主要是一些类别上部分的信息,狗的脸,鸟的腿等;第五层展示的是不同姿势的整个物体的视图。

5、敏感性遮挡验证

对于图片分类算法来说,一个重要的问题是我们的模型是否可以找到图片中物体所在的局部区域来分辨出物体还是根据环境信息来判别。图4系统性的回答了这个问题,通过有计划的遮挡输入图片的某一部分,监测分类器的输出。实验证明,如果将图片的物体部分遮挡住了,输出的正确标签那一项的概率会迅速减小。

6、总结

本文利用ImageNet 2012的数据库训练了一个8层的神经网络如图1所示,然后利用反卷积网络的方法来观察模型的特征。实验表明,卷积神经网络模型之所以有这么好的分类性能是有道理可循的,卷积神经网络层捕捉的特征虽然跟我们人类看到的不尽相同,但也有很强的层次和规律在其中,理解了这一点,可以帮助我们更好的设计和训练卷积网络模型。此外,通过敏感性遮挡实验验证,卷积网络模型在识别一个物体时,起重要判别依据的是物体本身而非背景环境等不相干的信息,这一点证明了卷积神经网络模型可用性强的特点。尽管卷积神经网络模型在图片分类领域已达到精湛的水平,但仍存在一些问题,图卷积神经网络虽然对略微位移和缩放的图片不会改变判别正确率,但是无法对旋转产生很好的鲁棒性。

本文参考

补充:

猜你喜欢

转载自blog.csdn.net/weixin_37799689/article/details/89235921