深度神经网络中的反向传播过程

17 Mar 2025 | 6 分钟阅读

反向传播是神经网络的重要概念之一。 我们的任务是最好地分类我们的数据。 为此,我们必须更新参数和偏差的权重,但我们如何在深度神经网络中做到这一点? 在线性回归模型中,我们使用梯度下降来优化参数。 类似地,在这里我们也使用梯度下降算法,即使用反向传播。

对于单个训练示例,反向传播算法计算误差函数的梯度。 反向传播可以写成神经网络的一个函数。 反向传播算法是一组用于有效训练人工神经网络的方法,它遵循利用链式规则的梯度下降方法。

反向传播的主要特征是迭代、递归和有效的方法,通过该方法计算更新后的权重以改进网络,直到它无法执行正在训练的任务为止。 在网络设计时需要知道激活函数的导数,这对于反向传播来说是必需的。

现在,误差函数如何在反向传播中使用,反向传播如何工作? 让我们从一个例子开始,并从数学上理解如何使用反向传播精确地更新权重。

Backpropagation Process in Deep Neural Network

输入值

X1=0.05
X2=0.10

初始权重

W1=0.15     w5=0.40
W2=0.20     w6=0.45
W3=0.25     w7=0.50
W4=0.30     w8=0.55

偏差值

b1=0.35     b2=0.60

目标值

T1=0.01
T2=0.99

现在,我们首先通过正向传播计算 H1 和 H2 的值。

正向传播

为了找到 H1 的值,我们首先将输入值乘以权重,如下所示

                              H1=x1w1+x2w2+b1
                        H1=0.050.15+0.100.20+0.35
                                    H1=0.3775

为了计算 H1 的最终结果,我们执行了 sigmoid 函数,如下所示

Backpropagation Process in Deep Neural Network

我们将以与 H1 相同的方式计算 H2 的值

                              H2=x1w3+x2w4+b1
                        H2=0.050.25+0.100.30+0.35
                                    H2=0.3925

为了计算 H1 的最终结果,我们执行了 sigmoid 函数,如下所示

Backpropagation Process in Deep Neural Network

现在,我们以与计算 H1 和 H2 相同的方式计算 y1 和 y2 的值。

为了找到 y1 的值,我们首先将输入值(即 H1 和 H2 的结果)乘以权重,如下所示

                              y1=H1w5+H2w6+b2
                        y1=0.5932699920.40+0.5968843780.45+0.60
                                    y1=1.10590597

为了计算 y1 的最终结果,我们执行了 sigmoid 函数,如下所示

Backpropagation Process in Deep Neural Network

我们将以与 y1 相同的方式计算 y2 的值

                              y2=H1w7+H2w8+b2
                        y2=0.5932699920.50+0.5968843780.55+0.60
                                    y2=1.2249214

为了计算 H1 的最终结果,我们执行了 sigmoid 函数,如下所示

Backpropagation Process in Deep Neural Network

我们的目标值是 0.01 和 0.99。 我们的 y1 和 y2 值与目标值 T1 和 T2 不匹配。

现在,我们将找到总误差,这只是输出与目标输出之间的差异。 总误差计算如下

Backpropagation Process in Deep Neural Network

因此,总误差为

Backpropagation Process in Deep Neural Network

现在,我们将反向传播此误差以使用反向传播更新权重。

在输出层进行反向传播

为了更新权重,我们在总误差的帮助下计算对应于每个权重的误差。 通过将总误差相对于 w 进行微分来计算权重 w 上的误差。

Backpropagation Process in Deep Neural Network

我们执行反向过程,因此首先考虑最后一个权重 w5,如下所示

Backpropagation Process in Deep Neural Network

从等式二可以看出,我们无法相对于 w5 对其进行偏微分,因为没有任何 w5。 我们将等式一拆分为多个项,以便我们可以轻松地相对于 w5 对其进行微分,如下所示

Backpropagation Process in Deep Neural Network

现在,我们逐一计算每个项,以区分 Etotal 相对于 w5,如下所示

Backpropagation Process in Deep Neural Network

将 e-y 的值放入等式 (5)

Backpropagation Process in Deep Neural Network

因此,我们将 Backpropagation Process in Deep Neural Network 的值放入等式 (3) 以找到最终结果。

Backpropagation Process in Deep Neural Network

现在,我们将在以下公式的帮助下计算更新后的权重 w5new

Backpropagation Process in Deep Neural Network

以相同的方式,我们计算 w6new,w7new 和 w8new,这将为我们提供以下值

                        w5new=0.35891648
                        w6new=408666186
                        w7new=0.511301270
                        w8new=0.561370121

在隐藏层进行反向传播

现在,我们将反向传播到我们的隐藏层,并更新权重 w1、w2、w3 和 w4,就像我们处理 w5、w6、w7 和 w8 权重一样。

我们将计算 w1 处的误差,如下所示

Backpropagation Process in Deep Neural Network

从等式 (2) 可以看出,我们无法相对于 w1 对其进行偏微分,因为没有任何 w1。 我们将等式 (1) 拆分为多个项,以便我们可以轻松地相对于 w1 对其进行微分,如下所示

Backpropagation Process in Deep Neural Network

现在,我们逐一计算每个项,以区分 Etotal 相对于 w1,如下所示

Backpropagation Process in Deep Neural Network

我们再次拆分此项,因为 Etoatal 中没有任何 H1final 项,如下所示

Backpropagation Process in Deep Neural Network

Backpropagation Process in Deep Neural Network 将再次拆分,因为 E1 和 E2 中没有 H1 项。 拆分完成如下

Backpropagation Process in Deep Neural Network

我们再次拆分这两个Backpropagation Process in Deep Neural Network,因为 E1 和 E2 中没有任何 y1 和 y2 项。 我们将其拆分如下

Backpropagation Process in Deep Neural Network

现在,我们通过将值放入等式 (18) 和 (19) 来找到 Backpropagation Process in Deep Neural Network 的值,如下所示

从等式 (18)

Backpropagation Process in Deep Neural Network

从等式 (8)

Backpropagation Process in Deep Neural Network

从等式 (19)

Backpropagation Process in Deep Neural Network

将 e-y2 的值放入等式 (23)

Backpropagation Process in Deep Neural Network

从等式 (21)

Backpropagation Process in Deep Neural Network

现在从等式 (16) 和 (17)

Backpropagation Process in Deep Neural Network

Backpropagation Process in Deep Neural Network 的值放入等式 (15),如下所示

Backpropagation Process in Deep Neural Network

我们有Backpropagation Process in Deep Neural Network我们需要弄清楚Backpropagation Process in Deep Neural Network如下所示

Backpropagation Process in Deep Neural Network

将 e-H1 的值放入等式 (30)

Backpropagation Process in Deep Neural Network

我们计算总净输入到 H1 相对于 w1 的偏导数,就像我们对输出神经元所做的那样

Backpropagation Process in Deep Neural Network

因此,我们将 Backpropagation Process in Deep Neural Network 的值放入等式 (13) 以找到最终结果。

Backpropagation Process in Deep Neural Network

现在,我们将在以下公式的帮助下计算更新后的权重 w1new

Backpropagation Process in Deep Neural Network

以相同的方式,我们计算 w2new,w3new 和 w4,这将为我们提供以下值

                        w1new=0.149780716
                        w2new=0.19956143
                        w3new=0.24975114
                        w4new=0.29950229

我们已经更新了所有权重。 当我们向前馈送 0.05 和 0.1 输入时,我们发现网络上的误差为 0.298371109。 在第一轮反向传播中,总误差降至 0.291027924。 在重复此过程 10,000 次后,总误差降至 0.0000351085。 此时,当我们向前馈送 0.05 和 0.1 时,输出神经元会生成 0.159121960 和 0.984065734,即接近我们的目标值。