【ML】_07_BP(反向传播)
其他
2020-03-08 13:24:46
阅读次数: 0
【一】 Back Propagation(BP算法,反向传播)
非常重要的,反向传播更新参数的算法,必须掌握
【二】 正向传播(Forward)
- 求出
a(k)(x)(神经元下半部分),
h(k)(x)(神经元上半部分) 和
f(x)
【三】 BP 求导流程
-
Loss 对 输出层(
f(x))求梯度,即上半部分
∂f(x)∂Loss=∂f(x)∂−logf(x)y=f(x)y−e(y)s.ty=1时e(y)=[1,0,0,...,0]
- 对 输出层
(L+1) 的
softmax(分类)求梯度,
(a) 表示 神经元 的
pre_activation,即下半部分
∂a(L+1)(x)∂Loss=f(x)−e(y)s.ty=1时e(y)=[1,0,0,...,0]
- 链式求导法则,
(h) 表示 神经元 的
post_activation,即上半部分
∂h(k)(x)∂Loss=(w(k+1))T⋅∂a(k+1)(x)∂−logf(x)y
- 链式求导法则,
(a) 表示 神经元 的
pre_activation,
⊙ 表示对应相乘,
g′ 表示对激活函数进行求导
∂a(k)(x)∂Loss=∂h(k)(x)∂Loss⊙g′(a(k)(x))
- 链式求导法则,求
Loss 对
w 的梯度
∂w(k)∂Loss=∂a(k)(x)∂Loss⋅(h(k−1)(x))T
- 链式求导法则,求
Loss 对
b 的梯度
∂b(k)∂Loss=∂a(k)(x)∂Loss
【四】 Gradient Checking(梯度检测)
- 用于检查算出的梯度是否合理,给
ε 一个很小的值
f′(x)=∂x∂f(x)=2εf(x+ε)−f(x−ε)s.tε→0
发布了57 篇原创文章 ·
获赞 5 ·
访问量 2863
转载自blog.csdn.net/qq_34330456/article/details/104653479