赞
踩
1)前馈神经网络 (feedforward neural network),又称作深度前馈网络(deep feedforward network)、多层感知机(multilayer perceptron,MLP)
顾名思义,该网络中没有反向传播反馈,因此无法自动修改网络参数。
2)全连接网络 (Full connection)
在该网络中,除输入层外,每个节点都和上一层的所有节点两两相连。
神经元模型示意图如下:
其中,
x
i
x_i
xi表示输入,
w
i
w_i
wi表示权重,
z
z
z表示输入和,
f
f
f表示激活函数,
a
a
a表示神经元输出。
由上图可以得出神经元模型的完整表达式:
z
=
∑
i
=
1
n
w
i
x
i
a
=
f
(
w
T
x
+
b
)
z=\sum_{i=1}^{n}w_{i}x_{i}\\ a=f(\mathbf{w}^{T}\mathbf{x} + b)
z=i=1∑nwixia=f(wTx+b)
其中
f
(
)
f()
f()表示激活函数,
w
\mathbf{w}
w表示权重是一个列向量,
x
\mathbf{x}
x表示输入是一个列向量,
b
b
b表示偏置。
如图所示,将多个神经元并列即可形成一层神经神经网络,将多层神经元按顺序排好,就可以组成一个具有多层的神经网络。
其中从左到右,依次为输入层(input layer)、隐藏层(hidden layer)、输出层(output layer)。其中隐藏层可以有多层,而输入层和输出层只能有一层。
在整个神经网络中,信号从左向右按层传输。每一层中的神经元没有信号传输,相邻层之间的神经元两两连接。
从MLP模型取其中的两个隐藏层:
其中,
l
l
l层的输出为
a
l
a^{l}
al,
l
+
1
l+1
l+1层的输出为
a
l
+
1
a^{l+1}
al+1,两层之间神经元两两相连,且权重为
w
l
w^{l}
wl。
对于
l
+
1
l+1
l+1层中的一个神经元,其连接情况如图所示:
从图中可知,
l
l
l层的神经元需要把信号传输给
l
+
1
l+1
l+1层的神经元。
从中可以得出前向传播表达式:
z
i
l
+
1
=
∑
j
=
1
n
w
i
j
l
a
j
l
a
i
l
+
1
=
f
(
z
i
l
+
1
)
z_i^{l+1}=\sum_{j=1}^{n}w_{ij}^{l}a_{j}^{l}\\ a_{i}^{l+1}=f(z^{l+1}_i)
zil+1=j=1∑nwijlajlail+1=f(zil+1)
其中,
w
i
j
l
w_{ij}^{l}
wijl 表示第
l
l
l 层中第
j
j
j 个神经元与第
l
+
1
l+1
l+1 层中第
i
i
i 个神经元之间连接的权重
w
w
w 。
反向传播中传播的是就是梯度。
在神经网络中,将输出层的结果与label作对比,可以求出loss,然后用loss对权重 w w w 和偏置 b b b 可以求出权重 w w w 和偏置 b b b 的梯度,然后根据梯度下降算法就可以改变 w w w 和 b b b 的值。
然后根据链式法则,将梯度依次传回上一层,从而修改上一层的权重 w w w 和偏置 b b b ,如此反复直到输入层,至此即可完成一轮的参数更新。
设:
所以损失函数对权重的偏导数与残差的关系如下:
∂
L
(
w
,
b
)
∂
w
i
j
l
=
∂
L
(
w
,
b
)
∂
z
i
l
+
1
∂
z
i
l
+
1
∂
w
i
j
l
=
δ
i
l
+
1
a
j
l
\frac{\partial{L(w, b)}}{\partial{w_{ij}^l}}=\frac{\partial{L(w, b)}}{\partial{z_i^{l+1}}}\frac{\partial{z_i^{l+1}}}{\partial{w_{ij}^l}}=\delta_i^{l+1}a_j^{l}
∂wijl∂L(w,b)=∂zil+1∂L(w,b)∂wijl∂zil+1=δil+1ajl
同理可得损失函数对偏置的偏导数与残差的关系如下:
∂
L
(
w
,
b
)
∂
b
i
l
=
∂
L
(
w
,
b
)
∂
z
i
l
+
1
∂
z
i
l
+
1
∂
b
i
l
=
δ
i
l
+
1
\frac{\partial{L(w, b)}}{\partial{b_{i}^l}}=\frac{\partial{L(w, b)}}{\partial{z_i^{l+1}}}\frac{\partial{z_i^{l+1}}}{\partial{b_{i}^l}}=\delta_i^{l+1}
∂bil∂L(w,b)=∂zil+1∂L(w,b)∂bil∂zil+1=δil+1
然后再根据前向传播的方式可以推导出残差之间的关系如下:
δ
i
l
=
∂
J
∂
z
i
l
=
∑
j
=
1
n
l
+
1
∂
J
∂
z
j
l
+
1
⋅
∂
z
j
l
+
1
∂
z
i
l
=
∑
j
=
1
n
l
+
1
δ
j
l
+
1
⋅
∂
z
j
l
+
1
∂
z
i
l
=
∑
j
=
1
n
l
+
1
δ
j
l
+
1
⋅
w
i
j
l
f
˙
(
z
i
l
)
=
f
˙
(
z
i
l
)
⋅
(
∑
j
=
1
n
l
+
1
δ
j
l
+
1
⋅
w
j
i
l
)
\delta_{i}^{l}=\frac{\partial J}{\partial z_{i}^{l}}\\=\sum_{j=1}^{n_{l+1}} \frac{\partial J}{\partial z_{j}^{l+1}} \cdot \frac{\partial z_{j}^{l+1}}{\partial z_{i}^{l}}\\=\sum_{j=1}^{n_{l+1}} \delta_{j}^{l+1} \cdot \frac{\partial z_{j}^{l+1}}{\partial z_{i}^{l}}\\=\sum_{j=1}^{n_{l+1}} \delta_{j}^{l+1} \cdot w_{ij}^{l} \dot{f}\left(z_{i}^{l}\right)\\=\dot{f}\left(z_{i}^{l}\right) \cdot\left(\sum_{j=1}^{n_{l+1}} \delta_{j}^{l+1} \cdot w_{j i}^{l}\right)
δil=∂zil∂J=j=1∑nl+1∂zjl+1∂J⋅∂zil∂zjl+1=j=1∑nl+1δjl+1⋅∂zil∂zjl+1=j=1∑nl+1δjl+1⋅wijlf˙(zil)=f˙(zil)⋅(j=1∑nl+1δjl+1⋅wjil)
有了残差的传递关系之后,我们就可以求出每层
w
w
w 和
b
b
b 的梯度,从而更新每一层的
w
w
w 和
b
b
b。
w
i
j
l
=
w
i
j
l
−
η
a
i
l
δ
j
l
+
1
w_{ij}^{l} = w_{ij}^{l} - \eta a_i^l \delta_j^{l+1}
wijl=wijl−ηailδjl+1
b
i
l
=
b
i
l
−
η
δ
j
l
+
1
b_{i}^l=b_i^l-\eta \delta_j^{l+1}
bil=bil−ηδjl+1
未完待续。。。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。