使用循环神经网络进行时间序列预测

在本文中,我们将回顾三种用于提高循环神经网络性能和泛化能力的高级技术。我们将在温度预测问题上演示这三个概念,您可以访问来自安装在建筑物屋顶上的传感器的时间序列数据点。

来源:RStudio AI博客

概述

在本文中,我们将回顾三种用于提高循环神经网络性能和泛化能力的高级技术。在本节结束时,您将了解有关使用 Keras 进行循环网络的大部分知识。我们将在温度预测问题上演示这三个概念,您可以访问安装在建筑物屋顶上的传感器的时间序列数据点,例如温度、气压和湿度,您可以使用这些数据点预测最后一个数据点后 24 小时的温度。这是一个相当具有挑战性的问题,体现了处理时间序列时遇到的许多常见困难。

我们将介绍以下技术:

    循环 dropout — 这是一种使用 dropout 对抗循环层过拟合的特定内置方法。堆叠循环层 — 这会增加网络的表示能力(但代价是更高的计算负载)。双向循环层 — 它们以不同的方式向循环网络呈现相同的信息,从而提高准确性并缓解遗忘问题。
  • 循环 dropout — 这是一种使用 dropout 对抗循环层过拟合的特定内置方法。
  • 循环 dropout
  • 堆叠循环层 — 这会增加网络的表示能力(但代价是更高的计算负载)。
  • 堆叠循环层
  • 双向循环层 — 它们以不同的方式向循环网络呈现相同的信息,从而提高准确性并缓解遗忘问题。
  • 双向循环层

    温度预测问题

    天气时间序列数据集

    下载并解压缩数据,如下所示:

    dir.create("~/Downloads/jena_climate", recursive = TRUE) dir.create dir.create ( "~/Downloads/jena_climate" = TRUE ) download.file( download.file download.file ( “https://s3.amazonaws.com/keras-datasets/jena_climate_2009_2016.csv.zip”, “~/Downloads/jena_climate/jena_climate_2009_2016.csv.zip” )