预测误差可以是一个标量,网络却可能包含大量可调整系数。训练需要确定每个系数如何影响误差。梯度给出局部敏感性,反向传播通过共享的中间计算求得这些敏感性,优化器再据此更新参数。
梯度下降根据损失的导数更新参数,反向传播则通过计算图上的链式法则求取导数。前者规定更新方式,后者计算梯度,两者属于不同操作。
1. 标量目标函数
考虑 y^=wx,固定输入 x=2、目标 y=6。采用不含 1/2 系数的平方损失,得到:
L(w)=(2w−6)2=4(w−3)2
分别对外层平方与内层仿射函数求导,得到:
L′(w)=2(2w−6)⋅2=8w−24,L′′(w)=8
在 w=1 处,损失为 16,导数为 −16。因此,将 w 增加足够小的量会降低损失;下文通过实际更新计算步长对结果的影响。
2. 参数更新与收敛条件
固定学习率 η 的梯度下降规则为:
wt+1=wt−ηL′(wt)
取 w0=1、η=0.1,得到 w1=2.6,预测为 5.2,损失为 0.64。若取 η=1,则得到 w1=17,损失上升到 784。
对于这一二次目标,收敛条件可以精确推导。令相对于最小值点的误差为 et=wt−3,则:
et+1=(1−8η)et
非零初始误差收敛到零的条件为 ∣1−8η∣<1,即:
0<η<41
当 η=1/8 时,一次更新即可使误差归零。稳定区间由曲率八与规定的损失缩放共同决定。[1]
3. 局部下降的依据
对于可微标量目标 J(θ) 和小位移 Δ,一阶展开为:
J(θ+Δ)=J(θ)+∇J(θ)⊤Δ+o(∥Δ∥)
代入 Δ=−η∇J(θ),线性项变为 −η∥∇J(θ)∥22。在非驻点处,只要 η>0,这一项就为负。剩余项相对于位移可忽略属于局部极限结论,因此有限步长下的行为仍取决于步长选择。在驻点处,一阶分析本身不能保证严格下降。
4. 批量线性回归的梯度
设 X∈Rn×d、w∈Rd、b∈R、y∈Rn,定义:
r=Xw+b1n−y,J(w,b)=2n1r⊤r
与前面的标量例子不同,这里包含 1/2 系数。展开平方残差之和,再逐项求导,得到:
∂wj∂J=n1i∑riXij,∇wJ=n1X⊤r,∂b∂J=n11n⊤r
加入 ρ∥w∥22/2 后,权重梯度增加 ρw。小批次版本将全量平均替换为选定批次的平均;求导形式不变,但梯度估计的统计性质取决于批次采样方式。
5. 单隐藏层的反向传播
具有 m 个隐藏单元的标量输出网络可定义为:
z=Wx+b,a=ReLU(z),y^=v⊤a+c,ℓ=21(y^−y)2
其中,x∈Rd、W∈Rm×d、b,v∈Rm,c,y∈R。记 r=y^−y,从输出端求导得到:
∇vℓ=ra,∂cℓ=r
继续经过激活函数与第一层仿射映射,得到:
δ=(rv)⊙1[z>0],∇Wℓ=δx⊤,∇bℓ=δ,∇xℓ=W⊤δ
其中,⊙ 表示逐项相乘。ReLU 在零点不存在经典导数;在该处将反向传播乘数设为零属于实现约定。在非零位置,掩码对应通常意义下的导数。权重梯度的形状为 m×d,与待更新的 W 一致。
这套逆向累积过程称为反向传播,而 W←W−η∇Wℓ 属于随后执行的优化更新。普通推理时参数保持固定,只需进行前向计算。[2]
参考文献