深度学习:我如何知道哪些变量很重要?


20

在神经网络术语方面(y =权重* x +偏差),我如何知道哪些变量比其他变量更重要?

我有一个具有10个输入的神经网络,1个具有20个节点的隐藏层和1个具有1个节点的输出层。我不确定如何知道哪些输入变量比其他变量更有影响力。我在想的是,如果输入很重要,那么它将与第一层具有高度加权的连接,但是权重可能为正也可能为负。因此,我可能要做的是取输入权重的绝对值并将其求和。更重要的输入将具有更高的总和。

因此,例如,如果头发长度是输入之一,则它应该与下一层中的每个节点具有1个连接,因此有20个连接(因此有20个权重)。我可以仅取每个权重的绝对值并将它们相加吗?


3
您当然可以做到这一点,但是除了“该变量在所有连接上的所有权重之和”之外,还不清楚它的真正含义。称其为“重要性”完全是任意的。
马修·德鲁里

1
我只想要任何表明变量重要的信息,我认为这可能是个好方法。
user1367204

Answers:


16

您所描述的确实是量化神经网络输入重要性的一种标准方法。请注意,为了使它起作用,必须以某种方式对输入变量进行标准化。否则,与倾向于具有较大值的输入变量相对应的权重将成比例地较小。有不同的规范化方案,例如减去变量的均值并除以其标准差。如果首先没有对变量进行归一化,则可以在重要性计算中对权重本身进行校正,例如乘以变量的标准偏差。

Ii=σij=1nhidden|wij|

这里是的标准偏差个输入,个输入的重要性,瓦特Ĵ是重连接个输入到Ĵ个隐藏节点在第一层中,和Ñ 隐藏是数第一层中的隐藏节点的数量。σiiIiiwijijnhidden

另一种技术是针对输入,使用神经网络映射的导数,对输入进行平均。

Ii=σi|dydxi|

这里是第i个输入,y是输出,并且期望值是相对于输入x的向量得出的。xiiyX


如果仅使用输入和第一个隐藏层之间的连接(而不是使用所有隐藏层),是否可以使用?
user1367204

您应该只使用第一个隐藏层。在一层之后,其他权重不会再与一个输入绑定。我略微修改了答案以澄清这一点。
山姆·马里内利

我记得另一种方法,并将其添加到答案中。
山姆·马里内利

11

一种蛮力但有效的解决方案:

通过为您的一种输入功能使用常量来尝试“删除”输入。然后,针对每种可能的情况训练网络,并查看准确性如何下降。重要的输入将为整体精度带来最大的好处。


这肯定是可能的。
SmallChess

6
但是有一个陷阱:即使一个功能非常重要,如果另一个功能与第一个功能高度相关,则根据您的标准,这两个功能都不会被认为是重要的(缺少第一个功能可以通过后者的存在来弥补,尽管信息量较少,但是这样,更多的“独特”功能将显得更为重要)
Firebug,

这有时称为消融(更具体地微烧蚀)测试
Veltzer多伦

7

105

对于浅层网络,给出了定义变量重要性的示例。

对于真正的深度网络,人们不会过多地谈论可变的重要性。因为输入是原始级别的特征,例如图像中的像素。


我编辑了评论以反映我的意思。我的意思是说第一层有20个节点,而不是5个节点。很大的份额,感谢您区分浅/深网。
user1367204

9
@ hxd1011并不是学究的粗鲁,但深层意味着更多层而不是数千个隐藏单元:)。
拉斐尔

3

那香港专业教育学院发现这一最上精心列出这个网站更具体的你可以看看这个。如果仅谈论线性模型,则必须对权重进行归一化以使其可解释,但即使如此,也可能在所提到的链接上对此产生更多误导。有些人尝试使用权重的复杂函数来解释输入的重要性(Garson的,Gedeon的和Milne的),但是即使这可能会误导您,只要滚动我提到的第一个链接,您就可以找到更多有关此的信息。总的来说,我建议您先花些力气解释一下结果。

会同意@rhadar的回答,但想补充一点,而不是使用任何常数来尝试使用该输入的平均值,并且不要忘记重新训练网络。

附言:对不起,您无法在此处发布更多链接或发表评论,因此声誉不高。


1

鉴于您有:

  1. 分类任务
  2. 训练有素的模型
  3. 归一化特征(介于0和1之间)

有没有人尝试过:

  1. 消除偏见
  2. 每次作为特征传递一个热矢量,其中所有特征除一个外均为零。
  3. 检查输出。

在那种情况下,我认为输出将是一个数字,表示功能的“重要性”,因为该输出还将代表网络中该1信号路径的输出。

就像迷宫中只点亮一个灯泡并测量从出口射出的光一样。


我认为这不会有太大帮助。您想要评估的是输入的变化会对输出产生多大的影响(
单独
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.