我目前正在使用 keras 并希望可视化每一层的输出。当具有神经网络输出层的可视化时,如下例所示,用于 MNIST 手写数字识别。
- 研究人员从这些图像中获得了哪些信息或洞察力
- 这些图像是如何解释的
- 如果您选择查看图层的输出,您的选择标准是什么?
非常感谢任何意见或建议。谢谢你。
我目前正在使用 keras 并希望可视化每一层的输出。当具有神经网络输出层的可视化时,如下例所示,用于 MNIST 手写数字识别。
非常感谢任何意见或建议。谢谢你。
前言:卷积网络是应用于图像部分的过滤器的集合(步幅,在 gif 中可以看到)。如果图像的给定子部分与过滤器匹配,它们会产生真/假标签。
在我看来,您在提供的图像中看到的并不是这些可视化如何工作的最佳表示,因为它们可视化了 CNN 如何通过每个神经元感知整个图像。这意味着它们看起来都非常相似。
这是网络基本过滤器外观的更好表示。其中一些会在直线上触发,另一些会在水平线上触发。这也是您链接的图像所显示的内容,除了整个图像在视觉上简单的对象上显示,这使得它更难以理解。当您使用构建在这些基本过滤器之上的更复杂的过滤器时,您最好将整个图像可视化。
还有一个称为迁移学习的概念,您可以在其中采用备受推崇的现有通用模型,并尝试将它们应用于您的特定问题。这些模型通常需要调整,这可能意味着删除一些不需要的层(因为我们保留的每一层意味着训练通常更耗时),和/或添加更多层。
研究人员将能够更好地解释网络中的每一层是如何建立在前一层之上的,以及它们如何有助于解决手头的问题。这通常基于直觉(可以通过良好的可视化来简化,例如这个深度可视化工具箱视频)
例如,假设我使用的是 VGG16,它是在image-net上训练的通用模型的名称。我想将其更改为对不同类别的家具进行分类,而不是最初打算分类的完全不同事物的 1000 个类别。因为它是一个通用模型,它可以识别很多不同的东西,从人类到动物,到汽车,再到家具。但是很多这些事情对我来说是没有意义的,因为它们并没有真正帮助我对我的家具进行分类。
由于我们对这些类所做的许多最重要的发现都发生在网络的不同层,因此我可以向后移动卷积层,并删除对于我正在执行的任务而言似乎过于复杂的所有内容。这可能意味着我删除了一些似乎专门用于对人类特征进行分类的层,例如耳朵、嘴巴、眼睛和脸。
据我所知,人们会在他们认为有用的情况下可视化尽可能多的层,然后通常会根据本能做出判断,然后决定保留或丢弃哪些层。
图片借自: