深度循环神经网络用于时间序列预测
原文:
Deep Recurrent Neural Networks for TimeSeries Prediction
Problem
文章简介内容和后面内容极大重合,有点不知所云
感觉前面废话有点多
文章内容很晦涩
摘要
增加隐藏层or增加反馈范围都会提高erro下降的速度
数据集:癫痫数据
(epileptic seizure suppression electro-stimulator)
1 Introduction
癫痫发作是一种异常现象,特征是:简短、偶发的急剧幅度变化
Detection算法探索从EEG信号中提取的特征
输入向量:
uk
特征向量:
vk
内部状态:
xk
转换函数:
f
,且有,
度量函数:
h
,且有,
要想定义内部变量
xk
,尝试满足马尔科夫条件:
P(xk|vk,vk−1,...,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
度量函数已知,
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^k−q+2|k+1}
作为predict-correct framework
predict-correct framework可以go back并且计算比
x^k−q+2|k−q+1
改进的估计
x^k−q+2|k+1
,因为当在
k+1
时候发生了更加易于检测的事件,同时
zk−q+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
,且有,
度量函数:
h
,且有,
要想定义内部变量
xk
,尝试满足马尔科夫条件:
P(xk|vk,vk−1,...,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数