交叉熵损失函数多分类问题求导公式推导
时间: 2023-09-26 19:07:14 浏览: 169
假设有 $n$ 个类别,$y_i$ 表示真实标签为第 $i$ 类,$p_i$ 表示预测标签为第 $i$ 类的概率。则交叉熵损失函数为:
$$
H(p, y) = -\sum_{i=1}^{n} y_i\log p_i
$$
对于单个样本,如果我们将 $p_i$ 看作模型对第 $i$ 类的预测概率,那么交叉熵损失函数的含义就是:模型的预测结果与真实标签之间的差异程度。
为了最小化交叉熵损失函数,我们需要对模型的预测概率进行调整,使得预测结果与真实标签越接近越好。因此我们需要求出损失函数对模型预测概率的导数,即:
$$
\frac{\partial H(p, y)}{\partial p_i}
$$
为了方便计算,我们可以先对 $p_i$ 求导,再将 $p_j$ 代入 $i$ 的位置,得到:
$$
\begin{aligned}
\frac{\partial H(p, y)}{\partial p_i} &= \frac{\partial}{\partial p_i}(-\sum_{j=1}^{n} y_j\log p_j) \\
&= -\frac{y_i}{p_i} + \sum_{j=1, j\neq i}^{n} \frac{y_j}{p_j}\frac{\partial p_j}{\partial p_i} \\
&= -\frac{y_i}{p_i} + \sum_{j=1, j\neq i}^{n} \frac{y_j}{p_j}\times 0 \\
&= -\frac{y_i}{p_i}
\end{aligned}
$$
因此,我们可以得到交叉熵损失函数对模型预测概率的导数为:
$$
\frac{\partial H(p, y)}{\partial p_i} = -\frac{y_i}{p_i}
$$
这个导数的含义是:如果模型对第 $i$ 类的预测概率增加了 $\Delta p_i$,那么交叉熵损失函数的变化量为:
$$
\begin{aligned}
\Delta H &= H(p+\Delta p, y) - H(p, y) \\
&\approx \frac{\partial H(p, y)}{\partial p_i} \Delta p_i \\
&= -\frac{y_i}{p_i} \Delta p_i
\end{aligned}
$$
因此,为了最小化交叉熵损失函数,我们可以根据这个导数对模型的预测概率进行调整,使得真实标签对应的概率增加,其他类别的概率减小。
阅读全文