交叉熵导数,第3部分:单输出类别的链式法则
Source: Dev.to

在上一篇文章中,我们准备了一个链式法则方程,用于计算交叉熵相对于偏置 b₃ 的导数。
我们将在本文中一步一步求解该方程。
1️⃣ 对 Setosa 的预测概率的交叉熵导数

我们使用熟悉的公式
[ \frac{\partial , \text{CE}}{\partial \hat{y}} = -\frac{y}{\hat{y}} ]
将其应用到这里得到
[ \frac{\partial , \text{CE}}{\partial \hat{y}{\text{Setosa}}} = -\frac{1}{\hat{y}{\text{Setosa}}} ]

2️⃣ 对 Setosa 的预测概率相对于原始输出的导数
首先,写出 Setosa 预测概率的 soft‑max 公式:
[ \hat{y}{\text{Setosa}} = \frac{e^{z{\text{Setosa}}}} {e^{z_{\text{Setosa}}}+e^{z_{\text{Versicolor}}}+e^{z_{\text{Virginica}}}} ]
对原始输出 (z_{\text{Setosa}}) 求导得到
[ \frac{\partial \hat{y}{\text{Setosa}}}{\partial z{\text{Setosa}}} = \hat{y}{\text{Setosa}}\bigl(1-\hat{y}{\text{Setosa}}\bigr) ]

3️⃣ 对偏置 b₃ 的 Setosa 原始输出的导数
Setosa 的原始输出可以表示为
[ z_{\text{Setosa}} = w_{3}^{\top}x + b_{3} ]
因此
[ \frac{\partial z_{\text{Setosa}}}{\partial b_{3}} = 1 ]
可视化解释:
- 蓝色弯曲面(其他权重)与 (b_{3}) 无关 → 导数 = 0。
- 橙色弯曲面(其他偏置)也与 (b_{3}) 无关 → 导数 = 0。
- 偏置项本身随 (b_{3}) 线性变化 → 导数 = 1。

4️⃣ 综合运用 – 链式法则
[ \frac{\partial ,\text{CE}}{\partial b_{3}} = \frac{\partial ,\text{CE}}{\partial \hat{y}{\text{Setosa}}} \times \frac{\partial \hat{y}{\text{Setosa}}}{\partial z_{\text{Setosa}}} \times \frac{\partial z_{\text{Setosa}}}{\partial b_{3}} ]
代入上面推导出的三部分:
[ \frac{\partial ,\text{CE}}{\partial b_{3}} = \Bigl(-\frac{1}{\hat{y}{\text{Setosa}}}\Bigr) \times \bigl(\hat{y}{\text{Setosa}}\bigl(1-\hat{y}{\text{Setosa}}\bigr)\bigr) \times 1 = \hat{y}{\text{Setosa}} - 1 ]
当观测类别为 Setosa(即真实标签 (y_{\text{Setosa}} = 1))时,导数简化为
[ \boxed{\displaystyle \frac{\partial ,\text{CE}}{\partial b_{3}} = \hat{y}_{\text{Setosa}} - 1} ]
这就是交叉熵损失相对于 Setosa 类别的偏置项 (b_{3}) 的梯度。
第 3 部分结束 – 单输出类别的链式法则。

因此,当使用 Setosa 的预测概率来计算交叉熵时,交叉熵相对于 (b_3) 的导数为

在下一篇文章中,我们将继续对 Virginica 应用相同的过程。
想要更简便地安装工具、库或整个仓库?
试试 Installerpedia —— 一个社区驱动、结构化的安装平台,让你几乎可以毫不费力、并且得到清晰可靠的指导来安装任何东西。
只需运行:
ipm install repo-name
…就完成了! 🚀
