可解释论文阅读(一)---Understanding Neural Networks Through Deep Visualization

要学神经网络的可解释性了,学长扔给我一大批论文,还是英文的,积了好久,哎,不看不行啊。英语白痴看论文可真难~~所以我要立个小目标,我要看完10篇,目前就一天一篇吧~

我要看的论文有这么多!!!

Understanding Neural Networks Through Deep Visualization笔记开始啦~~~(咬牙开始读)

文章结构是这样子的,第一章介绍了两种工具,第二章介绍了第一种方法,第3章介绍了第二种方法,第四章是总结。

abstract
神经网络很厉害啊,但是关于对他为什么可以这么牛,却比较落后。本文介绍了两种工具(工具还是开源的):
1.工具一可以可视化一个经过训练的每一层convert上的激活,就是让你看清楚这个网络对输入图片,每一层激活的输出是啥~~

2.工具二比较厉害,通过正则化,来实现各项特征的可视化。就是可视化卷积核呀,卷积核是很难可视化,所以一般是通过调整输入,使卷积核有最大激活的方式,就可以看到特征了。
不过,不是这样做了,出来的效果就会很好。这里有个实验介绍
所以加一些正则化的限制条件,就能够使可视化出来的特征更加真实啦,可解释性也更强~~

Introduction
卷积神经网络很强啊,这些年。受益于好设备、激活单元以及大量标注数据,在图像挑战赛上的分类能力以及超越了人类~
效果这么好,却不能解释。当然了,难解释主要是因为它有大量的相互作用还是非线性的的神经元。比如说,你想理解alexnet,你就要去理解一下60百万个参数,而且还是非线性的。但是理解了的话,你就可以很方便地去优化模型结构啦,例如,2013年imagenet大赛上的新模型就是用一种反卷积可视化的技术对网络进行了解释,发现小卷积滤波器会产生结构的变化。
大家都在用Theano、Pylearn2、Caffe、Torch,(我查了一下,这些都是一些编程框架,不好意思,菜鸟我只听过tf\pytorch)但是大家却不知道它是怎么工作的,不少专家也在为它们的新模型做一些探索。所以啊,我们这两种方法不管是对普通研究者,还是专家,帮助它们理解模型内部的运作机制,是非常有用的。
(我觉得这些话翻译过来可以放在我毕设论文什么介绍里,转换一种语言查重应该没那么容易~~)

下面介绍比较实用的
第一个工具是软件,它可以交互式地绘制用户提供的图像或视频中在每一层经过训练的DNN上产生的活动。静态图像提供了对特定输入的缓慢、无尾的研究,而视频输入则强调了DNNs对动态输入的变化响应。目前,视频是由用户的计算机摄像头实时处理的,这尤其有用,因为用户可以在视场中移动不同的项目,遮挡和组合它们,并执行其他操作,以交流地了解网络中不同的功能如何响应。

我们介绍的第二种工具能够更好地可视化单个神经元在DNN的每一层计算出的学习特征。了解已掌握的特征对于理解当前的DNNs如何工作以及如何提高直觉都很重要。

试图理解在DNNs的每一层进行的计算是一个日益流行的研究方向。一种方法是将每一层作为一个组来研究,并将一层神经元集合作为一个整体来研究其所执行的计算类型。这种方法能提供信息,因为一层中的神经元相互作用,将信息传递到更高层,因此每个神经元对DNN执行的整个功能的贡献取决于该神经元在该层中的上下文。

另一种方法是试图解释每个神经元计算出的函数。过去在这方面的研究大致分为两个不同的阵营:以数据为中心和以网络为中心。前者既需要经过训练的DNN,又需要通过网络运行数据;后者只需要训练有素的网络本身。一种以数据集为中心的方法是显示来自训练集或测试集的图像,这些图像会导致单个单元的高激活或低激活。另一种方法是为了突出图像中触发每一个神经元单元的特殊的那一部分。

以网络为中心的方法直接研究网络而不需要来自数据集的任何数据。例如,Erhan等人(2009)合成的图像会引起特定单元的高激活。从一些初始输入x = x0,通过输入计算激活ai (x)在某些单位i。然后在输入空间沿着梯度∂ai (x) /∂x合成输入导致激活单元i越来越高,最终终止在某个x∗也被认为是首选的输入刺激单位问题。

在输入空间是图像的情况下,可以直接显示x以进行解释。其他人也纷纷效仿,利用梯度来寻找导致更高激活度的图像(Simonyan et al., 2013;(Nguyen et al., 2014)或更低的acti- vations (Szegedy et al., 2013)的输出单元。

些基于梯度的方法以其简单性吸引人,但优化过程往往产生的图像与自然图像不太相似。相反,它们是由一组恰巧引起高(或低)激活的“hacker”组成的:极端像素值、结构化的高频模式和没有全局结构的常见图案的副本(Simonyan et al., 2013;Nguyen等,2014;Szegedy等人,2013年;Good- fellow等,2014)。由于最近的几项研究,激活可能受到这些“hacker”的影响这一事实得到了更好的理解。具体地说,它已经表明,这样的“hacker”可能适用于正确分类图像分类错误,是导致他们甚至通过不知不觉中微小变化(Szegedy et al ., 2013),这样的“hacker”可以发现即使没有梯度信息来产生面目全非”欺骗的例子(Nguyen et al ., 2014),而大量的非天然的图片导致极端的激活可以解释为神经网络的局部线性行为(格拉汉姆·古德费勒et al ., 2014)。

有如此强有力的证据表明,通过优化图像来引起高激活度会产生不可识别的图像,那么使用这种方法来获得有用的可视化效果还有希望吗?
结果是,如果能适当地调整优化的话。Simonyan等人(2013)表明,通过l2正则化可以生成convert网络最后一层的稍微可识别的图像。Mahendran和Vedaldi(2014)也表明了在优化过程中加入自然图像先验的重要性,当生成的图像模拟特定输入图像产生的整体层的激活模式时。我们在这些工作的基础上,贡献了三种额外的正则化形式,当它们结合在一起时,会比以前的方法产生更多可识别的、基于优化的样本。

由于优化是随机的,通过从不同的随机初始图像开始,我们可以得到一组优化后的图像,其方差提供了单元学习的不变性信息。

综上所述,本文的贡献主要有以下两点:

  1. 我们描述并发布了一个软件工具,当一个训练有素的卷积神经网络对用户提供的图像或视频做出响应时,它可以提供对每个神经元的实时交互式可视化。该工具显示前向激活值、通过梯度上升获得的首选刺激、训练集中每个单元的顶部图像、顶部图像的deconv高亮(Zeiler & Fergus, 2013),以及通过backprop或deconv从任意单元开始计算的后向差异。这些互补的可视化的综合效果比任何单独的方法更能促进对神经元计算内容的理解。我们还描述了我们从使用这个工具中获得的一些见解。(第二节)。
  2. 我们扩展了过去的工作,通过添加一些新的正则化类型来可视化输入空间中的首选激活模式,这些正则化类型产生了我们认为到目前为止对大型卷积神经网络最具解释性的图像(第3节)。

工具介绍
我们的这两个工具都是开源的,可以在http://yosinski.com/deepvis上找到。虽然这些工具可以适应与任何DNN软件框架集成,但它们与流行的Caffe DNN软件包是开箱即用的(Jia等人,2014)。用户可以使用他们自己的Caffe DNN或我们预先训练的DNN来运行可视化,这些DNN附带预先计算的图像,这些图像经过处理后可以激活这个训练过的网络中的每个神经元。我们的预训练网络几乎与“AlexNet”体系结构相同(Krizhevsky et al., 2012),但是在合并层之后使用了局部响应规范化层(Jia et al., 2014)。它使用Caffe框架对ImageNet 2012数据集进行了培训(Deng等人,2009)。

第二章开始了—Visualizing Live Convnet Activations
(就不全文翻译了,介绍一下我看懂的方法就好了~)

第2章使用的方法很简单,就是可以看卷积层、池化层、激活层这些,通过透明化这些中间过程,你就可以了解一些东西了。
比如说,1.某些层的表示有很强的局部性,就是有一些原图的局部信息。
2.对于训练集中没有的图片,用模型进行预测没有某一类别的高概率,但是却发现,输入的微小变化会对输出的概率向量有着很大的影响。

第三章开始了—Visualizing via Regularized Optimization

首先介绍了4种加正则化的方法。我们本来要做的是优化最大卷积核激活的输入,但是由于这个过程最后得到的图片,非自然(就是看不出啥信息)。所以在目标函数上加了一项,就是正则化项。但是这一项怎么加,方法就很多了。这里简单说4种:
1.一个共同的正规化,L2衰变惩罚大价值观和实现为rθ(x) =(1−θdecay)·x。L2衰变会阻止少数极端的像素值的示例图像。这种极端的单像素值既不是自然产生的,也不是很常见,对可视化也没有帮助。Simonyan等人(2013)也使用了L2衰减。
2.高斯模糊:通过梯度上升生成图像往往会生成具有高频信息的示例(可能的原因请参见补充部分S1)。虽然这些图像会导致高激活度,但它们既不真实也无法解释(Nguyen et al., 2014)。因此,一个有用的正则化是惩罚高频信息。我们实现这个高斯模糊一步rθ(x) =高斯模糊(x,θb宽度)。卷积与模糊内核更比其他正则化方法计算昂贵,所以我们增加了另一个超参数θb每个允许,例如,模糊每个几个优化步骤,而不是每一步。使用小宽度高斯核对图像进行多次模糊与使用大宽度核对图像进行一次模糊是等价的,即使在优化过程中图像变化不大,效果也是相似的。因此,这种技术在不限制正则化表达的情况下降低了计算成本。Mahendran和Vedaldi(2014)在他们的工作中使用了一种惩罚,其效果类似于模糊,称为总变异,从层代码重建图像。
3.用小标准化裁剪图片前两种正则化方法会抑制高振幅和高频率信息,因此在应用这两种方法之后,我们就得到了一个x∗,它包含的值有些小,有些平滑。然而,x∗仍然会在每个位置上显示非零像素值。即使一些像素在x∗显示主要的对象或类型的输入导致单位考虑激活,对其他所有像素的梯度x∗仍将一般是非零的,所以这些像素还将展示一些模式转变,促进在任何小的方式他们可以最终提高选择的单元的激活。我们希望使搜索偏离这种行为,而只显示主要对象,如果不需要其他区域,则让它们正好为零。我们使用一个实现这种偏见rθ(x),计算每个像素的规范(在红、绿、蓝通道),然后设置任何像素小规范为零。的门槛标准,θn_pct,被指定为一个百分比的像素规范x。
4.裁剪对激活贡献小的像素。我们可以尝试一些更聪明的方法,而不是用小的标准来裁剪像素,这样可以减少对性能的影响。计算像素对激活的贡献的一种方法是测量当像素设置为0时激活增加或减少了多少;这种方法是直接向前的,但速度非常慢,需要对每个像素进行向前传递。相反,我们通过在x附近线性化ai(x)来近似这个过程,在这种情况下,x的每个维度的贡献可以被估计为x和梯度的元素乘积。我们使用绝对值来寻找在正或负方向上贡献较小的像素。虽然我们可以选择继续设置像素的像素转换为零将导致大量活化增加,这些变化已经由梯度上升,这里我们只喜欢剪辑的像素被认为不重要,不要把大梯度步骤以外的地区线性近似是最有效的。我们定义这个rθ(x)的操作设置像素与贡献在θc_pct百分位为零。
可解释论文阅读(一)---Understanding Neural Networks Through Deep Visualization_第1张图片
图3:该图显示了每一种正则化方法在单独使用时的效果。在超参数空间中,从无正则化(左)到强正则化(右),每一行都表现为线性扫描。当应用过于强烈时,一些正则化会导致优化失败(如L2衰减,第一行)或图像的可解释性更差(小范数和小贡献裁剪,最后两行)。由于这个原因,随机超参数搜索对于寻找协同工作的联合超参数设置非常有用(参见图4)。

可解释论文阅读(一)---Understanding Neural Networks Through Deep Visualization_第2张图片
表1。四个超参数组合,产生不同风格的识别图像。我们通过300个随机选择的超参数组合重新观察图像,确定了这4个。从上到下,它们是超参数组合,分别产生了左上、右上、左下和右下的Gorilla类可视化效果,如图4所示。第三行超参数为图4中的其他类和图5中的所有类生成了大部分可视化效果。
(注意,这些参数在上面的4种正则化方法中都有添加,也就是使用上4种方法,不断改变模型的参数,最后看结果,得到这样的图片。)

图4。在fc8层上的不同类单元的优先输入的可视化,网络的1000维输出就在最后的softmax之前。左下是大猩猩类四组不同的正则化超参数的9种可视化(3×3格)(表1)。对于所有其他类,我们选择了正则化优化方法产生的四种可解释的可视化。我们选择了四种正则化超参数的组合,通过执行一个随机超参数搜索并选择相互补充的组合。例如,左下象限显示较低的频率模式,右上象限显示较高的频率模式,左上象限显示重要区域的稀疏集。通常,同时考虑这四种情况可以获得更强的直觉。我们发现,几乎在所有的情况下,人们都能猜出a类神经元代表什么。


图5。一个深度卷积神经网络的八层示例特征的可视化。这些图像反映了不同层次特征的真实大小。在每一层,我们展示了4个随机梯度下降运行每个通道的可视化。虽然这些图像是手工挑选的,以显示可视化的多样性和可解释性,但所有五个卷积层的每个过滤器的一个图像如图S1(论文尾部的补充图)所示。一个人可以在不同的尺度上识别物体的重要特征,如边缘、角落、轮子、眼睛、肩膀、脸、把手、瓶子等。可视化显示了更高层次的复杂性和变化,由更低层次的简单组件组成。模式的变化随层数的增加而增加,说明学习了越来越不变的表示。特别是从第5层(最后一个卷积层)跳到第6层(第一个全连接层),带来了很大的变化。最好的电子观看,放大。

第4章–Discussion and Conclusion
1.交互工具揭示了在后来的卷积层上的表示往往是局部的,其中通道对应于特定的自然部分(如轮子、面),而不是完全分布的代码中的维度。也就是说,并不是所有的特征都与自然部分相对应,这就增加了世界分解成不同于人类想象的样子的可能性。这些可视化结果表明,进一步研究学习表征的确切性质——无论它们是局限于单个通道还是分布于多个通道——可能会很有趣(参见Zhou等人(2014)在该领域的工作)。也表明,迁移学习,当新模型训练在conv4或conv5表示,倾向于稀疏连接可能是有用的,因为它可能需要结合只有少数从这些层特性来创建重要特性在更高的层次。

2.第二个工具——新的正则化,它支持即时验证的、可解释的、优化的可视化学习特性——将帮助研究人员和实践者理解、调试和改进他们的模型。可视化也揭示了一个正在进行的故事的新转折。
已有研究表明,在图像空间中加入一定的结构化噪声,容易使具有鉴别能力的网络受到欺骗或攻击(Szegedy et al., 2013;(Nguyen et al., 2014)。一个经常被引用的原因是,识别性训练导致网络在输入时忽略了非识别性信息,例如,通过匹配美洲豹皮毛上独特的斑点来识别它,而忽略了它有四条腿的事实。因此一直被视为希望渺茫的努力,创建一个生成模型的一个随机样本x广泛分布的空间迭代所有可能的图像,然后将x转换成一个可辨认的图像到一个区域,满足之前p (x)和后p (y | x)对某些类标签y。过去的尝试主要由生产支持这一观点的运用这种方法不切实际的图像(Nguyen et al ., 2014;Simonyan等人,2013)。
(这里没看懂)
然而,这里提出的结果提出了另一种可能性:以前使用的先验可能太弱了(关于为什么需要一个强p(x)模型的一个假设,请参见S1节)。通过对p(x)模型的仔细设计或学习,使其偏向于现实主义,一个人可能能够利用在一个有区别的学习p(y|x)模型中出现的大量参数,通过在两个模型下同时执行概率来生成现实的图像。即使使用我们在本文中作为正则化器使用的简单的手工编码的p(x)模型,也已经出现了远处像素之间的复杂依赖关系(参见图4中结构跨度超过100像素的甲虫)。也就是说,这些参数不仅编码美洲虎的斑点,而且在某种程度上也编码了它的四条腿。在更高层次的输入和激活上使用更好的、学习过的概率模型,可以看到更多的结构。Dai等人(2015)在这方面的研究显示了一些有趣的结果。虽然本文中生成的图像远非真实感照片,但它们确实表明,将经过区别训练的参数转换为生成模型(与通常的无监督训练方法相反)可能是进一步研究的一个富有成果的领域。

感想
之前的东西,一半翻译一半自己说,这篇文章,总结一下就是讲了两种方法。个人认为,第2种方法的研究性和可扩展性都要强一下,毕竟,这种正则化的规则可以瘾不同的数据集而变化,而且作者自己的参数都是调出来的比较好的一种,如果组合上不同的方法,不同的参数以及不同的数据集,应该会有不同的效果。

第一篇论文勉勉强强地读完了,不得不说,太久没碰英语了真的好难,还有就是,确实有些术语真的看不懂,要不是之前看了李宏毅老师的课,我可能更加看不懂,不知道有没有专门讲论文的这种课呀~~
自己看太难了呀~~如果有,希望路过这篇博客的大家能留下个地址,感激不尽~

兔小二会继续努力的,明天还有一篇论文呢!!

你可能感兴趣的:(可解释性学习,深度学习)