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