论文学习:深度循环神经网络用于时间序列预测

深度循环神经网络用于时间序列预测

原文:
Deep Recurrent Neural Networks for TimeSeries Prediction


Problem

文章简介内容和后面内容极大重合,有点不知所云
感觉前面废话有点多
文章内容很晦涩

摘要

增加隐藏层or增加反馈范围都会提高erro下降的速度

数据集:癫痫数据
(epileptic seizure suppression electro-stimulator)

1 Introduction

癫痫发作是一种异常现象,特征是:简短、偶发的急剧幅度变化
Detection算法探索从EEG信号中提取的特征

输入向量: uk
特征向量: vk
内部状态: xk
转换函数: f ,且有, xk+1=f(xk,vk)
度量函数: h ,且有, zk^=h(xk,vk)
要想定义内部变量 xk ,尝试满足马尔科夫条件: P(xk|vk,vk1,...,v0)=P(zk|xk,vk)

通常,预测算法的参数需要通过训练阶段来确定
两种训练方式:online & offline
offline:随着参数变化,offline训练需要重复(或者连续并行运行),同时detection算法需要根据新的参数更新
online:可以连续增长的训练自己,因此很有适应性

本文提及的framework:
输入序列: U[k+1]={u1,u2,...,uk+1}
观测序列: Z[k]={z1,z2,...,zk} , zi=h(xi,ui) ,其中 h 度量函数已知, xi 不可观测
x^k+1|k ,表示给定 U[k+1] Z[k] ,估计 xk+1
首先预测 x^k+1|k ,当得到 zk+1 ,计算 {x^k+1|k+1,x^k|k+1,...,x^kq+2|k+1} 作为predict-correct framework
predict-correct framework可以go back并且计算比 x^kq+2|kq+1 改进的估计 x^kq+2|k+1 ,因为当在 k+1 时候发生了更加易于检测的事件,同时 zkq+2 未知或信息不够,则可以用它来做正确的映射

深度神经网络可以自动的抽取相关高层次特征,不必手动的工程特征提取,避免不适任务的特征引起的性能丢失
网络深度和网络合并反馈都会增加训练的难度

DNN训练方法举例:
有监督的训练,结合或跟随不监督的预训练
这些训练方法的核心:
反向传播梯度下降

DNN训练方法举例:Back-Propagation Through Time(BPTT)
有点类似Feed-Forward networks
但是BPTT在误差超平面容易陷入浅层局部最优,传统的,为了避免这种情况,单元activation and/or 权重更新是随机的,并且两者是被赋值的,而不是计算出来的值。这些值的来源为适合的分布+时刻下的分布的计算值

很多问题都是在将非线性的当成线性来近似

如果从外部输入的转换穿过层的集合,到最后的输出被考虑了,那么这个转换就代表一个大程度的非线性

本文工作贡献
(1)DRNN作为一个统一的解决方案,可以自动提取相关变量,自动构建内部变量、预测时间序列
(2)多隐藏层、多法相传播的理论推演
(3)训练DRNN的方法:Back-Propagation 穿过Time-and-Space的训练方法
(4)权重计算的动态规划公式

2 时间序列与预测

数据:EEG记录的数据
记录进行了band-pass滤波处理,数字化
模型表示可以基于傅里叶变换

输入向量: uk
特征向量: vk
内部状态: xk
转换函数: f ,且有, xk+1=f(xk,vk)
度量函数: h ,且有, zk^=h(xk,vk)
要想定义内部变量 xk ,尝试满足马尔科夫条件: P(xk|vk,vk1,...,v0)=P(zk|xk,vk)

offline(batch)训练算法:
给定特征向量 xi 和目标 zi {(xi,zi)}i=Ni=1
训练遍历所有数据集,确定detection参数

online(incremental)训练算法:
用特定的初始值,初始化参数
给定单特征向量 xi 或者单特征目标向量 zi (xi,zi)
如果只给定一个特征向量,只产生一个预测 zi^
如果也给定一个目标特征向量对 (xi,zi) ,则也更新其参数

度量:
SPC: specificity
SEN: sensitivity
ADR: aerage detection rate
SEN= Y+/(Y++N)
SPC= N+/(N++Y)
ADR=(SPC+SEN)/2
其中:
Y+ =true positive
N+ =true negtive
Y =false positive
N =false negtive

问题之一:
计算参数化函数的参数 w={wi}i=Mi=1 ,以便当应用训练输入数据 U={uj}j=Nj=1 ,会返回一些从 Z^={z^j=fw(Xj)}j=Nj=1 计算来的和输出 Z={zj}j=Nj=1 计算来的度量数据,使这些度量最优

机器学习中加入正则化是为了避免过拟合

ridge-regression:岭回归
w^=(UTU+λI)1UTy

以上提及的offline训练方法
前提假设:

  • zj 线性依赖于 uj
  • uj 是i.i.d,即独立同分布
  • uj 的components不是线性相关的
  • 给定的训练对 (uj,zj) 不受噪声影响
  • objective and regularization as in 岭回归???

综上,对于本文的癫痫数据集,online训练法才是合适的

uj 不是正交的时候,有方法使之正交

NN可以快速的找到非线性映射

DNN训练方法举例:
有监督的训练,结合或跟随不监督的预训练
无监督的预训练旨在最小化energy,因为低能量状态捕捉数据的structure
后面的训练旨在捕捉输入输出的理想映射
这些训练方法的核心:
反向传播梯度下降

DRNN

Feed-Forward之接收前一层的输入,因此无法处理时间序列推理

计算得到k时刻的权重,再反过来更新k-1时刻的权重???

add a bias ???
bias = 1 ???

跨时间和空间:???
跨时间=前面的时刻的hidden layer影响后面时刻
跨空间=多层hidden layer, distance不一样

V. Experimental results

可见层、隐藏层、输出层均只有一个单元
可见层和输出层的unit,其输入来源:
(1)outside or 前面的层
(2)一个bias输入
隐藏层unit,输入来源:
(1)可见层
(2)一个bias输入
(3)前一时刻自己的输出
网络中只有一个输入和输出

结论

从三个维度讨论RNN:层里面的unit数目、隐藏层数目、反向传播的instants数

你可能感兴趣的:(RNN,时间序列预测)