序列模型
- 实际上有很多数据是有时序结构的
- 生活中的例子
- 电影评分随时间变化
- 语音,文字序列
- 股票随时间变化
- 等等非常多
为了让神经网络理解序列模型,我们需要新的工具来建模
- 在时间
t
观察得到x_t
,得到T个不独立的随机遍历,(x_1, x_2, \dots, x_T)
记作p(\textbf{x})
- 我们希望通过以下途径预测
x_t
x_t \sim p(x_t|x_{t-1}, x_{t-2}, \dots, x_1)
基本原理
自回归模型
- 使用条件概率展开
p(a,b)=p(a)p(b|a)=p(b)p(a|b)
p(\textbf{x})=p(x_1)p(x_2|x_1)p(x_3|x_1,x_2){\dots}p(x_T|x_1,x_2,\dots,x_{T-1})
- 反序展开
p(\textbf{x})=p(x_T)p(x_{T-1}|X_T)p(x_{T-2}|x_{T-1},x_T){\dots}p(x_1| )
- 对条件概率建模(例如MLP)
p(x_t|x_{t-1}, x_{t-2}, \dots, x_1) = p(x_t|f(x_{t-1}, x_{t-2}, \dots, x_1)
马尔可夫模型
- 假设当前数据只跟过去的
\tau
个数据点有关p(x_t|x_{t-1}, x_{t-2}, \dots, x_1) = p(x_t|x_{t-\tau}, \dots, x_{t-1}) = p(x_t|f(x_{t-\tau}, \dots, x_{t-1}))
引入潜变量
h_t = f(x_{t-\tau}, \dots, x_{t-1})
则x_t = p(x_t|h_t)
事实上,更多的模型假设是
x_t = p(x_t|h_t, x_{t-1})
因果关系
x_{t+1}=f(x_t) + \epsilon
实验
使用马尔可夫模型预测一个带噪音的正弦波,取\tau = 4
,使用一个有一个隐藏层(十个神经元)的MLP训练
前600为训练集,后400单点预测
从600开始,往后预测400个点
分别预测1个点,4个点,16个点,64个点
取\tau = 100