Answers:
神经网络有时称为“微分函数近似器”。因此,您可以做的是相对于其他任何单位区分任何单位,以了解它们之间的关系。
您也可以检查网络错误对特定输入的敏感程度。
然后,有一个叫做“接收域”的东西,它只是进入一个隐藏单元的连接的可视化。例如,这使得易于理解特定单位对图像数据的作用。也可以为更高级别完成此操作。请参阅可视化深度网络的高级功能。
通过随机增加单个功能的每个值并记录整体适应度功能如何降低来估计功能的重要性。
因此,如果您的第一个特征被连续赋值并缩放为,那么您可以为第一个特征的每个训练示例值添加。然后查看您的降低了多少。这样可以有效地从训练数据中排除某个功能,但是与交叉交互相比,从字面上删除该功能要好得多。
然后通过适应度函数降级对功能进行排名,并绘制漂亮的条形图。考虑到您对问题域的了解,至少一些最重要的功能应该通过内在检查。这也使您对意外的信息功能感到惊讶。
这种功能重要性测试适用于所有黑盒模型,包括神经网络和大型CART集成。以我的经验,功能重要性是了解模型实际功能的第一步。
这是一种特定类型的神经网络的图形直觉。在该文章的末尾,有一个指向R代码的链接,该链接显示了特定问题的可视化。看起来像这样:
2011年秋天,我参加了由Andrew Ng教授的Standford提供的免费在线机器学习课程,我们将可视化的神经网络可视化为面部检测器。输出是普通面孔。为了完整起见,我想提及这一点,但是您没有提及这种应用程序,因此我将不进行详细探讨。:)
下面提到的方法是从此链接中获取的,请访问该站点以获取更多详细信息。
从随机图像开始,即,向像素任意提供值。“接下来,我们使用此图像x作为网络的输入进行前向传递,以计算由x在网络中间某处的某个神经元i处引起的激活a_i(x)。然后进行后向传递(执行反向传播)计算相对于网络中较早激活的a_i(x)的梯度,在向后传递结束时,我们剩下梯度∂a_i(x)/∂x,或者如何将每个像素的颜色更改为增加神经元i的激活,我们可以通过在图像中添加该梯度的一小部分αα来做到这一点:
x←x +α⋅∂a_i(x)/∂x
我们会不断重复执行此操作,直到获得图像x'引起所讨论的神经元的高度激活为止。”