12、理解与可视化卷积神经网络

目录

12.1 可视化卷积神经网络学习到的东西

12.1.1可视化激活和第一层权重

12.1.2 找到对神经元有最大激活的图像

12.1.3 用 t-SNE 嵌入代码

12.1.4 遮挡部分图像

12.1.5 可视化数据梯度及其他文献

12.1.6 基于CNN代码重构原始图像

12.1.7 保存了多少空间信息?

12.1.8 根据图像属性绘制性能

12.2 玩弄 ConvNets

12.3 将ConvNets 的结果与人类标签比较


12.1 可视化卷积神经网络学习到的东西

有一些论文提出了几种理解和可视化卷积网络的方法。这也是对神经网络中习得的特征不可解释的普遍批评的回应。在这一节中,我们简要地调查这些方法和一些相关的工作。

12.1.1可视化激活和第一层权重

层激活。最直观的可视化技术是在向前传播时显示网络的激活。对于ReLU网络,激活通常开始时看起来比较蓬松和密集,但是随着训练的进行,激活通常变得更加稀疏和局部化。通过这种可视化很容易注意到的一个危险陷阱是,对于许多不同的输入,一些激活图可能全为零,这可能指示死滤波器,并且可能是高学习率的征兆。

12、理解与可视化卷积神经网络_第1张图片   12、理解与可视化卷积神经网络_第2张图片

关于猫图,训练好的AlexNet的在第一CONV层(左)和第五CONV层(右)的激活。每个框都显示对应于某些过滤器的激活映射。请注意,激活是稀疏的(大多数值是零,这里显示为黑色),且大多是局部的。


Conv/FC滤波器。第二个常用策略是可视化权重。通常在直接查看原始像素数据的第一CONV层上最容易解释,但是也可以在网络中更深的层显示滤波器权重。权重对于可视化很有用,因为经过良好训练的网络通常显示良好且平滑的滤波器,没有任何噪声模式。噪声模式可以是网络训练时间不够长的指示器,或者可能是导致过拟合的非常低的正则化强度。

12、理解与可视化卷积神经网络_第3张图片  12、理解与可视化卷积神经网络_第4张图片

训练好的AlexNet,第一个CONV层(左边)和第二个CONV层(右)上的典型的过滤器。注意,第一层权重非常好和平滑,表示网络融合得很好。之所以对颜色/灰度特征进行聚类,是因为AlexNet包含两个独立的处理流,并且这种体系结构的一个明显结果是,一个流开发高频灰度特征而另一个流开发低频颜色特征。第二CONV层权重不是那么容易解释,但是很明显它们仍然是光滑的、格式良好的,并且没有噪声模式。


12.1.2 找到对神经元有最大激活的图像

 

另一种可视化技术是获取大量图像,喂到网络中,并跟踪哪些图像最大限度地激活一些神经元。然后我们可以将图像可视化,以了解神经元在其接受域中所寻找的东西。Ross Girshick等人在精确对象检测和语义分割的富特征层级中显示了一种这样的可视化。

12、理解与可视化卷积神经网络_第5张图片

AlexNet中最大化激活图像的一些POOL5 (第五汇聚层)神经元。特定神经元的激活值和感受域显示为白色。(特别注意,POOL5神经元是输入图像相对较大部分的函数!)可以看出,一些神经元对上半身、文字或镜面光照起反应。


这种方法的一个问题是Relu神经元本身不一定有任何语义意义。相反,将多个ReLU神经元看作某些空间在图像块中表示的基向量是更合适的。换句话说,可视化是沿着对应于滤波器权重的(任意)轴,在表示云的边缘显示补丁。这还可以从ConvNet中的神经元在输入空间上线性操作这一事实中看出,因此该空间的任何任意旋转都是不可行的。Szegedy等人在神经网络的令人感兴趣的特性中进一步论证了这一点,他们在表示空间中沿着任意方向执行类似的可视化。

12.1.3 用 t-SNE 嵌入代码

ConvNets可以被解释为逐渐将图像转换为 可以用线性分类器分类的表示。我们可以通过将图像嵌入到二维中来粗略地了解这个空间的拓扑结构,使得它们的低维表示具有与高维表示近似相等的距离。许多嵌入方法都是凭借将高维向量嵌入到低维空间中同时保持点的成对距离的直觉发展起来的。其中,t-SNE是一种最常见的方法,它能持续产生视觉上令人愉悦的结果。

为了生成一个嵌入,我们可以采取一组图像并使用ConvNet来提取CNN代码(例如,在AlexNet中,在分类器之前的4096维向量,并且最重要的是,包括ReLU非线性)。然后,我们可以将这些插入到t-SNE,并获得二维向量的每一个图像。相应的图像可以在网格中可视化:

12、理解与可视化卷积神经网络_第6张图片

基于CNN代码的一组图像的t-SNE 嵌入。相邻的图像在CNN表示空间中也非常接近,这意味着CNN“看到”它们非常相似。请注意,相似性更多地是基于类的和语义的,而不是基于像素和颜色的。有关如何生成相关代码的详细信息,以及不同尺度的更多相关可视化,请参考CNN代码的t-SNE可视化。


12.1.4 遮挡部分图像

假设一个ConvNet 将图像分类为狗。我们如何确定它实际上是在图像中提取了狗,而不是来自背景或一些其他杂物的上下文线索?研究图像的某一部分来自某种分类预测的一种方式是将感兴趣的类(例如狗类)的概率绘制为遮挡物对象的位置的函数。也就是说,我们遍历图像的区域,将图像的一个补丁设置为零,并查看类的概率。我们可以将概率视为二维热图。这种方法已被用于Matthew Zeiler的可视化和理解卷积网络:

12、理解与可视化卷积神经网络_第7张图片

三个输入图像(上)。请注意,遮挡器区域显示为灰色。当我们在图像上滑动遮挡器时,我们记录正确类的概率,然后将其可视化为热图(显示在每个图像的下面)。例如,在最左边的图像中,我们看到当遮挡器覆盖狗的脸时,波美拉尼亚的概率直线下降,这给了我们一定程度的信心,即狗的脸主要负责高分类分数。相反地,将图像的其他部分归零具有相对较小的影响。


12.1.5 可视化数据梯度及其他文献

数据梯度.

深入探索卷积网络:可视化图像分类模型和显著图

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

反卷积.

卷积网络的可视化与理解

指导下的反向传播

力求简单:全卷积网

12.1.6 基于CNN代码重构原始图像

通过反转它们来理解深层图像表示

12.1.7 保存了多少空间信息?

ConvNets 正确学习了吗?(tldr:是的)

12.1.8 根据图像属性绘制性能

 

ImageNet 大规模视觉识别挑战

12.2 玩弄 ConvNets

对抗实例的解释与治理

12.3 将ConvNets 的结果与人类标签比较

我在ImageNet竞争中用ConvNet 学到的东西

 

斯坦福大学计算机视图课程,青星大学 翻译整理

1、数据驱动的图像分类方法

2、最近邻分类器

3、k - 最近邻分类器及使用验证集取得超参数

4、线性分类: SVM, Softmax

5、优化方法:随机梯度下降法

6、反向传播

7、神经网络一: 建立网络架构

8、神经网络二:设置数据和损失

9、神经网络 三:学习与评价

10、神经网络案例学习

11、卷积神经网络:结构、卷积/汇集层

12、理解与可视化卷积神经网络

13、传承学习与卷积神经网络调谐

 

原文地址 http://cs231n.github.io/

你可能感兴趣的:(计算机视觉,卷积神经网络可视化,卷积神经网络学习到了什么)