我的神经网络刚刚学到了什么?它关心什么功能,为什么?


30

神经网络通过学习数据集的特征来实现某些目标。完成后,我们可能想知道神经网络学到了什么。有哪些功能,为什么要关心这些功能。有人可以提供有关此问题的文章吗?

Answers:


28

确实很难理解神经网络正在学习什么,但是在这方面已有很多工作。我们绝对可以了解我们的网络正在寻找什么。

让我们考虑一种用于图像的卷积神经网络的情况。我们对第一层的解释是,我们在图像上滑动了滤镜,因此我们的第一个隐藏层对应于图像的小块与各种滤镜之间的一致性。我们可以可视化这些过滤器,以查看第一层表示是什么:ķ

alexnet层1

该图片是AlexNet过滤器的第一层,并取自以下精彩教程:http : //cs231n.github.io/understanding-cnn/。这使我们可以将第一个隐藏层解释为学习以表示图像(包括原始像素)为张量,其中每个坐标是滤镜与图像小区域的一致。然后,下一层正在处理这些过滤器激活。

理解第一个隐藏层并不难,因为我们可以直接查看过滤器以了解它们的行为,因为它们直接应用于输入图像。例如,假设您正在处理黑白图像(因此我们的滤镜是2D而非3D),并且您的滤镜类似于

[01个01个-41个01个0]

想象一下,将其应用于图像的3x3区域(忽略偏差项)。如果每个像素都是相同的颜色,那么您将得到因为它们被抵消了。但是,例如,如果上半部分与下半部分不同,那么您将获得潜在的大价值。实际上,该滤镜是一个边缘检测器,我们可以通过将其实际应用于图像并查看会发生什么情况来解决这一问题。但是要理解更深的层次要困难得多,因为整个问题是我们不知道如何解释将过滤器应用于什么。0

Erhan等人(2009年)的这篇论文对此表示赞同:他们说,第一个隐藏层可视化很常见(那是在2009年),但是可视化更深层是困难的部分。从那篇论文:

这项研究的主要实验发现令人惊讶:内部单元对输入图像的响应(作为图像空间的函数)似乎是单峰的,或者至少对于所有测试的随机初始化而言,可靠且一致地找到了最大值。这很有趣,因为找到这种主导模式相对容易,然后显示它可以很好地表征设备的功能。

Chris Olah等人(https://distill.pub/2017/feature-visualization/)在此基础上讨论了一般如何(1)生成导致大量激活的图像,以了解网络的内容在寻找; 或(2)拍摄实际的输入图像,并查看图像的不同部分如何激活网络。那篇文章的重点是(1)。

在下面的图片(摘自Olah等人的链接文章)中,作者讨论了可以检查的网络的不同方面。最左边的图像显示了在输入图像空间上优化特定神经元的激活的结果,依此类推。

C.Olah等

如果您想对此有更深入的了解,我强烈建议您完整阅读该文章,并且通过阅读其参考书,您应该对本文所做的事情有很好的了解。

当然,现在所有这些仅是图像,我们人类可以理解这些输入。如果您使用的是难以解释的东西,例如一个很大的数字向量,那么您可能无法进行如此出色的可视化,但是原则上您仍可以考虑使用这些技术来评估各种神经元,层等。 。


2
+1,尤其是最后一段。我个人认为,有远见的人正在对这些大量参数进行可视化。
Haitao Du

当然+1是写得好的带有可靠参考文献的长答案。
Haitao Du

1
@ hxd1011谢谢,我认为Olah等人在那篇文章中指出了一个要点:仅查看最大化单个神经元的内容是不公平的,因为实际上该层就像一个基础,而更多的是该层所代表的空间确切的基向量。因此,尽管看起来很有趣,但其中许多可视化效果可能并不是超级有见地
jld18年

1
还有一个常见的误解是,当采用第一层过滤器时,将最大化给定神经元输出的图像块看起来与该过滤器完全相同。实际上不是,最大化神经元输出的补丁看起来像滤波器的数值一样,因为它是卷积的,而不是模板匹配的。这就是我认为存在对抗性例子的地方。
卢吉

Olah等。博客文章很好,但是他们犯了一个错误-他们“针对最大激活进行了优化”(并非完全如此,而是接近),找到了看起来与培训集中的图片完全不同的图片,并得出了CNN与我们“看”不同的结论。尽管结论显然是正确的,但推理还是有缺陷的-高维分布的模式看起来与该分布的典型样本完全不同。换句话说,正是因为CNN需要对猫进行分类,所以分发的模式一定不能是猫,而应该是“噩梦猫”。
DeltaIV '18年

7

神经网络是黑匣子模型之一,它不会给出“易于理解”的规则/或已学到的东西。

具体来说,已经了解的是模型中的参数,但是参数可能很大:成千上万个参数非常正常。

此外,对于学习到的重要特征也不清楚,您可以了解模型使用了所有特征,并通过许多复杂的操作来得出结果,用简单的英语很难说出模型如何转换每个特征。


实际上,以逻辑函数为激活函数的一层神经网络(无隐藏层)与逻辑回归相同。逻辑回归的解释非常丰富。是一个例子。但是对于复杂的神经网络/更多的隐藏层,这种解释将不适用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.