Deep Inside Convolutional Networks: Visualising Image Classification Models and Saliency Maps

开源:http://code.google.com/p/cuda-convnet/

网上的代码实现(在这个网页里面,自己寻找):https://www.jianshu.com/p/e46b1aa48886

摘要:

问题:

1.可视化神经网络,得知神经网络在做什么

方法:我们使用两种可视化技术,都是计算关于相关图片类得分的梯度

(1).可视化类的概念,最大化类得分(?)

(2).计算所给图像对应类的类显著图(?)

(3).我们建立了基于梯度的可视化方法与基于反卷积的可视化方法之间的联系

结果:

我们展示了了这些图可以应用到弱监督中的分割和分类当中。

 

介绍:

别人的工作:

1.rk, Erhan et al. [5] 可视化通过最大化神经元的激活,通过梯度上升的一个方法,这个方法被Deep Belief Network (DBN) [7]和Le et al.[9]采用做可视化工作

2.Zeiler et al. [13].等人使用了Deconv的转置卷积方法来可视化神经网络

我们的工作:

贡献:

1.我们证明了使用输入图像的数值优化可以获得ConvNet分类模型的可理解的可视化(注意,在我们的例子中,与[5]不同,网络是以监督的方式训练的,因此我们知道最终完全连接的分类层中哪个神经元应该最大化以显示感兴趣的类别(在无监督的情况下,[9] ]必须使用单独的带注释的图像集来找出负责特定类的神经元)不懂??)

2.我们提出了一个方法(基于梯度的方法),通过反传来计算显著图(这个图可以被用于弱监督目标定位??)

3.最后我们将基于梯度的方法推广到反卷积神经网络当中(相当于摘要中的建立联系)

使用的网络以及结果:

网络

1.使用与alexnet(但是没有alexnet那么宽)相似的网络,在imagenet上训练

结果

2.ILSVRC-2013:top1/top5分类误差为39.7%/ 17.7%,略高于alexnet的40.7%/ 18.2%。

 

第一种方法:Class Model Visualisation(摘要里的最大化类得分)

(1).固定已经训练好的网络权重,然后输入一张全是0的图,损失函数使用如上式所示的公式,使用L2正则化防止图像某些值太大(?这个太大不懂)

(2).如果你想看最大激活某一类(用于分类的全连接的类别)得分,你需要将你感兴趣的类设置为1,其他类设置为0(比如你对鹅感兴趣,就在全连接层在鹅这一类设置为1,其他类别设置为0)

(3).然后根据以上的损失函数,更新输入全0的图片最后就会看到最大激活鹅这一类的图片是什么样子

如下图所示:

观察此图:可以观察这张图,举个例子,假如你对鹅这一类感兴趣,那么你看goose这张图片,可以观察出恨不得满图都是鹅的身影,所以训练出来的图片就是鹅。

 

基于梯度的一种方法:Class Model Visualisation(摘要里第二个方法)

1.I代表的是一个图像的one-vector向量,Sc(I)代表是某一类的分数,Wc代表的是每一个元素对应的权重,所以就是相当于根据得分计算原图上每一个像素的梯度,一次反传就可以计算出全部

2.在灰度图像的情况下,w中的元素数等于图像I0中的像素数,因此可以将映射计算为M ij = | wh(i,j)|,其中h(i ,j)是w的元素的索引,对应于第i行和第j列中的图像像素。 在多通道(例如RGB)图像的情况下,让我们假设图像I的像素(i,j)的颜色通道c对应于具有索引h(i,j,c)的w的元素。 为了得到每个像素(i,j)的单个类显着性值,我们在所有颜色通道上取最大w值:M ij = max c | w h(i,j,c)|。(也就是对于灰度图,直接求出每个像素点所对应的梯度即可,如果是RGB,则求出3个通道上最大的那个梯度)

2.从另一种方向去理解这个基于梯度的算法是,求出每个像素点的梯度(梯度即表示变化最快的方向),即表示像素对所得分数的影响大小,梯度越大影响越大。

Weakly Supervised Object Localisation:

可以将这个类显示图用作输入去做目标定位,可不可以用来分类呢?

和转置卷积方法的联系Relation to Deconvolutional Networks:

1.反卷积与梯度值相似或者相等(这个确实不能理解,也许需要重新结合转置卷积去理解吧)

2.基于梯度的方法在反传时候,对于那些前向传播中激活值为0的神经元不计算梯度,而反卷积仅使得反向传播时的值大于0(使用relu函数),对于前向传播的激活值不管大于0还是等于0,都计算

3.deconv有一个switch操作,

猜你喜欢

转载自blog.csdn.net/zxyhhjs2017/article/details/88640547