基于卷积的神经网络的时间序列预测——WaveNet

基于卷积的神经网络的时间序列预测——WaveNet

原文博客的参考地址:https://jeddy92.github.io/JEddy92.github.io/ts_seq2seq_conv/

项目参考地址:https://github.com/JEddy92/TimeSeries_Seq2Seq/blob/master/notebooks/TS_Seq2Seq_Conv_Intro.ipynb

项目中的数据集参考:https://download.csdn.net/download/qq_33472765/10837671

文章主要是表现出:WaveNet的核心是扩张的因果卷积层,允许它正确处理时间顺序并处理长期依赖,而不会导致模型复杂性的爆炸。

 

 

Time Series Forecasting with Convolutional Neural Networks - a Look at WaveNet

注意:如果您有兴趣了解更多并使用keras自己构建一个简单的WaveNet风格的CNN时间序列模型,请查看我在github上发布的随附笔记本。有关使用神经网络进行高维时间序列预测的介绍性视图,您可以阅读我以前的博客文章。

如果你正在阅读这篇博客,你很可能熟悉卷积神经网络的一些经典应用,如图像识别和文本分类等任务。卷积是一种非常自然而强大的工具,用于捕捉空间不变的模式。这无关紧要,其中在图像晶须当我们识别猫出现。同样,在将文件归类为法庭案件记录时,法律术语短语的存在对我们的重要性要大于他们在文件中的地位。但是时间模式呢?通过类似的说法,可能会出现周期性模式,如每周周期性和某些自相关结构,卷积非常适合建模吗?

答案是肯定的!事实证明,有一些专门的卷积架构在时间序列预测任务中表现得非常好。在这篇文章中,我将特别讨论一个DeepMind的WaveNet,它旨在推动文本到语音系统的最新技术发展。WaveNet模型的架构允许它利用卷积层的效率,同时减轻在大量时间步长(1000+)内学习长期依赖性的挑战。后者是复发神经网络的常见痛点,即使是那些包含一些长期记忆机制(如LSTM)的神经网络。

WaveNet的核心是扩张的因果卷积层,它允许它正确处理时间顺序并处理长期依赖,而不会导致模型复杂性的爆炸。以下是DeepMind帖子中其结构的可视化:

WaveNet

视觉效果很有帮助,但让我们试着通过打破它来获得更多的洞察力。首先,是什么造成了卷积因果关系?在传统的一维卷积层中,我们在输入序列上滑动权重过滤器,顺序地将其应用于系列的(通常是重叠的)区域。但是当我们使用时间序列的历史来预测它的未来时,我们必须要小心。当我们形成最终将输入步骤连接到输出的层时,我们必须确保输入不会影响及时进行输出的输出步骤。否则,我们将使用未来预测过去,所以我们的模型会作弊!

为了确保我们不以这种方式作弊,我们调整卷积设计以明确禁止未来影响过去。换句话说,我们只允许输入连接到因果结构中的未来时间步输出,如下图所示,来自WaveNet论文的可视化。实际上,这种因果一维结构很容易通过将传统的卷积输出移动多个时间步来实现。

dilated_conv

因果卷积提供了处理时间流的适当工具,但我们需要进行额外修改以正确处理长期依赖性。在上面的简单因果卷积图中,您可以看到只有5个最近的时间步长可以影响突出显示的输出。事实上,我们需要每个时间步一个额外的层才能在系列中更远的地方(使用适当的术语,以增加输出的感受野)。对于具有大量步骤的时间序列,使用简单的因果卷积来从整个历史中学习将很快使得模型方式在计算上和统计上更加复杂。

WaveNet使用扩张的卷积而不是犯这个错误,这使得感知场随着卷积层深度的增加呈指数增长。在扩张的卷积层中,滤波器不以简单的顺序方式应用于输入,而是跳过恒定的扩张速率在它们处理的每个输入之间输入,如下面的WaveNet图中所示。通过在每一层(例如1,2,4,8,...)乘法增加膨胀率,我们可以实现我们所需的层深度和感受野大小之间的指数关系。在图中,您可以看到我们现在如何只需要4层将所有16个输入系列值连接到突出显示的输出(比如第17个时间步长值)。通过扩展,当使用每日时间序列时,人们可以捕获超过一年的历史,只有9个这种形式的扩张卷积层。

dilated_conv

这一切听起来都不错,但它在实践中如何运作?使用与我之前的帖子相同的维基百科页面流量数据,我训练了一个简单的WaveNet风格的网络(代码全部在随附的笔记本中)。我使用了一叠8个扩张的因果卷积层,然后是2个致密层。该模型训练很快,并且在系列中获得了许多反复出现的模式。下图显示了模型生成的未来预测示例。这与我之前关于LSTM架构的帖子中的系列相同,您可以清楚地看到这些CNN预测更具表现力和准确性。

ts_preds

这个简单的CNN利用了WaveNet模型的核心组件,但省略了一些额外的增强功能,包括残留和跳过连接以及门控激活。请继续关注我未来的帖子/笔记本,了解更多相关内容并了解WaveNet的全部功能。您还可以查看WaveNet论文或Sean Vasquez应用于同一维基百科数据集的WaveNet架构的现象张量流实现。

你可能感兴趣的:(人工智能,论文,时间序列,预测,WaveNet)