Neural network 反向传播中的交叉熵、Softmax和导数项

Neural network 反向传播中的交叉熵、Softmax和导数项,neural-network,backpropagation,entropy,derivative,softmax,Neural Network,Backpropagation,Entropy,Derivative,Softmax,我目前感兴趣的是在执行分类的反向传播算法时使用交叉熵错误,我在输出层中使用Softmax激活函数 根据我收集的信息,你可以用交叉熵和Softmax将导数去掉如下所示: Error = targetOutput[i] - layerOutput[i] 这与以下各项的均方误差不同: Error = Derivative(layerOutput[i]) * (targetOutput[i] - layerOutput[i]) 那么,只有当输出层使用Softmax激活函数进行交叉熵分类时,才能删除导

我目前感兴趣的是在执行分类的反向传播算法时使用交叉熵错误,我在输出层中使用Softmax激活函数

根据我收集的信息,你可以用交叉熵和Softmax将导数去掉如下所示:

Error = targetOutput[i] - layerOutput[i]
这与以下各项的均方误差不同:

Error = Derivative(layerOutput[i]) * (targetOutput[i] - layerOutput[i])
那么,只有当输出层使用Softmax激活函数进行交叉熵分类时,才能删除导数项吗?例如,如果我使用交叉熵误差(比如TANH激活函数)进行回归,我仍然需要保留导数项,对吗


我还没有找到一个明确的答案,我也没有尝试计算出这个问题的数学公式(因为我已经生锈了)。

你没有在输出层使用导数项,因为你得到了“真实”错误(你的输出和你的目标之间的差异),在隐藏层中,必须使用反向传播计算近似误差

我们所做的是一个近似,取下一层的误差对当前层的权重的导数,而不是当前层的误差(未知)


致以最诚挚的问候,

Hi Seguy,这个问题是针对何时删除导数项的。当使用交叉熵时,它总是下降吗?或者在使用Cross Entroy+Softmax输出层时丢弃?Hi@GreekFire,我理解问题的范围是反向传播最后一层。在这里,您可以使用或不使用前一层输出的挤压函数(softmax、tanh等)的导数。如果考虑导数,则反向传播的信号错误会衰减(减慢学习过程)。