我们可以从 max-activation 生成的图像中了解什么?

数据挖掘 可视化 卷积神经网络
2022-02-14 17:15:28

有几种方法可以生成迷幻图像,为卷积神经网络中的单个神经元提供最大的激活。例如,那里有很多https://app.slack.com/client/T040HKJE3/threads/thread/C04655480-1581762147.250800?cdn_fallback=2https://arxiv.org/abs/1311.2901中的一些( M. Zeiler)或在https://www.youtube.com/watch?v=ghEmQSxT6tw但我们能从他们那里得到什么?

例如,这里在此处输入图像描述 存在 6 条鱼片是否意味着网络在 1000 张火车图像上主要看到了 6 种不同位置的鱼?或者这是由一些角落效应或图案尺寸引起的?像 224 个源像素/100 = 2.2 条水平鱼。

我也不太了解它们是如何获得的,因此无法推测它们可以描绘哪些方面。

当我们找到能提供最强激活的部分训练/验证图像时,有一种方法。这对我来说是完全可以理解的。

2个回答

这些是学习特征的激活图。

在这个特定模型的情况下,过滤器了解图像的“可疑”部分:

  • 定义凸包的头部和背部完成部分
  • 凸包内部有鳞片状纹理,外面有水状纹理

  • 凸包内部为橙色和灰色,外部为蓝色

  • 头部部分往往不在图像的角落(因为人们构图并且人们认为面孔很有趣)

经过更多阅读和思考后,我可以补充的是,“图像,为 neiron 提供最大激活”意味着网络(通过反向传播)将尝试通过最有效的方式,甚至在可能的情况下并行通过几种方式.

  1. 前一层的识别眼睛、身体和鳍的神经元的卷积在它们彼此相对正确的位置时最大。因此,网络受限于图案的最小尺寸。

  2. 卷积系数类似于 -0.5、1、0.5(我将 3*3 卷积简化为 1D)。这意味着像“不在这里”、“理想情况下在这里”、“如果在这里还可以”。因此,如果前一层的 neiron 在位置 1 和 2 处都 > 0,则图像可能包含 2 个鳍,这将提供更高的激活。所以通常网络会尝试将最大模式推入给定空间(例如 224*224 像素)。

  3. 也许在无限的输入图像上,我们会看到相同的重复模式,但在现实生活中角落处的填充等限制了它们并使其不同。

所以现在我认为生成图像上的位置并不意味着它们在源图像上是这样的,也许有点,间接地,作为调整角效果的副作用。但是颜色和图案大小必须反映源图像。

有趣的是为什么它们如此嘈杂......第一层的卷积通常非常平滑......