交叉熵代价函数(损失函数)及其求导推导
时间: 2023-10-21 20:22:09 浏览: 90
交叉熵损失函数.docx
交叉熵代价函数是在分类问题中常用的一种损失函数,它的定义如下:
$$
J = -\frac{1}{m}\sum_{i=1}^{m}\sum_{j=1}^{C}y_j^{(i)} \log\left(\hat{y}_j^{(i)}\right) + (1-y_j^{(i)}) \log\left(1-\hat{y}_j^{(i)}\right)
$$
其中,$m$是样本数量,$C$是分类数,$y_j^{(i)}$是第$i$个样本的第$j$个类别的真实标签,$\hat{y}_j^{(i)}$是模型预测的第$j$个类别的概率。
对于交叉熵代价函数的求导推导,我们需要分别对$\hat{y}_j^{(i)}$和$1-\hat{y}_j^{(i)}$求导。
首先,对$\hat{y}_j^{(i)}$求导,有:
$$
\frac{\partial J}{\partial \hat{y}_j^{(i)}} = -\frac{1}{m}\left(\frac{y_j^{(i)}}{\hat{y}_j^{(i)}} - \frac{1-y_j^{(i)}}{1-\hat{y}_j^{(i)}}\right)
$$
接着,对$1-\hat{y}_j^{(i)}$求导,有:
$$
\frac{\partial J}{\partial (1-\hat{y}_j^{(i)})} = -\frac{1}{m}\left(\frac{1-y_j^{(i)}}{1-\hat{y}_j^{(i)}} - \frac{y_j^{(i)}}{\hat{y}_j^{(i)}}\right)
$$
最终,将两个导数合并,可得到交叉熵代价函数对$\hat{y}_j^{(i)}$的导数:
$$
\frac{\partial J}{\partial \hat{y}_j^{(i)}} = -\frac{1}{m}\left(\frac{y_j^{(i)}}{\hat{y}_j^{(i)}} - \frac{1-y_j^{(i)}}{1-\hat{y}_j^{(i)}}\right)
$$
除此之外,如果你使用的是softmax作为输出层,那么交叉熵损失函数的导数可以更简洁的表示为:
$$
\frac{\partial J}{\partial \mathbf{z}}=\hat{\mathbf{y}}-\mathbf{y}
$$
其中,$\mathbf{z}$是softmax层的输入,$\mathbf{y}$是真实标签,$\hat{\mathbf{y}}$是模型预测的概率分布。
阅读全文