如何“突出显示”人工神经网络的输入特征?

机器算法验证 神经网络 深度学习 权重
2022-03-08 04:52:59

我正在尝试通过使用在 Torch 中实现的人工神经网络来解决二进制分类问题。我的神经网络有 82 个输入特征(=神经元)。

在实现了一个赋予所有 82 个输入神经元相同重要性的普通版本之后,我需要设计一个新版本的算法,在该版本中,用户可以突出显示/更加重视所有 82 个输入神经元中的一个特征

我怎么能在统计术语中做到这一点?我如何编辑我的算法以更加重视单个功能

4个回答

尝试广泛和深度的网络架构?直接将“重要”特征与输出神经元联系起来。

[1]。https://arxiv.org/abs/1606.07792

{1} 探索了一种在训练神经网络时考虑特征先验知识的方法。抽象的:

不同的特征与特定的学习问题有不同的相关性。一些特征不太相关;同时有些非常重要。不是使用特征选择来选择最相关的特征,而是可以基于专家意见或先验学习为算法提供特征重要性的这种知识。如果学习者考虑到特征的重要性,学习可以更快、更准确。相关辅助神经网络(CANN)就是这样一种算法。CANN 将特征重要性视为目标属性与特征之间的相关系数。 CANN 修改正常的前馈神经网络以适应相关值和训练数据. 经验评估表明,CANN 比应用特征选择的两步方法然后使用普通学习算法更快、更准确。

我没有仔细阅读论文,我不确定它是否健全,我会非常谨慎。同一作者发表了几篇关于同一主题的其他论文,例如{2}。就我个人而言,我依靠反向传播来完成这项工作。

也许另一种方法是更改​​此特征的权重更新规则和/或权重初始化规则,以使连接到您的重要特征的权重具有大于连接到其他特征的其他权重的绝对值。

最后一个想法是将您最重要的功能连接到第一层以外的层。


在神经网络中,每个信号的“重要性”是在学习阶段确定的。它在模型中是硬编码的,而不是由一个很好的数字参数表示。恐怕您可能无法手动更改功能的重要性。

如果您使用 dropout,则强制它的一种方法是在用户判断为“重要”的信号上避免它。除此之外,我真的看不出如何强迫它。请注意,我正在使用“强制”,因为您想要做的是......对于几乎所有机器学习分类器来说都是违反直觉的。

您可能会考虑将您的神经网络解释为概率图形模型。来自“图形模型的变分方法简介”,Jordan 等人:

神经网络是分层图,每个节点都具有非线性“激活”功能(见图 5)。让我们考虑一下介于 0 和 1 之间的激活函数,例如从逻辑函数获得的激活函数f(z)=1/(1+ez). 我们可以通过关联一个二元变量来将这样的神经网络视为图形模型Si对于每个节点,并将节点的激活解释为相关二元变量取其两个值之一的概率。[...] 以这种方式处理神经网络的优势包括执行诊断计算、处理缺失数据以及将无监督学习与监督学习同等对待的能力。然而,实现这些好处需要以有效的方式解决推理问题。

本文的后面部分讨论了如何有效地做到这一点。您似乎可以通过更改其相关参数的先验来“突出显示”一个特征。