论文学习:深度学习时间序列建模

深度学习时间序列建模

原文:
Deep Learning for Time Series Modeling
CS 229 Final Project Report

4 Step 1 - 线性模型

线性回归可以看作特殊的退化的神经网络,他没有隐藏层

特征创建的过程是浪费的,因为多项式的展开并没有带来统计特性而且耗时
可以用子集选择的方法+扩展变量的方法来解决,但是只能在小的subsets上,而且可能会损失重要的训练信息

subset选择方法:
forward/backward stepwaise
lasso

在复杂计算下,为了尽可能的维护数据信息,本文实现了k-means聚类,运行算法直到收敛过分减缓
在用不同的cluster数目+运行朴素“nearest centroid”分类下,发现增加模型复杂度,结果会提升
发现当使用feature standerdization聚类过程更高效

feature standerdization = mean zero/unit variance ???

为了增加模型复杂度,用Kernal方法
本文实现了基于平方指数距离的kernelized local regression
当额外考虑每个cluster的点数,结果也会提升

Limitation:
计算开销大
kernalized回归400个cluster

5 Step 2 - 神经网

NN能够在大数据集上增加复杂性

本文:
(1)实现了feedforward网络来探索模型参数
(2)用循环结构来推理,来提升预测准确度

过程
(1)通过k-flolds validation来选择参数,包含:
样本集size、feature engineering、异常过滤、训练算法、网络拓扑
此阶段考虑计算开销,只用了feedforward网络
(2)70%的数据用于训练、15%用于validation stopping、15%用于测试
(3)重复10次,计算平均样本误差

5.1 学习曲线

网络:
中型feedforward网络,2个隐藏层,分别包含30和10个神经元
用比例变换的训练数据集训练,检测学习曲线

问题:
虽然网络复杂,但是有高的bias

解决关注点:
develop新的特征+增加模型复杂度

5.2 feature engineering

特征的加入使得RMSE减小
可以比中型网络实现更多复杂性的model,会有更好的performace

5.3 傅里叶变换网络

为了探索data的强周期性(频率),本文试图用Modified Discrete Cosine Transforms,来预测其频率空间
设置时间窗口, l ,来拆分时间序列
被转换的数据集由样本(x^(i),y^(i))构成
x^(i) ,是温度时间序列的第i个时间窗口的transform
y^(i) ,是power loads时间序列的第i个时间窗口的transform

本文:
网络拓扑:两层隐藏层
第一层:节点数和输入 x^(i) 的一样
第二层:节点数和输入 y^(i) 的一样
为了加速计算&减少过拟合风险,在 x^(i) 上应用PCA,降维
worked on the first 95% of the total variance ???

随着时间窗口的增加 ???
(1)减少数据集样本数
(2)增加样本的维度
模型的负责度增加,同时数据集变小

根据图Fig 5:
(1)sample数固定,随着窗口变大,RMSE一般会变大
(2)window固定,随着样本数增大,RMSE增大
(3)测试误差>训练误差

5.4 异常过滤

异常过滤可以减少NN的误差

本文:
用混合的高斯来估计最不可能的数据,标记为异常
在18维的特征空间,用10~100个多变量的高斯来拟合数据,将最小的可能性的数据(1%,5%,10%)标志为异常特征
NN在新的特征空间训练
但是没有明显改进generalization error

混合高斯可能无法标志异常数据

5.5 训练算法

由于NN(特别是DNN)目标函数的非凸性,很难训练

本文:尝试了5种训练算法
Levenberg-Marquardt
BFGS Quasi-Newton
Bayesian Regulation
Scaled Conugate Gradient
Conjugate Gradient

LM算法:
Levenberg-Marquardt(结合了quasi-Newton+梯度下降算法),收敛最快、总是最好的error

5.6 RNN

纯Feedforward网络会忽视时间序列数据的时间结构
RNN可以解决此问题

RNN可能有多种类型的反馈loop
有两种为:input delay 和 feedback delay,两者通过给网络提供延迟的信息,伴随当前信息,实际上增加了输入的node数目
input delay:
输入特征的多个连续的时间步同时呈现在网络中
feedback delay:
模型的输出,伴随之前的data,作为输入

open loop:
输出作为输入
closed loop:
将网络的输出和输入直接连接

要预测的远,需要closed loop
但是会增加~10%的误差

5.7 网络拓扑

网络的性能与隐藏层和层里的神经元个数有关

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值