RNN网络结构及公式推导

来源:互联网 发布:淘宝马克华菲折扣店 编辑:程序博客网 时间:2024/06/16 03:05

RNN结构如图所示:
这里写图片描述

XtRx表示t时刻的输入(Xt是多少维,则这一层有多少个神经元,这里设为x维,图中画的是3维)

htRh表示t时刻隐层的输出(假设这一层有h个神经元)

ytRy表示t时刻的预测输出
dtRy表示t时刻的期望输出
VRx×h表示从输入层到隐层的权值矩阵
URh×h表示上一个时刻到这个时刻的权值矩阵
bhRh表示隐层的偏置,其中每一项对应某一神经元的偏置项
WRh×y表示隐层到输出层的权值矩阵
byRy表示输出层的偏置项

正向传播过程:
Xti表示t时刻某个样本第i维的输入,即输入层第i个神经元的输入
t时刻隐层第j个神经元的输入:cthj=xi=1XtiVij+hs=1ht1sUsj+bhj
t时刻隐层第j个神经元的输出:htj=f(chj)
t时刻输出层第k个神经元的输入:ctyk=hj=1htjWjk+byk
t时刻输出层第k个神经元的输出:ytj=g(cyk)

矩阵表示(只有一个样本的情况):
t时刻隐层的输入,h*1向量,cth=VTXt+UTht1+bh
t时刻隐层的输出,h*1向量,ht=f(cth)
t时刻输出层的输入,y*1向量,cty=WTht+by
t时刻输出层的输出,y*1向量,yt=g(cty)

反向求导过程:
假设共有p个样本,则t时刻的误差可以定义为:Et=p12dtyt2,整个网络的误差为E=tEt=12pTt=1dtyt2,

EW=Tt=1EytytW

Eyt=(dtyt)

ytW=ytctyctyW=g(cty)ht

所以EW=Tt=1(dtyt)g(cty)ht

EU=Tt=1EhthtUEV=Tt=1EhthtV

由于ht一方面输到yt,一方面输到ht+1,所以它的误差来自两方面:

Eht=Eytytht+Eht+1ht+1ht=Eytytctyctyht+Eht+1ht+1ct+1hct+1hht=Eytg(cty)W+Eht+1f(ct+1h)U

htU=htcthcthU=f(cth)ht1htV=htcthcthV=f(cth)Xt

所以

EU=Tt=1[Eytg(cty)W+Eht+1f(ct+1h)U]f(cth)ht1

EV=Tt=1[Eytg(cty)W+Eht+1f(ct+1h)U]f(cth)Xt

Eby=Tt=1Eytytctyctyby=Tt=1(dtyt)g(cty)

Ebh=Tt=1Ehthtcthcthbh=Tt=1[Eytg(cty)W+Eht+1f(ct+1h)U]f(cth)

原创粉丝点击