交叉熵导数,第5部分:使用反向传播优化偏置

发布: (2026年2月7日 GMT+8 04:01)
4 分钟阅读
原文: Dev.to

Source: Dev.to

Cover image for Cross Entropy Derivatives, Part 5: Optimizing bias with backpropagation

在上一篇文章中,我们计算了交叉熵损失的导数。
在本文中,我们开始使用反向传播来优化偏置项 (b_3)。

设置初始偏置

我们首先将偏置 (b_3) 固定为初始值:

[ b_3 = -2 ]

为了验证反向传播确实改进了模型,我们首先计算在该 (b_3) 值下训练数据的总交叉熵。

使用的偏置值

Bias values illustration

我们保持

[ b_3 = -2 ]

前向传播计算

对于单个输入示例,我们按如下方式计算中间值。

上层节点

上层节点计算

下层节点

下层节点计算

原始输出值

原始输出

Softmax 概率

Softmax 概率

每个样本的交叉熵损失

花瓣萼片物种(p)交叉熵
0.040.42Setosa0.151.89
1.000.54Virginica0.710.35
0.500.37Versicolor0.650.43

当 (b_3 = -2) 时,总交叉熵为

[ \text{Total CE} = 2.67 ]

可视化损失曲线

我们可以通过在 x 轴上绘制 (b_3),在 y 轴上绘制总交叉熵,来直观地观察总交叉熵随不同 (b_3) 值的变化。对大量 (b_3) 值进行评估会得到一条平滑的粉色曲线,并且有一个明显的最小值。

生成图形的 Python 代码

import numpy as np
import matplotlib.pyplot as plt

def relu(x):
    return np.maximum(0, x)

def softmax(raws):
    exp_vals = np.exp(raws)
    return exp_vals / np.sum(exp_vals)

# 固定的偏置
b1 = 1.6
b2 = 0.7
b4 = 0
b5 = 1

# 示例训练数据: (花瓣长度, 萼片长度, 真实类别)
data = [
    (0.04, 0.42, 0),  # Setosa
    (1.00, 0.54, 2),  # Virginica
    (0.50, 0.37, 1),  # Versicolor
]

def total_cross_entropy(b3):
    total_ce = 0.0
    for petal, sepal, target in data:
        upper  = petal * -2.5 + sepal * 0.6 + b1
        bottom = petal * -1.5 + sepal * 0.4 + b2

        raw_setosa = relu(upper) * -0.1 + relu(bottom) * 1.5 + b3
        raw_versi  = relu(upper) * 2.4  + relu(bottom) * -5.2 + b4
        raw_virg   = relu(upper) * -2.2 + relu(bottom) * 3.7 + b5

        probs = softmax([raw_setosa, raw_versi, raw_virg])
        total_ce += -np.log(probs[target])
    return total_ce

b3_values = np.linspace(-6, 4, 200)
losses = [total_cross_entropy(b3) for b3 in b3_values]

plt.plot(b3_values, losses, color="pink")
plt.xlabel("b₃")
plt.ylabel("Total Cross Entropy")
plt.title("Cross Entropy vs b₃")
plt.show()

粉色损失曲线

该图展示了粉色曲线;最低点对应的 (b_3) 值即为使总交叉熵最小的值。

接下来是什么?

在文章的下一部分,我们将使用反向传播将 (b_3) 向该最小值移动,并一步步更新它。


寻找更简便的方式来安装工具、库或整个仓库吗?
尝试 Installerpedia —— 一个社区驱动的结构化安装程序。

安装平台,让您几乎可以安装任何东西,且 操作简便指导清晰可靠

只需运行:

ipm install repo-name

… 完成! 🚀

Installerpedia Screenshot

🔗 在此探索 Installerpedia

Back to Blog

相关文章

阅读更多 »

量子安全计算的不安全性

量子隐私:为何某些量子技巧无法保护秘密安全 人们曾希望量子技术能够阻止陌生人窃取秘密,就像智能卡……