ICML 2017.
原文地址:State-Frequency Memory Recurrent Neural Networks。
代码地址:https://github.com/hhkunming/State-Frequency-Memory-Recurrent-Neural-Networks。
Abstract
时间序列建模在许多现代应用中都起着重要的作用,并且在机器学习领域也受到了越来越多的关注。在许多领域上,使用LSTM来进行时间序列的建模取得了巨大的成功。虽然LSTM能够在时域上有效地捕获长期依赖关系(long-range dependency),但是LSTM不能显式地对出现在频域中的模式(patterns)进行建模,而这些在频域中显现出来的模式对于在不同时间周期下的预测是很有帮助的。
在这篇文章中,我们提出了多频率状态记忆(State-Frequency Memory,SFM),这是一种新颖的循环结构,能够分别对不同的频率组件之间的影响进行动态建模。通过动态地将记忆分解为多个状态频率组件,SFM就能够捕获到时域上的模式之间的和频域上的模式之间的相互依赖关系,从而能够对时间序列进行更加细粒度的分析。
1 Introduction
由于时间序列建模在许多应用上面都起着重要的作用,所以如何对时间序列进行动态地建模的研究有着很长的一段历史,并且时至今日都还是热门研究方向。近些年来,循环神经网络RNN的成功以及训练数据和计算资源的急速增长都极大的推动了该领域的发展。尽管一些复杂的RNN模型(例如LSTM)在许多时间序列建模任务上表现都十分出色,但是在有一些场景,如高频交易中预测短期投资策略等表现不佳。(Mittelman, 2015)
出现这种情况的一个可能的原因是,RNN只能建模出现在时域上的模式,而当我们想要对某一时间序列的不同频率的组件分别进行建模时,RNN就难以实现了。 例如,在音素分类任务中,一些音素比如“p”和“t”是由短时、高频信号产生,而一些因素比如“iy”和“ey”是由长时、低频信号产生。因此,在音素分类分类任务中,如果能对频域中的模式进行建模会有很大的帮助。类似地,音乐片段通常由跨越不同频带的音符序列组成。自动生成音乐需要正确地以和声的方式混合短音符和长音符。这些例子表明,许多时间序列中都存在丰富的频率分量,正确地捕获频域中的信息并对其进行建模在许多预测和生成任务中都起着重要作用。
因此,我们希望在模型捕获时间序列的时间上下文信息时,能够同时具有多频率分析和捕获长期依赖的能力。以此为出发点,我们提出了State-Frequency Memory(SFM),一种新颖的RNN结构,能够将某一时间序列的细胞状态分解成一系列不同的频率组件。这样,序列的信息就可以表示成不同状态频率(state-frequency)的组合。对于预测和生成任务,可以动态的学习到一系列的状态频率,并将这些信息保存在记忆门(memory gates)中,方便后续预测或生成目标输出。例如,对于短期预测,高频信息更有用;低频信息更有助于长期趋势的预测。 另外,频域的阈值还能够随着时间动态适应。自适应SFM能够随着时间序列的动态演变选择合适的傅里叶基函数从而能够更准确第地建模状态频率组件。
首先,我们通过在不同的具有丰富周期性信号的波形上进行预测证明了我们提出的SFM模型的有效性。另外,我们也在几个不同类型的时间序列数据集上进行了实验,证明SFM同样适用于非周期性时间序列建模。实验结果表明,SFM可以达到SOTA效果。
本文其余章节的内容安排如下:第二节对基于RNN架构及其应用的相关文献进行回顾;第三节对SFM进行介绍并给出其形式化的定义和数学分析;第四节展示在不同评估任务上的实验结果;最后,在第五节进行总结。
2 Related works
最早由Elman于1990提出的循环神经网络RNNs(Elman, 1990; Jordan, 1997),扩展了标准的前馈多层感知器网络,允许它们接受序列作为输入和输出,而不是单独一个观测值。在许多序列建模任务中,比如视频的帧,语音片段,文本片段等,都和时间具有很大的关系,因此RNNs在捕获时间依赖关系方面是不可或缺的手段。不幸的是,研究(Bengio et al., 1994)指出,由于在训练RNNs时反向传播出现梯度消失或梯度爆炸,导致RNNs难以捕获长期的时间依赖关系,这也使得基于梯度的优化方法陷入困局。
为了克服以上困难,一部分学者致力于提出更好的学习算法(Bengio et al., 2013;Pascanu et al., 2013;Martens & Sutskever, 2011),而一部分学者则专注于设计更加复杂的网络结构。1997,Hochreiter和Schmidhuber提出了长短时记忆(Long Short-Term Memory,LSTM)单元。与传统的RNN相比,LSTM通过引入门控机制从而具有了捕获长期依赖关系的能力。在实际应用中,LSTM在语音识别和手写体字符识别任务中表现都很出色(Graves et al., 2005; Graves & Schmidhuber, 2009; Sak et al., 2014)。2014,Cho等人提出了GRU(Gated Recurrent Unit),LSTM的一个变体。GRU用一个更新门替代了LSTM中的遗忘门和输入门,并且合并了细胞状态和隐藏状态省去了输出门,从而在性能没有明显减弱的情况下实现了一种更简单的网络结构。
除了LSTM及其变体GRU以外,还有许多其他的方法可以提升RNNs的序列建模能力。比如,分层RNN(El Hihi & Bengio, 1995)通过多层RNN网络层来建模序列的多种时间尺度的信息。随后,Schuster和Paliwal在1997年提出了双向RNN,Graves和Schmidhuber在2005年提出了双向LSTM。双向传播的结构使得输出层不仅能够捕获历史的信息,还能捕获到未来的信息。Clockwork RNN(Koutnik et al., 2014)和Phased LSTM(Neil et al., 2016)都提出了一种新的状态更新模式,允许隐藏层状态以不同的频率进行更新。
除了提出新的网络结构以外,也有许多研究者专注于将现有的RNN模型运用到不同的实际应用中。比如,RNN的编码解码框架被应用到了机器翻译中(Bahdanauet al., 2014;Sutskever et al., 2014);hierarchical Connectionist Temporal Classification (CTC)被应用到了语音识别任务中(Fern´andez et al., 2007)。后来,有研究(Boulanger-lewandowski et al., 2012)表明RNN在复调音乐建模与转录上具有更出色的表现。
3 State-Frequency Memory Recurrent Neural Networks
假设已知一条具有 T T T个观测值的序列 X 1 : T = [ x 1 , x 2 , ⋯ , x T ] \mathbf X_{1:T}=[\mathbf x_1, \mathbf x_2, \cdots, \mathbf x_T] X1:T=[x1,x2,⋯,xT],其中每一个观测值都是一个 N N N维向量,即 x t ∈ R N ( t = 1 , ⋯ , T ) \mathbf x_t\in\mathbb R^N(t=1, \cdots,T) xt∈RN(t=1,⋯,T)。然后使用序列长度同为 T T T的记忆细胞序列来建模输入序列的动态变化。
与传统的LSTM类似,SFM中各个时间步的记忆细胞包含了 D D D维的记忆状态,不同的是,我们将这些记忆状态分解成了 K K K个的频率组件,各频率组件的频率记为 { ω 1 , ⋯ , ω K } \{\omega_1, \cdots,\omega_K\} { ω1,⋯