2017-10-21 30 views
-1

我有一个形式为N = W1 * Tanh(W2 * I)的神经网络,其中I是输入矢量/矩阵。当我学习这些权重时,输出具有某种形式。然而,当我添加一个标准化层时,例如,N' = Softmax(W1 * Tanh(W2 * I))然而在N'单个元素的输出向量中接近1而其余几乎为零。这种情况不仅在SoftMax()中,而且在任何标准化层中。有没有解决这个问题的标准方案?添加softmax显着改变重量更新

+1

你是什么意思的“某种形式”?你为什么称它为一个问题?这在分类归一化中是完全正常的(并且期望的)行为。什么是确切的应用(有一个注意标签,但没有提到关注的问题) – lejlot

+0

这是一个自我关注的编码器 - 解码器模型(如上面描述的N是一个自我注意模型) @lejlot由a某种形式,我的意思是输出矢量具有一定的特性(这是所期望的),就像它增加到中间,然后交替减少和增加(例如0.1,0.3,0.5,1.5,0.5,1,0.3,1.2)。但是,添加一个Softmax图层后,我得到了类似的东西 - (0.001,0.001,0,0.01,0.998,0.001,0,0,...)。 – Rumu

+0

这仅仅意味着输出'N'具有比其他值大得多的值。将“N”值添加到问题中。 – Maxim

回答

0

这就是softmax function的行为。也许你需要的是一个sigmoid函数。

+0

即使使用简单的标准化,该问题仍然存在,如在yi = yi/yi的总和 – Rumu

+0

这是所需的行为,也许您需要的是其他东西。你的预期结果是什么? –