背景
股票市场存在着短线、中长线、长线等不同频率的交易模式,这些交易活动决定了股票价格的变动。为了对股票价格进行预测,该文章提出了一种循环神经网络SFM,可以从股票价格的时序数据中捕捉多种频率的交易规律,从而做出短期/长期预测。
知识基础
傅里叶变换
作用:任何周期信号都可以分解为正弦函数的累加和。
分解后:
用公式表示:设 x [ n ] x[n] x[n]是一系列离散信号,将其进行傅里叶变换
傅里叶逆变换:
根据欧拉公式进行一系列推导,发现 x [ n ] x[n] x[n]可以表示为一系列三角函数的和。三角函数可以看作不同的频率分量。这样就相当于从时域转换到了频域。
从另一个角度理解,我们也可以看做用一组特殊的正交基 e j ( 2 π / N ) k n \ e^{j(2\pi/N)kn} ej(2π/N)kn来线性表示 x [ n ] x[n] x[n]。其中 k k k表示了不同的频率。
循环神经网络
RNN
普通神经网络的隐藏层没有连接。RNN为了提取时序数据之间的关系,让 t t t时刻的隐藏层状态受到上一时刻隐藏层状态 h t − 1 \ h_{t-1} ht−1 的影响。
h t = t a n h ( U h t − 1 + W x t + b ) h_{t}=tanh(Uh_{t-1}+Wx_{t}+b) ht=tanh(Uht−1+Wxt+b)
LSTM
RNN中只有两个组件:输入和隐藏状态, x t x_t xt和 h t − 1 h_{t-1} ht−1直接构成了下一刻的隐藏状态 h t h_{t} ht。LSTM中多了一个记忆细胞序列 c c c, x t x_t xt和 h t − 1 h_{t-1} ht−1组合后,和上一刻的记忆细胞一起组成了这一刻的记忆细胞。
输入门、遗忘门:
记忆细胞进一步通过输出门得到隐藏状态。
与简单的RNN网络模型比,LSTM不是仅仅依靠快速变化的hidden state的信息去产生预测,而是还利用了记忆细胞 cell 进行长程记忆。
关键就是最上层的记忆细胞,是一个近似线性流,信息衰减很弱
SFM
在LSTM的基础上进行改进,对记忆细胞进行了一个不同频率上的分解。
LSTM记忆细胞: D D D维向量 c t c_t ct
SFM记忆细胞:一个D X K维的矩阵 S t S_t St,行表示D个状态,列表示K个频率分量
如何更新?利用了上文介绍的傅里叶变换基, w w w代表不同频率
遗忘门需要同时控制状态和频率的流入流出
最终目的是输出隐藏状态 h t h_{t} ht,一个d维向量。所以需要再次合并。
S t S_{t} St中每一个元素是一个复数,复数可以用其振幅和相位来表示。相位的影响不大,只用振幅表示。
u a u_a ua是 d d d维,相当于把频率分量又结合起来。
u a u_a ua通过学习得到,表示不同频率分量的权重
预测
做一个 n n n步预测, n n n决定了是长期预测还是短期预测