RNN学习笔记(一)-简介及BPTT RTRL及Hybrid(FP/BPTT)算法
本文假设读者已经熟悉了常规的神经网络,并且了解了BP算法,如果还不了解的,参见UFIDL的教程。
- 1.RNN结构
- 2.符号定义
- 3.网络unrolled及公式推导
- 4.BPTT
- 5.RTRL
- 6.Hybrid(FP/BPTT)
- 7.参考文献
1.RNN结构
如下图1是一个最简单的RNN:
其中集合 I 为
2.符号定义
定义:
xi(t) : t 时刻第
sk(t) : t 时刻第
yk(t) : t 时刻第
dk(t) : t 时刻隐层第
wli :第 i 个输入到第
wlk :第 k 个输入到第
τ :假定网络的起始时刻为 t0 ,当前时刻为 t ,
y∗k(τ) : τ 时刻第 k 个输出节点的输出值,且
再来是一组等式定义:
sk(τ+1)=wx(τ)
ek(t)=dk(t)−yk(t)
J(τ)=∑k∈Uek(t)
Jtotal(t′,t)=∑τ=t′+1tJ(τ),t′∈[t0,t)
ϵk(τ;F)=∂F∂yk(τ)
ek(τ;F)=∂F∂y∗k(τ)
δk(τ;F)=∂F∂sk(τ)
pkij(τ)=∂yk(τ)∂wij
因为假定 F 只与
由于 F 是任意与
F=J(τ);F=Jtotal(t′,t) 或其它函数。
因为初始状态的输出 yk(t0) 为预设值,与 w 之间不存在函数关系,所以当
3.网络unrolled及公式推导
将网络按时间展开:
根据上图,下面两个式子成立:
sk(t+1)=∑l∈Uwklyl(t)+∑l∈Iwklxnetl(t)=∑l∈U∪Iwklxl(t)......(2)
yk(t+1)=fk(sk(t+1))......(3)
显然, y∗k(τ+1),y∗k(τ+2),...,y∗k(t) 可以表示成 s(τ+1) 的函数,因此,
F=F(y∗(t′),y∗(t′+1),...,yk(τ),s(τ+1))=F
下面对公式进行进一步的推导:
ϵk(τ;F)=∂F∂yk(τ)
=∂F(y∗(t′),y∗(t′+1),...,yk(τ),s(τ+1))∂yk(τ)
由复合函数求导法则,上式可进一步变为:
∂F∂y(t′)∂y(t′)∂yk(τ)+∂F∂y(t′+1)∂y(t′+1)∂yk(τ)+...+∂F∂y∗(τ)∂y∗(τ)∂yk(τ)+∂F∂s(τ+1)∂s(τ+1)∂yk(τ