机器学习周记(第十九周:文献阅读-TCN and RNN)2023.11.27~2023.12.3

本文介绍了一种结合时间卷积神经网络(TCN)和循环神经网络(RNN)的模型,用于混沌时间序列预测。研究利用Lorenz、Rössler和类Lorenz混沌系统生成数据,评估了模型在实际应用如水质预测中的潜力。

目录

摘要

ABSTRACT

1 论文标题

2 论文摘要

3 问题描述

4 过去方案

5 论文方案

5.1 时间卷积神经网络(TCN)

5.1.1 因果卷积(Causal Convolutions)

5.1.2 膨胀卷积(Dilated Convolutions)

5.1.3 残差块(Residual Block)

5.2 论文模型

5.3 数据集

5.3.1 Lorenz系统

5.3.2 Rössler系统

5.3.3 类Lorenz系统

6 相关代码


摘要

  本周阅读了一篇混沌时间序列预测的论文,论文模型主要使用的是时间卷积网络(Temporal Convolutional Network,TCN)、LSTM以及GRU。在数据集方面除了使用现实的时间序列数据外,还通过若干混沌系统生成了一些混沌的时间序列数据,这些数据没有现实方面的意义,但可以用来证明论文模型的实用性。因为混沌时间序列在现实世界普遍存在,例如水质,股票,天气等,所以论文模型也有运用于水质预测的潜力。

ABSTRACT

This week, We read a paper on chaotic time series prediction. The paper primarily utilized models such as Temporal Convolutional Network (TCN), Long Short-Term Memory (LSTM), and Gated Recurrent Unit (GRU). In terms of the dataset, in addition to using real-world time series data, the paper also generated chaotic time series data through several chaotic systems. Although these chaotic data lack real-world significance, they serve to demonstrate the practicality of the proposed models. Given the prevalence of chaotic time series in the real world, such as in water quality, stock markets, and weather patterns, the models presented in the paper hold potential for applications in water quality prediction.

1 论文标题

Temporal Convolutional Networks with RNN approach for chaotic time series prediction

2 论文摘要

  混沌时间序列(Chaotic Time Series)的预测构成了科学与工程领域的许多系统,近年来成为研究者关注的焦点。混沌时间序列预测是使用先前观测到的数据对具有已知初始条件的非线性混沌系统进行未来预测。混沌时间序列预测可以应用于天气预报、金融和股票市场等许多领域。许多学科致力于解决时间序列预测问题,从提前几天预测天气事件到交易者预测股票的未来。在最近的研究中,已经知道到混合深度神经网络方法在解决时间序列预测问题方面具有更好的性能,并且因为从解决此类问题的多种方法的优势中受益而使得其越来越受欢迎。本文提出了一种用于混沌时间序列预测的混合深度神经网络架构。所使用的混合方法包括时间卷积网络,用于从输入和递归神经网络层中提取低级特征,例如长短期记忆和门控递归单元,以捕获时间信息。

3 问题描述

  自然界中许多随时间变化的系统的数学模型具有动态系统属性,这些系统会产生混沌数据并对其进行操作。虽然混沌还没有一个普遍接受的定义,但它是以非线性系统的形式出现的,产生对初始条件敏感的非周期性输出。混沌信号是具有连续功率谱的类噪声信号。这些信号可以在自然界中找到,例如流体流动、心跳不规则、天气和气候数据,以及许多具有现实生活模式的系统,例如股票市场和道路交通。随着混沌时间序列预测研究的成功率的提高,对于这些难以预测的过程的未来情况,将有可能进行预防和准备。目前,研究人员对混沌脑电图(EEG)、载波振动、臭氧浓度、太阳活动、风速等包含混沌时间序列的系统进行未来预测,并根据这些预测提供必要的系统控制。混沌时间序列预测已成为最近研究人员最感兴趣的时间序列问题之一。其原因是自然界中的许多系统都表现出动态行为,并且随着混沌时间序列的预测成为可能,自然界中的许多现象将变得可预测。

4 过去方案

  早期的预测研究中使用的传统自回归和移动平均预测方法也被用于时间序列,但由于其线性性质,它们的预测性能较低。因此,人工神经网络(ANN)机器学习(ML)算法在2000年已经取代了时间序列预测问题的统计方法,因为它们在处理非线性方面取得了很高的成功。通过将ANN、ML与统计方法相结合,相比较单个预测算法往往能得到更高的精度。自2010年以来,深度神经网络(DNN)的使用已开始在研究中广泛使用。DNN广泛用于时间序列预测问题,可分为四种主要网络架构:Elman循环神经网络 (ERNN)卷积神经网络(CNN)时间卷积网络(TCN)。通过对真实世界工程测试用例的实验研究,观察到与19种不同的方法相比,ERNN架构给出了更准确的预测。除了在时间序列预测问题中使用 ERNN之外,LSTM是另一种递归神经网络架构,包含可以存储过去输入信息的门,近年来也在该领域得到了广泛的应用。CNN结构通常用于二维数据处理,在解决分类问题中占有重要地位,近年来也被用于时间序列数据的预测,并且已经观察到CNN结构在时间序列预测问题中取得了高性能的结果。

5 论文方案

  该文提出了一种由不同神经网络层组合而成的混合模型,即时间卷积神经网络(TCN)循环神经网络(RNN)。主要由TCN 、LSTMGRU层组成的RNN架构的TCN来解决混沌时间序列预测问题。TCN有助于提取时间序列中短时间内发生的变化特征,而LSTM揭示了长时间内发生的变化特征,GRU具有有效的非线性拟合能力。通过这种方式,可以对分布在宽频谱上的所有特征进行建模。在所使用的模型中,TCN提取时间序列的一维空间特征,并将这些特征向量提供给RNN。将两个网络一起训练,从而获得两轮特征提取和两轮数据杂质过滤。由于TCN已经大大减少了数据杂质,因此随后的RNN阶段可以更有效地工作并更好地提取序列特征。

5.1 时间卷积神经网络(TCN)

  通常认为,卷积神经网络非常适合用于图像处理任务,但实际上它也适用于时间序列预测任务。卷积操作有一维卷积和二维卷积两种方式,当卷积神经网络用于处理时间序列时,通常是对时间序列进行一维卷积。所谓的一维卷积就是从上至下、依据样本的顺序对矩阵进行扫描点积并生成一个新

### 紧密布局(tight_layout)警告的原因及解决方案 在使用 `matplotlib` 绘图时,如果出现警告信息 `UserWarning: This figure includes Axes that are not compatible with tight_layout, so results might be incorrect.`[^1],这表明当前的图形布局中存在与 `tight_layout` 不兼容的坐标轴(Axes)。`tight_layout` 是一个用于自动调整子图参数以提供更好的间距的功能,但并非所有类型的坐标轴都支持这一功能。 #### 警告产生的原因 - 当图形包含某些特殊类型的坐标轴(例如极坐标轴、共享坐标轴等)时,这些坐标轴可能不支持 `tight_layout` 的自动调整功能[^2]。 - 如果调用了 `plt.tight_layout()` 或者设置了 `figure` 的 `tight_layout=True` 参数,而图形中的某些坐标轴不兼容,则会触发该警告[^3]。 #### 解决方案 以下是几种常见的解决方法: 1. **禁用 `tight_layout`** 如果不需要自动调整子图间距,可以直接禁用 `tight_layout`。可以通过以下方式实现: ```python import matplotlib.pyplot as plt fig, ax = plt.subplots() # 禁用 tight_layout fig.set_tight_layout(False) plt.show() ``` 2. **手动调整子图参数** 使用 `plt.subplots_adjust()` 手动设置子图之间的间距,避免依赖 `tight_layout` 的自动调整功能: ```python import matplotlib.pyplot as plt fig, ax = plt.subplots() plt.plot([1, 2, 3], [4, 5, 6]) # 手动调整子图参数 plt.subplots_adjust(left=0.1, right=0.9, top=0.9, bottom=0.1) plt.show() ``` 3. **检查并替换不兼容的坐标轴** 如果知道哪些坐标轴不兼容,可以尝试替换为兼容的类型,或者调整其属性以使其与 `tight_layout` 兼容[^4]。 4. **忽略警告信息** 如果确认警告不会影响最终绘图效果,可以选择忽略该警告。可以通过以下代码抑制警告输出: ```python import warnings import matplotlib.pyplot as plt warnings.filterwarnings("ignore", category=UserWarning, module="matplotlib") fig, ax = plt.subplots() plt.plot([1, 2, 3], [4, 5, 6]) plt.tight_layout() plt.show() ``` 5. **更新 `matplotlib` 版本** 某些旧版本的 `matplotlib` 可能存在兼容性问题。建议升级到最新版本以获得更好的支持和修复: ```bash pip install --upgrade matplotlib ``` #### 示例代码 以下是一个完整的示例,展示了如何处理 `tight_layout` 警告: ```python import matplotlib.pyplot as plt # 创建图形和坐标轴 fig, ax = plt.subplots() # 绘制简单折线图 ax.plot([1, 2, 3], [4, 5, 6]) # 手动调整子图参数以替代 tight_layout plt.subplots_adjust(left=0.1, right=0.9, top=0.9, bottom=0.1) # 显示图形 plt.show() ``` ### 注意事项 尽管禁用或忽略警告可以快速解决问题,但建议优先考虑手动调整子图参数或更新库版本,以确保绘图质量和兼容性[^5]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值