我在网上环顾四周但却找不到任何东西,但我可能错过了一篇关于此的文献。我在289分量矢量上运行基本神经网络以产生285分量矢量。在我的输入中,最后4个数据对于将输入的其余部分更改为输出的结果285至关重要。也就是说,输入为285 + 4,这样4将输入的其余部分变形为输出。
但是在运行神经网络时,我不知道如何反映这一点。我是否需要对其余输入使用卷积?我希望我的系统能够强调对其他285产生重大影响的4个数据点。我仍然是所有这些的新手,所以一些指针会很棒!
同样,如果已经写了一些内容,那么这也很棒。
答案 0 :(得分:2)
神经网络应该或多或少地自己学习这个东西。特别是对于深度学习等新方法。朋友,其中手动调节的量几乎为零。但是,这确实假设您尝试学习的功能是可学习的,并且您使用的系统具有足够的功能来学习它。这是所涉及的网络复杂性(层数,节点,激活类型等),所涉及的学习算法以及您提供的数据的函数。
如果不了解您正在处理的域名,真的很难说?我们在谈论什么样的信号(我认为它们是因为你说的是卷积的信号)?关于四个输入是什么?我认为他们的模态与其他模式不同。
也许这个doc会有所帮助。
答案 1 :(得分:2)
我认为你没有任何理由这样做,因为网络会自行推断。考虑到输出,根据其重要性,每个输入的权重将被减少或增强。
你可以做的是,有一个初步的网络,将285组件作为输入,然后一个新的网络,将有4个关键组件和初步网络的输出作为输入
[285 compo.]---[neural network]---+---[neural network]---[output 285 compo.]
|
[4 compo.]-+
例如,您可以使用卷积网络处理图片,然后在完全连接的网络中添加一些元信息以处理所有内容。
答案 2 :(得分:1)
理论上,你可以让网络尝试学习这种关系。但是,有充分的理由尝试重新思考您制定问题的方式。此外,神经网络学习此功能的难度将在很大程度上取决于您的具体问题(找出问题的最佳方法可能只是尝试并发现)。
让我尝试通过对一个更简单的问题进行类比来帮助:让我们采用你的289元素向量并假设285个元素从-1到1取值,其余四个取值从-1000到1000.这保持了你的原始前提:在确定输出时,四个变量在某种程度上比285更重要。(我知道这会失去变量之间的耦合关系,但不管怎样,让我们运行这个例子。 )
这是一个更简单的例子,原因有两个:
更容易理解为何难以学习
有一袋很明智的解决方法
与所有289个输入具有相同输入范围的情况相比,梯度下降算法将更慢地收敛于异构情况。 (额外的功劳:试试这个!)Geoff Hinton有一套相当着名的幻灯片,可以很好地描述这种效果:Lecture 6。我相信这也是Coursera课程的一部分。
Hinton的幻灯片还涉及两种方法来攻击这个简单版本的问题。第一个是预处理您的输入。如果缩小输入以使其具有相同的均值和方差,则梯度下降优化器将更快地收敛。另一种是使用更强大的优化方法,特别是具有每参数自适应学习速率的方法,它可以处理这种情况以及棘手的情况。来自斯坦福大学CS231n班的Andrej Karpathy的fantastic notes是一个很好的介绍。但是,让我们回到你的问题:有四个"特殊"变换整个输入的变量。如果有足够的时间和输入,网络可以学习这个功能。但要明白,如果这种转变很复杂并使优化环境变得粗糙,那么您的网络可能会遇到一些麻烦。
如果有办法改变你对问题的表述以避免这种联系,我会说试着去追求这个。如果没有,那就准备好使用一些更大的枪来解决问题。
如果不了解问题的具体细节,很难提出更具体的建议。另外,最终,你将成为解决它的人,所以你最终会成为专家!
答案 3 :(得分:0)
尝试将第一个不太重要的285个数字编码为一个数字或任何您喜欢的矢量大小,然后使用多人神经网络将该数字与其他4个数字一起用作神经网络的输入。
示例:
V1 = [1,2,3,.......... 285]
V2 = [286287288289]
v_out = Neural_network(input_vector = v1,neurons = [100,1])#100隐藏单位,有一个出局。
v_final = Neural_network(input_vector = v_out,neurons = [100,1])#100隐藏单位,有一个出局。