如何计算交叉熵误差函数的导数?

机器算法验证 机器学习 神经网络 优化 损失函数 衍生物
2022-03-23 09:45:00

我正在阅读有关计算交叉熵导数的本教程(如下所示)。作者使用了我认为的逻辑回归的损失函数。 https://www.dropbox.com/s/rxrtz3auu845fuy/Softmax.pdf?dl=0

除了一件事,大多数方程式对我来说都是有意义的。在第二页中,有: 但是在第三页中,“互熵导数”变为

Exojx=tjxojx+1tjx1ojx

Exojx=tjxojx+1tjx1ojx

中有一个减号那么导数应该是 . 但事实并非如此。我错过了什么?ExExojx=tjxojx1tjx1ojx


教程:

在此处输入图像描述 在此处输入图像描述

2个回答

确实有错误:

Exojx=ojx(k[tkxlog(okx)]+(1tkx)log(1okx)])=ojx(k[tkxlog(okx)]+(1tkx)log(1okx)])=ojx([tjxlog(ojx)]+(1tjx)log(1ojx)])=(tjxojx1tjx1ojx),Chain rule=tjxojx+1tjx1ojx

记住这一点的一个简单方法是将交叉熵相对于网络参数的梯度内化,这就是著名的tioi

最后一张幻灯片正确地做到了这一点。所以,看起来第二张幻灯片有错误。如果您遵循推导,您会注意到一个错误,即无缘无故出现在右侧中间(在最后一个等式之前)的减号。