Chain Rule(链式法则)
Case 1
如果有:
y = g ( x ) z = h ( y ) y = g(x)\ \ \ \ \ \ z = h(y) y=g(x) z=h(y)
那么“变量影响链”就有:
Δ x → Δ y Δ z \Delta x\rightarrow \Delta y \Delta z Δx→ΔyΔz
因此就有:
d z d x = d z d y d y d x \frac{d z}{d x} = \frac{d z}{d y}\frac{d y}{d x} dxdz=dydzdxdy
Case 2
如果有:
y = g ( s ) y = h ( s ) z = k ( x , y ) y = g(s)\ \ \ \ \ \ y = h(s)\ \ \ \ \ \ z=k(x,y) y=g(s) y=h(s) z=k(x,y)
那么“变量影响链”就有:

因此就有:
d z d s = ∂ z ∂ x d x d s + ∂ z ∂ y d y d s \frac{d z}{d s} = \frac{\partial z}{\partial x}\frac{d x}{ds} + \frac{\partial z}{\partial y}\frac{d y}{ds} dsdz=∂x∂zdsdx+∂y∂zdsdy
Backpropagation(反向传播算法)——实例讲解
定义
反向传播(英语:Backpropagation,缩写为BP)是“误差反向传播”的简称,是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。 该方法对网络中所有权重计算损失函数的梯度。 这个梯度会反馈给最优化方法,用来更新权值以最小化损失函数。(误差的反向传播)——维基百科
说明

假设现在有N个样本数据,那么实际上损失函数可以表示为:
L ( θ ) = ∑ n = 1 N l n ( θ ) L(\theta) = \sum_{n=1}^Nl^n(\theta) L(θ)=n=1∑Nln(θ)
其中 θ \theta θ为需要学习的参数。
那么现在 ω \omega ω对 L L L进行偏微分,实际上是对每个样本数据的损失函数 l ( θ ) l(\theta) l(θ)进行偏微分后再求和:
∂ L ( θ ) ∂ ω = ∑ n = 1 N ∂ l n ( θ ) ∂ ω \frac{\partial L(\theta)}{\partial \omega} = \sum_{n=1}^N\frac{\partial l^n(\theta)}{\partial \omega} ∂ω∂L(θ)=n=1∑N∂ω∂ln(θ)

用代数表示为:
z 1 = ω 11 x 1 + ω 12 x 2 + b 1 a 1 = σ ( z 1 ) z_1 = \omega_{11}x_1 + \omega_{12}x_2 + b_1 \ \ \ \ \ \ \ \ \ \ \ a_1 = \sigma(z_1) z1=ω11x1+ω12x2+b1 a1=σ(z1)
z 2 = ω 21 x 1 + ω 22 x 2 + b 2 a 2 = σ ( z 2 ) z_2 = \omega_{21}x_1 + \omega_{22}x_2 + b_2 \ \ \ \ \ \ \ \ \ \ \ a_2 = \sigma(z_2) z2=ω21x1+ω22x2+b2 a2=σ(z2)
z 3 = ω 31 a 1 + ω 32 a 2 + b 3 a 3 = σ ( z 3 ) z_3 = \omega_{31}a_1 + \omega_{32}a_2 + b_3 \ \ \ \ \ \ \ \ \ \ \ a_3 = \sigma(z_3) z3=ω31a1+ω32a