RNN网络结构及公式推导
2017-07-18 17:37
423 查看
RNN结构如图所示:
Xt∈Rx表示t时刻的输入(Xt是多少维,则这一层有多少个神经元,这里设为x维,图中画的是3维)
ht∈Rh表示t时刻隐层的输出(假设这一层有h个神经元)
yt∈Ry表示t时刻的预测输出
dt∈Ry表示t时刻的期望输出
V∈Rx×h表示从输入层到隐层的权值矩阵
U∈Rh×h表示上一个时刻到这个时刻的权值矩阵
bh∈Rh表示隐层的偏置,其中每一项对应某一神经元的偏置项
W∈Rh×y表示隐层到输出层的权值矩阵
by∈Ry表示输出层的偏置项
正向传播过程:
Xti表示t时刻某个样本第i维的输入,即输入层第i个神经元的输入
t时刻隐层第j个神经元的输入:cthj=∑xi=1XtiVij+∑hs=1ht−1sUsj+bhj
t时刻隐层第j个神经元的输出:htj=f(chj)
t时刻输出层第k个神经元的输入:ctyk=∑hj=1htjWjk+byk
t时刻输出层第k个神经元的输出:ytj=g(cyk)
矩阵表示(只有一个样本的情况):
t时刻隐层的输入,h*1向量,cth=VTXt+UTht−1+bh
t时刻隐层的输出,h*1向量,ht=f(cth)
t时刻输出层的输入,y*1向量,cty=WTht+by
t时刻输出层的输出,y*1向量,yt=g(cty)
反向求导过程:
假设共有p个样本,则t时刻的误差可以定义为:Et=∑p12∥dt−yt∥2,整个网络的误差为E=∑tEt=12∑p∑Tt=1∥dt−yt∥2,
∂E∂W=∑Tt=1∂E∂yt∂yt∂W
∂E∂yt=−(dt−yt)
∂yt∂W=∂yt∂cty∂cty∂W=g′(cty)ht
所以∂E∂W=−∑Tt=1(dt−yt)g′(cty)ht
∂E∂U=∑Tt=1∂E∂ht∂ht∂U,∂E∂V=∑Tt=1∂E∂ht∂ht∂V
由于ht一方面输到yt,一方面输到ht+1,所以它的误差来自两方面:
∂E∂ht=∂E∂yt∂yt∂ht+∂E∂ht+1∂ht+1∂ht=∂E∂yt∂yt∂cty∂cty∂ht+∂E∂ht+1∂ht+1∂ct+1h∂ct+1h∂ht=∂E∂ytg′(cty)W+∂E∂ht+1f′(ct+1h)U
∂ht∂U=∂ht∂cth∂cth∂U=f′(cth)ht−1,∂ht∂V=∂ht∂cth∂cth∂V=f′(cth)Xt
所以
∂E∂U=∑Tt=1[∂E∂ytg′(cty)W+∂E∂ht+1f′(ct+1h)U]f′(cth)ht−1
∂E∂V=∑Tt=1[∂E∂ytg′(cty)W+∂E∂ht+1f′(ct+1h)U]f′(cth)Xt
∂E∂by=∑Tt=1∂E∂yt∂yt∂cty∂cty∂by=−∑Tt=1(dt−yt)g′(cty)
∂E∂bh=∑Tt=1∂E∂ht∂ht∂cth∂cth∂bh=∑Tt=1[∂E∂ytg′(cty)W+∂E∂ht+1f′(ct+1h)U]f′(cth)
Xt∈Rx表示t时刻的输入(Xt是多少维,则这一层有多少个神经元,这里设为x维,图中画的是3维)
ht∈Rh表示t时刻隐层的输出(假设这一层有h个神经元)
yt∈Ry表示t时刻的预测输出
dt∈Ry表示t时刻的期望输出
V∈Rx×h表示从输入层到隐层的权值矩阵
U∈Rh×h表示上一个时刻到这个时刻的权值矩阵
bh∈Rh表示隐层的偏置,其中每一项对应某一神经元的偏置项
W∈Rh×y表示隐层到输出层的权值矩阵
by∈Ry表示输出层的偏置项
正向传播过程:
Xti表示t时刻某个样本第i维的输入,即输入层第i个神经元的输入
t时刻隐层第j个神经元的输入:cthj=∑xi=1XtiVij+∑hs=1ht−1sUsj+bhj
t时刻隐层第j个神经元的输出:htj=f(chj)
t时刻输出层第k个神经元的输入:ctyk=∑hj=1htjWjk+byk
t时刻输出层第k个神经元的输出:ytj=g(cyk)
矩阵表示(只有一个样本的情况):
t时刻隐层的输入,h*1向量,cth=VTXt+UTht−1+bh
t时刻隐层的输出,h*1向量,ht=f(cth)
t时刻输出层的输入,y*1向量,cty=WTht+by
t时刻输出层的输出,y*1向量,yt=g(cty)
反向求导过程:
假设共有p个样本,则t时刻的误差可以定义为:Et=∑p12∥dt−yt∥2,整个网络的误差为E=∑tEt=12∑p∑Tt=1∥dt−yt∥2,
∂E∂W=∑Tt=1∂E∂yt∂yt∂W
∂E∂yt=−(dt−yt)
∂yt∂W=∂yt∂cty∂cty∂W=g′(cty)ht
所以∂E∂W=−∑Tt=1(dt−yt)g′(cty)ht
∂E∂U=∑Tt=1∂E∂ht∂ht∂U,∂E∂V=∑Tt=1∂E∂ht∂ht∂V
由于ht一方面输到yt,一方面输到ht+1,所以它的误差来自两方面:
∂E∂ht=∂E∂yt∂yt∂ht+∂E∂ht+1∂ht+1∂ht=∂E∂yt∂yt∂cty∂cty∂ht+∂E∂ht+1∂ht+1∂ct+1h∂ct+1h∂ht=∂E∂ytg′(cty)W+∂E∂ht+1f′(ct+1h)U
∂ht∂U=∂ht∂cth∂cth∂U=f′(cth)ht−1,∂ht∂V=∂ht∂cth∂cth∂V=f′(cth)Xt
所以
∂E∂U=∑Tt=1[∂E∂ytg′(cty)W+∂E∂ht+1f′(ct+1h)U]f′(cth)ht−1
∂E∂V=∑Tt=1[∂E∂ytg′(cty)W+∂E∂ht+1f′(ct+1h)U]f′(cth)Xt
∂E∂by=∑Tt=1∂E∂yt∂yt∂cty∂cty∂by=−∑Tt=1(dt−yt)g′(cty)
∂E∂bh=∑Tt=1∂E∂ht∂ht∂cth∂cth∂bh=∑Tt=1[∂E∂ytg′(cty)W+∂E∂ht+1f′(ct+1h)U]f′(cth)
相关文章推荐
- 循环神经网络(一般RNN)推导
- 神经网络前向反向公式推导及说明
- RNN(Recurrent Neural Networks)公式推导和实现
- RNN 循环 NN 神经网络 基本结构类型
- 2017年浙江工业大学大学生程序设计迎新赛决赛—网络同步赛 H 小周的曲射炮【公式推导||分类二分】
- 理解CNN、DNN、RNN(递归神经网络以及循环神经网络)以及LSTM网络结构笔记
- RNN的简单的推导演算公式(BPTT)
- CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构有什么区别?
- CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构有什么区别?
- 运算放大器的应用之:T形电阻网络公式推导
- CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构有什么区别?
- 神经网络反向传播公式的推导
- R-2R”T“形电阻网络D/A转换公式推导
- CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构的区别
- CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构有什么区别?
- 一文读懂 CNN、DNN、RNN 内部网络结构区别
- CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构有什么区别?
- CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构有什么区别?
- CNN、DNN、RNN 内部网络结构区别