神经网络在识别图像时决策过程的可视化?

我正在参加Coursera的机器学习课程,刚开始学习神经网络。

让我感到非常神奇的是,识别像手写数字这样“人类化”的东西,一旦找到合适的线性组合权重,就变得很容易了。

当你明白一些看似抽象的东西(比如汽车)可以通过找到一些非常好的线性组合参数,并将它们组合起来,相互输入,就能被识别出来时,这更让人感到不可思议。

线性组合的组合比我之前想象的要更具表达力。
这让我开始思考,是否有可能可视化神经网络的决策过程,至少在一些简单的情况下。

例如,如果我的输入是一张20×20的灰度图像(即总共400个特征),输出是对应识别出的数字的10个类别之一,我很想看到某种视觉解释,展示哪些线性组合的级联引导神经网络得出结论

enter image description here

我天真地想象,这可能通过在被识别的图像上添加视觉提示来实现,可能是显示“对决策影响最大的像素”的温度图,或者任何有助于理解神经网络在特定情况下的工作方式的东西。

有没有这样的神经网络演示可以做到这一点?


回答:

虽然这可能没有直接回答问题,但我在这篇Andrew Ng, Jeff Dean, Quoc Le, Marc’Aurelio Ranzato, Rajat Monga, Matthieu Devin, Kai Chen 和 Greg Corrado 的论文中发现了一个有趣的片段(强调是我的):

在本节中,我们将介绍两种可视化技术,以验证神经元的最佳刺激是否确实是面孔。第一种方法是可视化测试集中最具响应性的刺激。由于测试集很大,这种方法可以可靠地检测到测试神经元的近似最佳刺激。第二种方法是通过数值优化来寻找最佳刺激

这些可视化方法各有优缺点。例如,可视化最具响应性的刺激可能会受到噪声的影响。另一方面,数值优化方法可能容易陷入局部最小值。结果,如下所示,确认了测试的神经元确实学会了面孔的概念。

enter image description here

换句话说,他们选择了一个在识别面孔方面表现最佳的神经元,并

  • 从数据集中选择那些使其输出最高置信度的图像;
  • 数学上找到一张不在数据集中的图像,该图像将获得最高置信度。

看到它实际上“捕捉”了人脸的特征是很有趣的。
这种学习是无监督的,即输入数据没有说明图像是否是面孔。

有趣的是,这里是为猫头和人体生成的“最佳输入”图像:

enter image description here

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注