【问题标题】:Cross Entropy, Softmax and the derivative term in Backpropagation反向传播中的交叉熵、Softmax 和导数项
【发布时间】:2014-11-23 14:20:01
【问题描述】:

我目前对在执行 BackPropagation 算法进行分类时使用交叉熵误差感兴趣,我在输出层中使用 Softmax 激活函数。

据我所知,您可以使用 Cross Entropy 和 Softmax 将导数去掉,使其看起来像这样:

Error = targetOutput[i] - layerOutput[i]

这与以下的均方误差不同:

Error = Derivative(layerOutput[i]) * (targetOutput[i] - layerOutput[i])

那么,当您的输出层使用 Softmax 激活函数进行交叉熵分类时,您能否只删除导数项?例如,如果我要使用交叉熵误差(比如 TANH 激活函数)进行回归,我仍然需要保留导数项,对吗?

我无法找到一个明确的答案,我也没有尝试过计算这个问题(因为我生疏了)。

【问题讨论】:

    标签: neural-network backpropagation entropy derivative softmax


    【解决方案1】:

    您不要在输出层中使用导数项,因为您会得到“真实”误差(输出与目标之间的差异),在隐藏层中您必须使用反向传播来计算近似误差。

    我们正在做的是将下一层的误差与当前层的权重而不是当前层的误差(其未知)的导数进行近似。

    最好的问候,

    【讨论】:

    • 嗨 Seguy,问题是针对 何时 衍生术语被删除的。使用交叉熵时是否总是掉线?还是在使用 Cross Entroy + Softmax 输出层时掉线了?
    • 嗨@GreekFire,我知道这个问题被限制为反向传播最后一层。在那里,您可以使用或不使用前一层输出的压缩函数(softmax,tanh,...)的导数。如果考虑导数,则反向传播的信号误差会减弱(减慢学习过程)。
    猜你喜欢
    • 1970-01-01
    • 2017-12-22
    • 2017-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-16
    • 2018-08-07
    • 1970-01-01
    相关资源
    最近更新 更多