当我们有两个输出时的反向传播算法

时间:2014-04-05 10:36:41

标签: algorithm neural-network

我有一个很大的问题,我想用2个神经元输出实现我的神经元中性。那样的话:

Example

我想使用反向传播算法,但我不知道如何计算错误,因为我有一个带有2个神经元的输出,当我在输出上只有一个神经元非常从一个退出错误中容易使用反向传播算法,但是有两个神经元吗?我考虑单独计算每个输出的误差,但是我必须计算2个案例的单独反向传播,然后我得到两个不同的隐藏层" (对于隐藏层中的每个神经元,我有两个重量的情况)。 Mayby有谁知道一些更好的解决方案?

我将非常感激任何帮助。

1 个答案:

答案 0 :(得分:1)

逻辑思考,第一层权重应该为您提供一个表示(隐藏层),可用于预测两个输出。因此,应根据两个输出中的错误更新此层。但是下一层权重对于每个输出节点是分开的,因此应该进行单独的权重更新。

因此,在第二层权重上,将根据相应的输出分别计算权重更新。对于第一层权重,我将首先分别计算从每个输出反向传播的误差导数,然后简单地将它们组合以得到最终的误差导数。然后应用学习率来获得体重更新。

注意输出的动态范围。例如,如果一个输出产生范围[0,10]的某个实际值而另一个产生范围[-1000,1000]的值,那么您的更新将由范围更大的更新支配。你可以

  • 添加一个预处理步骤,可以将您的数据集更改为在两个输出中具有相同的动态范围。此外,添加后处理步骤以恢复实际范围。
  • 为每个输出制定误差函数,以便它们产生相同动态范围的误差值。