【问题标题】:Visualizing a feature/kernel produced by a CNN via an "optimal" input image using Keras使用 Keras 通过“最佳”输入图像可视化由 CNN 生成的特征/内核
【发布时间】:2017-03-30 21:22:09
【问题描述】:

因此,我一直在对 CNN 的可视化进行大量研究,但我似乎无法找到我正在尝试做的事情的解决方案,或者至少无法找到我对所采用方法的理解。其中很多都是相当新的和前沿的,所以我无法正确掌握这些概念。

基本上,我想采用由 CNN 训练的学习内核/特征,并从本质上制造“优化”图片,这样当内核与所述图片卷积时,我们就有可能的最高卷积和。

如果我没记错的话,这应该在图像级别而不是在过滤器/内核级别夸大内核的功能,这似乎是大多数人在可视化这些过滤器方面所做的。

如果我的问题不清楚,这里有一个例子(可能不好,但它会明白这一点。)

假设我们使用的是 MNIST,并且我已经创建了一个这样的 CNN:

具有 10 个内核/特征图的 5x5 卷积

Relu

2x2 MaxPool 2 步幅

密集+Softmax

假设我已经完全训练了我的模型,现在想要查看它生成的 10 个 5x5 内核之一,并更好地了解它在寻找什么。我想制作一张新的 28x28 图片,这样当与这个 5x5 内核卷积时,28x28 卷积的总和被最大化。

是否有已经可以做到这一点的技术?我觉得我看到的一切都涉及“展开”或“反转”神经网络(https://arxiv.org/pdf/1311.2901.pdf),在图片通过时查看特征图(http://kvfrans.com/visualizing-features-from-a-convolutional-neural-network/),或者只是查看内核本身(https://www.youtube.com/watch?v=AgkfIQ4IGaM) .

看看有没有用处?我觉得这是我所见过的最接近我要求的东西。 https://arxiv.org/pdf/1312.6034.pdf

任何见解都会有很大帮助,谢谢!

【问题讨论】:

标签: python machine-learning tensorflow neural-network keras


【解决方案1】:

这称为激活最大化,Keras 甚至有一个可用的示例here。请注意,对于当前的 Keras 版本,帖子中的代码可能已经过时,但 Keras 的示例文件夹中提供了更新版本。

【讨论】:

  • 这太棒了,非常感谢!令我惊讶的是,尽管我进行了所有的搜索,但我从未偶然发现这一点。你是我的英雄=D
猜你喜欢
  • 2017-10-12
  • 2021-03-23
  • 1970-01-01
  • 2020-05-13
  • 1970-01-01
  • 1970-01-01
  • 2018-12-15
  • 2021-07-19
  • 2018-01-14
相关资源
最近更新 更多