Transcript PPT下载

进度报告
之
基于Recurrent neural network的
时间序列分析
报告人:陈 恬
2015/4/13
主要内容
1 RNN简介
2 RNN的学习算法
3 需解决的问题
4 后续学习安排
神经网络模型的基本组成
 生物神经元的基本组成
细胞体
突起
树突
轴突
 人工神经元的基本结构
处理单元
连接
输入
输出
之神经元
1 RNN简介
•
RNN是一类以在网络中出现环为特点的网络模型,并且
能存储着神经元这一时刻的输入与前一时刻输出的以来关
系。前向静态神经网络虽然对非线性函数具有良好的逼近
能力,但却不具动态性,所以就引入了递归神经网络——
RNN。
•
RNN相对于前向静态网络不同的就是信号从一个神经元
到另一个神经元,并不会马上消失,而是继续存活。
RNN的神经元
• 主要由5个部分组成
 输入
u1 (t ),...,uq (t )和y1 (t ),...,yl (t )
 网络权值和阈值
wi ,1 ,...,wi ,q和mi ,1 ,...,mi ,l
i
 求和单元
xi (t  1)   mil yl (t )   wiquq (t ) i
l
q
 传递函数
f ()
 输出
yi (t  1)  f ( xi (t  1))
RNN分类
• 全局递归神经网络(Fully Recurrent NNs)
离散DHNN
Hopfiled网络
连续CHNN
• 局部递归神经网络(Locally Recurrent NNs)
外部时延网络:Jordan网络
内部时延网络:Elman网络
RNN的学习算法
• 通过时间的反向传播算法(Back Propagation Through
Time,BPTT)
• BPTT算法是BP算法的扩展,可将加
在网络上的时序信号按层展开,将动
态网络转化为动态网络,用BP算法进
行训练。
BPTT算法描述
定义回合的误差函数(n 0表示回合的起始时间,n1 表示回合的结束时间)
1 n1
e j (n)  d j (n)  yi (n)
Etotal (n0, n1 )   e 2j (n)
2 nn0 j
(1)在区间[ n 0, n1]上,对数据做前向运算,保存完整的输入数据记录、
网络状态(权值)和期望输出;
(2)对过去这条记录执行一个单纯的反向传播网络,计算局部梯度;
 ' (v j (n))e j (n),当l  n;
Etotal (n0 , n1 ) 
 j ( n)  

 ' (v j (n))[e j (n)   wkj k (l  1)],当n0  l  n1
v j (n)

k
(3)当反向传播的计算回到
如下:
n0  1 时,对神经元 j 的突触权值 w ji 调整
n1
Etotal (n0 , n1 )
w ji (n)  
   j (n) xi (n  1)
w ji
n  n0 1
RNN的学习算法
• 实时递归学习算法 (Real time Recurrent Learning,RTRL)
用于训练局部网络;
有N=4个单元,M=2个外加
输入,x(n)表示n时刻的输入
向量,y(n+1)表示下一时刻的
输出向量,总的输入向量为
 xi ( n ),i  A
ui ( n)  
 yi ( n),i  B
RTRL算法描述
(1)从n=0开始,对每一步n,计算N个神经元的输出,求出联合输入ui (n);
n时刻 j 神经元的净输入为: v j (n)   wij (n)ui (n)
iA B
下一时刻 j 的输出为: yi (n  1)  [v j (n)]
(2)用梯度下降法求出权值的修正量;
wkl ( n)    e j ( n) pklj ( n)
jC
i
pklj ( n  1)   ' [v j ( n)]( wij ( n) pkl
( n)   kjul ( n))
iB
pklj ( n) 
y j ( n)
wkl ( n)
,j  B, k  B和l  A  B
w (n  1)  wkl (n)  wkl (n)
(3)修正权值: kl
(4)重复计算,知道误差小于某一特定值 ;
3 需解决的问题--如何处理时滞?
实际应用中,我们需要事先知道各神经元的状态信息,然后才可以合理
利用这些信息实现一些预定的目标 ,而信息有时是不可完全获知的,即模型
中存在时滞,就要求我们想办法去估计这些神经元的状态。
n
n
xi (t )  ai xi (t )   w g j ( x j (t ))   wij1 g i ( x j (t   (t )))  J i
j 1
0
ij
j 1
递归网络
定常时滞(
constant delay
)
时变时滞(
time-varying
delay)
分布式时滞(
distribute delay
)
A Clockwork RNN
• CW-RNN是通过将隐含层划分几个模块,来减少
RNN中存在的长时间依赖,从而减少了训练的时间。
后续学习安排
• 重新搭建一条学习的主线
• 多看一些关于RNN的论文
• 学好Python的编程,读懂RNN的代码
谢谢大家的指导!