[5分钟深度学习] #02 反向传播算法_哔哩哔哩_bilibili
链式法则与反向传播推导
1. 线性回归中的链式法则推导
1.1 结构关系
- L 依赖于 y^:
L→y^
- y^ 依赖于 w1,w2,b:
y^=w1x1+w2x2+b
1.2 公共部分
对所有参数:
∂y^∂L=−(y−y^)
因为 L=21(y−y^)2,求导得到 (y−y^)(−1)
1.3 各参数的局部导数
∂b∂y^=1
∂w1∂y^=x1
∂w2∂y^=x2
1.4 梯度公式
结合链式法则:
∂b∂L=−(y−y^)⋅1
∂w1∂L=−(y−y^)⋅x1
∂w2∂L=−(y−y^)⋅x2
1.5 参数更新(梯度下降)
w1←w1+α(y−y^)x1
w2←w2+α(y−y^)x2
b←b+α(y−y^)
其中 α 为学习率。
2. 损失函数与优化目标
2.1 模型目标
- 找到最佳 w1,w2,b
- 使预测 y^ 与真实值 y 的误差最小
- 误差度量:均方误差(MSE)
2.2 均方误差
对于数据集 {(x1(i),x2(i),y(i))}:
L(w1,w2,b)=n1i=1∑n(y^(i)−y(i))2
其中:
y^(i)=w1x1(i)+w2x2(i)+b
2.3 梯度下降法
wj←wj−α∂wj∂L,b←b−α∂b∂L
3. 多层神经网络的反向传播
3.1 网络结构
- 输入层:x
- 隐藏层 1:W[1],b[1],a[1]=σ(z[1])
- 隐藏层 2:W[2],b[2],a[2]=σ(z[2])
- 输出层:W[3],b[3],y^=σ(z[3])
3.2 损失函数(Log Loss)
L(y,y^)=−ylog(y^)−(1−y)log(1−y^)
3.3 反向传播步骤
输出层:
δ[3]=y^−y
∂W[3]∂L=δ[3](a[2])⊤
∂b[3]∂L=δ[3]
隐藏层 2:
δ[2]=(W[3])⊤δ[3]⊙a[2](1−a[2])
∂W[2]∂L=δ[2](a[1])⊤
∂b[2]∂L=δ[2]
隐藏层 1:
δ[1]=(W[2])⊤δ[2]⊙a[1](1−a[1])
∂W[1]∂L=δ[1](x)⊤
∂b[1]∂L=δ[1]
3.4 参数更新
W[l]←W[l]−α∂W[l]∂L
b[l]←b[l]−α∂b[l]∂L