我怎样才能让我的神经网络强调一些数据比其他数据更重要?

How can I make my neural network emphasize that some data is more important than the rest?

我在网上找了一圈也没找到,但我很可能漏掉了这方面的文献。我是 运行 一个在 289 分量向量上生成 285 分量向量的基本神经网络。在我的输入中,最后 4 条数据对于将输入的其余部分更改为输出的结果 285 至关重要。也就是说,输入是 285 + 4,使得 4 将输入的其余部分变形为输出。

但是当运行一个神经网络放在这个上面的时候,我不知道怎么去反映这个。我需要对其余输入使用卷积吗?我希望我的系统强调对其他 285 个数据点有严重影响的 4 个数据点。我对所有这些仍然是新手,所以一些指示会很棒!

同样,如果上面已经写了一些东西,那也很棒。

神经网络或多或少应该自己学会这个东西。特别是对于像深度学习和朋友这样的新方法,手动调整的数量几乎为零。但是,这确实假定您要学习的功能是可学习的,并且您使用的系统具有足够的能力来学习它。这是所涉及网络的复杂性(层数、节点、激活类型等)、所涉及的学习算法以及您提供的数据的函数。

如果不进一步了解您所访问的域,真的很难分辨吗?我们在谈论什么样的信号(我假设它们是信号,因为你说的是​​卷积)?四个输入是关于什么的?我假设他们的方式与其他 285 不同。

也许这个 doc 会有点帮助。

我认为您没有任何理由这样做,因为网络会自行推断。考虑到输出,将根据每个输入的重要性减少或增加权重。

不过,您可以做的是建立一个将 285 组件作为输入的初步网络,然后是一个将具有 4 个关键组件和初步网络输出的新网络作为输入。

[285 compo.]---[neural network]---+---[neural network]---[output 285 compo.]
                                  |
                       [4 compo.]-+

例如,您可以用卷积网络处理一张图片,然后在全连接网络中添加一些元信息来处理所有内容。

要强调输入向量中的任何向量元素,您必须向神经网络提供较少的不重要向量信息。

尝试使用多人神经网络将前 285 个不太重要的数字编码为一个数字或您喜欢的任何矢量大小,然后将该数字与其他 4 个数字一起用作神经网络的输入。

示例:

v1=[1,2,3,.......285]

v2=[286,287,288,289]

v_out= Neural_network(input_vector=v1,neurons=[100,1]) # 100 个隐藏单元,一个输出。

v_final=Neural_network(input_vector=v_out,neurons=[100,1]) # 100 个隐藏单元,1 个输出。

理论上,您可以让网络尝试学习这种关系。但是,有充分的理由尝试重新考虑您提出问题的方式。此外,神经网络学习此函数的难度将在很大程度上取决于您的具体问题(最好的解决方法可能就是尝试并找出答案)。

让我尝试通过类比一个更简单的问题来提供帮助:让我们以 289 个元素的向量为例,并假设 285 个元素的值介于 -1 到 1 之间,其余四个元素的值介于 -1000 到 1000 之间。这保持了你原来的前提:这四个变量在确定输出方面比 285 重要得多。(我知道这失去了变量之间的耦合关系,但无论如何让我们 运行 举个例子。)

这是一个更简单的示例,原因有二:

  1. 更容易理解为什么更难学

  2. 有很多易于理解的技巧可以解决它

与所有289个输入具有相同输入范围的场景相比,梯度下降算法在异构情况下收敛速度会更慢。 (额外的功劳:试试这个!)Geoff Hinton 有一组相当著名的幻灯片,它很好地描述了这种效果:Lecture 6。我相信这也是 Coursera 课程的一部分。

Hinton 的幻灯片还谈到了解决这个更简单版本的问题的两种方法。第一个只是预处理您的输入。如果您缩小输入以具有相同的均值和方差,您的梯度下降优化器将收敛得更快。另一种是使用更强大的优化方法,特别是具有每参数自适应学习率的方法,它可以处理这种情况以及更棘手的情况。来自斯坦福大学 CS231n class 的 Andrej Karpathy fantastic notes 是一个很好的介绍。

但是让我们将其与您的问题联系起来:有四个"special"变量转换整个输入。只要有足够的时间和输入,网络就有可能学会这个功能。但要明白,如果这种转换很复杂并且使优化环境变得粗糙,您的网络可能会在处理它时遇到一些麻烦。

如果有一种方法可以改变您对问题的表述来避免这种情况 link,我会说尝试去追求它。如果没有,那就准备动用大炮来解决问题吧。

在不了解您问题的具体情况的情况下,很难给出更具体的建议。另外,最终,您将是解决问题的人,因此您最终将成为专家!