梯度是什么?
梯度:是一个向量,指的是学习(参数更新)的方向
计算图和反向传播
计算图:通过图的方式来描述函数的图形
J
(
a
,
b
,
c
)
=
3
(
a
+
b
c
)
J(a,b,c)=3(a+bc)
J(a,b,c)=3(a+bc),令
u
=
a
+
v
,
v
=
b
c
u=a+v,v=bc
u=a+v,v=bc,把它绘制成计算图可以表示为: 之后对每个节点求偏导有:
神经网络的反向传播
神经网络的示意图
w
1
,
w
2
,
.
.
.
.
.
.
w
n
w1,w2,......wn
w1,w2,......wn表示第n层权重
w
n
[
i
,
j
]
wn[i,j]
wn[i,j]表示第n层第i个神经元,链接到第n+1层第j个神经元的权重。
神经网络的计算图
公式分为两部分:
- 括号外:左边红线部分
- 括号内:
1. 加号左边:右边红线部分 2. 加号右边:蓝线部分 这样做,当模型很大的时候,计算量非常大 所以反向传播的思想就是对其中的某一个采纳数单独求梯度,之后更新,如下图所示: 计算过程如下: 更新参数之后,继续进行反向传播 计算过程如下: 继续反向传播 计算过程如下:
|