作者:18届 cyl
日期: 2021-08-08
论文:《Understanding Neural Networks Through Deep Visualization》
一、简单介绍
提供两个可以直观理解DNN内部工作过程的工具。
第一种工具是在处理图像或视频时,将经过每个层上产生的激活值进行可视化。
第二种工具通过对激活最大化加一些正则化项,改进优化图像的显示结果。
二、问题陈述
1.大型深度神经网络模型的训练方面取得了巨大的进步(AlexNet)。
2.人们无法准确理解神经网络到底学习到了什么(它有大量的相互作用且非线性的的神经元所以比较难理解)
3.观察模型已经学习到的特征对于理解当前的DNN如何工作以及如何改进它们很重要。【工具一】
4.有人提出梯度上升的方法来求使某个单元的激活最大时候的图像,作为该单元正在寻找的答案。
从初始输入开始,计算在某个单元处由该输入引起的激活。然后沿着梯度的方向在输入空间中迭代,使得单元产生的激活值越来越高,最终的被认为是该单元正在寻找的答案(最希望看到的特征)。
5.这种基于梯度gradient-based的方法以简单著称,也衍生了很多类似的方法。但这类方法的一个问题就是优化过程中产生的图像往往与自然图像不太相似(比如下图)。
6.为了获得更好的优化图像,我们对这个优化过程进行加入正则化项【工具二】。
三、How to do?
AlexNet构造图。 我们的预训练模型基本与“ AlexNet”架构相同。但是在pooling层后紧跟一个 local reponse
normalization layers层。
【工具一】每层激活的可视化
我们的第一个可视化方法非常简单:绘制图像或视频经过卷积网络的每层的激活值。
在全连接的神经网络中,神经单元的顺序是不相关的,因此这些矢量的图不具有空间信息性。然而,在卷积网络中,由于卷积核的使用可以确定输入的基本几何形状
这是我们做的可视化软件的屏幕截图。 此处展示是输入图像input在Alexnet的第covnet5层的所有256个通道的激活图像。
conv5层的大小为256×13×13,我们将其描述为256个单独的13×13灰度图像,256个图像平铺为16×16网格形式。
input:webcam输入 selected channel:conv在whole layer中人为选中的一个激活图像
deconv:从selected channel计算的原图的反卷积图像 top 9 images:训练集中让所选通道激活最大的9张图像
gradient ascent:是这九张图像在所选通道经过正则化梯度上升(工具二)得到的图像 deconv of
9:这九张图像在所选通道的反卷积图像 绿色星标突出显示所有与所选频道selected
channel有关的区域,此处为conv5_151,当所选频道更改时,这些面板将更新。
【工具二】经过正则优化后的可视化
我们的网络在ImageNet上进行了训练,首先减去ImageNet中每个像素的平均值,然后将训练样例输入到网络中。因此,网络的输入x可以被认为是一个以零为中心的输入。
在第二个工具中,我们本来要做的是优化最大卷积核激活的输入,但是由于这个过程最后得到的图片很不自然,因此我们在目标函数上加了一项,就是正则化项。但是这一项怎么加,方法就很多了。
目标函数:
这个公式的意思就是寻找一个x使得后面的式子最大,而找到的这个x就是我们可视化出的结果,即优化图像。后面的式子由两部分构成,前面是激活函数,后面是正则化项。
为了更容易求解这个式子,我们通过下面的式子来更新x:
我们提出了四种正则化的方式:
1.L2 decay
一个普通的正则化,用于惩罚大的值,排除一些极端的像素(噪点)。 因为这种极端的像素值既不会频繁出现,也不会用于可视化。L2 decay实现的公式是:
2.Gaussian blur
通过梯度上升生成的图像往往会产生一些高频成分。虽然这些图像可以引起高激活值,但它们不可解释(因为高频成分多)。因此有效的正则化就是惩罚高频信息。我们用高斯模糊来实现平滑:
因为每一步都平滑计算量很大,我们增加一个超参数每隔几个而不是每个优化步骤都模糊图像。高斯模糊就是把某一点周围的像素色值按高斯曲线统计起来,采用数学上加权平均的计算方法得到这条曲线的色值,最后能够留下人物的轮廓,达到平滑的效果。
3.Clipping pixels with small norm
前两种正则化方法是抑制高振幅高频信息,留下来的图像包含很多非零像素。这些非零像素会识别多个目标,而我们希望只识别主要的那个目标。因此我们的做法是设置个阈值,将小于阈值的像素置为零。
4.Clipping pixels with small contribution
计算出每个像素对激活值的贡献,即把x中的像素置为0 ,看激活值增加还是减少。,即把第j个像素置为0。然后把贡献值低于阈值的像素值设为0。
这种方法直观但效率特别低,实现起来非常慢,因此文中采用了一种近似的求解方法。,即梯度和x的内积,RGB三个通道相加,求绝对值,然后把贡献值低于阈值的像素值设为0。
这里将ai(x)近似看成x的线性函数,使得每维的贡献可以被x与梯度的内积算出来。
为了选出合适的参数,采用随机搜索300个可能的组合,最后找到4个较合适的组合。
参数不同,最终生成的优化图像的风格也就不同。
上图即应用四组正则化参数后输出的不同类别的优化图像
四:结论
提出了两种可视化方法:
**1.**第一个方法揭示了靠后卷积层上的特征具有局部性,因为通道chennel可以对应特定的自然部分(如轮子、面)。
个人认为它的局限性也很大,就是当卷积核特别多卷积层特别深的时候可视化效果其实很差。
**2.**第二个方法使用新的正则化帮助研究人员和实践者理解、调试和改进他们的模型。
这种方法的研究性和可扩展性都要强一些。正则化的规则可以因不同的数据集而变化,而且作者自己的参数都是调出来的比较好的一种,如果组合上不同的方法,不同的参数以及不同的数据集,应该会有不同的效果。