第二十八周:文献阅读+机器学习

本文探讨了基于TensorFlow的深度学习方法如何运用AR和LSTM模型预测和模拟水文时间序列,比较了两者在处理复杂数据上的优势与局限。实验通过评估指标如RMSE、R2和MAE,展示了AR模型的高精度但存在局限,而LSTM提供了一定的准确性但误差较大。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

摘要

Abstract

1. 文献阅读:基于TensorFlow深度学习的水文时间序列模拟与预测

1.1. 现有问题

1.2. 提出方法

1.3. 研究目的

1.4. 实验

1.4.1. 数据集

1.4.2. 效应指标

1.4.3. 实验目的

1.4.4.实验设置

1.4.5.实验结果

1.5. 结论 

1.6. 展望

2. 神经网络

2.1. 前向传播

2.2. 反向传播

2.3.激活函数

2.3.1. 常见的激活函数

Tanh的缺点

2.3.2. 激活函数的选择

2.3.4. 为什么要使用激活函数

总结


摘要

本周阅读的文献中提出了基于TensorFlow深度学习框架,搭建AR模型和LSTM模型对水文时间序列进行模拟与预测。AR模型良好的自回归性可以解决水文时间序列中数据量大、迭代频繁以及参数复杂等问题,而LSTM模型则可以提高预测和仿真的精度,根据设置实验的预测和模拟结果证明了该方法的可行性。在训练神经网络时,需要利用正向传播计算损失值,利用反向传播给出的梯度来更新模型参数,通过这两种传播的计算推导更好了解训练的原理。此外,学习常见的激活函数以及适用范围,为不同神经元选择合适的激活函数以得到理想的输出。

Abstract

The literature read this week proposes the use of TensorFlow deep learning framework to build AR models and LSTM models for simulating and predicting hydrological time series. The good autoregressive performance of the AR model can solve problems such as large data volume, frequent iterations, and complex parameters in hydrological time series, while the LSTM model can improve the accuracy of prediction and simulation. The feasibility of this method has been proven based on the prediction and simulation results of set experiments. When training a neural network, it is necessary to use forward propagation to calculate the loss value, and use the gradient given by back propagation to update the model parameters. Through the calculation and derivation of these two propagation methods, can understand the training principle better . In addition, learn common activation functions and their applicable ranges, and select appropriate activation functions for different neurons to obtain ideal outputs.

1. 文献阅读:基于TensorFlow深度学习的水文时间序列模拟与预测

title:Simulating and Predicting of Hydrological Time Series Based on TensorFlow Deep Learning

Published:2019

DOI: https://doi.org/10.15244/pjoes/81557

1.1. 现有问题

深度学习作为机器学习的重要组成部分,有着非常广泛的应用空间。TensorFlow作为深度学习主流框架的代表也越来越受到广大研究工作者的青睐。在水文时间序列的预测中,很多研究者采用了贝叶斯模型、神经网络、小波分析、支持向量机、自记忆模型、混沌理论等现代分析技术都取得了一定效果。然而,传统的水文模型或统计模型存在局部最优、过拟合、运行效率低等问题,当前数据量大,迭代次数多,参数环境恶劣,难以预测和模拟。

1.2. 提出方法

(1)考虑TensorFlow高灵活性、可移植性、多语言支持、性能优化等优点。提出基于TensorFlow框架,用Python语言构建AR模型和LSTM模型。

(2)利用自回归模型(AR模型)预测水文时间序列,自回归模型利用特定时间随机变量的线性组合来描述以后某个时间的随机变量,具有良好的自回归特性,该模型可以通过模型将N点前方或后方的数据推出。虽然其目的是增加有效数据,但AR模型是从N点递归的,并且插值点是从两个点(或几个点)导出的。因此,AR模型优于传统的插值方法。

(3)利用LSTM预测水文时间序列。LSTM是一种长、短时记忆人工神经网络,可以学习时间序列的短期和长期相关信息。LSTM模型与传统神经网络模型的不同之处在于,它增加了一个设置有三个门的实用处理器。门可以根据与模型相关的遗忘因素进行判断,决定是否留下信息,这将有效避免累积误差的传递,大大提高预测和仿真的精度。

1.3. 研究目的

将深度学习技术应用于LSTM和AR模型,以水文时间序列为研究对象,通过拟合度等指标对模型的效果进行检验,验证AR模型和LSTM模型模型预测水文时间序列的可行性。探索深度学习在水文学中的应用。

1.4. 实验
1.4.1. 数据集

利用汉江流域的模型数据对模型进行了计算。AR模型的实测数据为2015年7月至2016年6月,实测数据预测的测试数据为2016年7月。模拟使用2016年1月至2016年6月的数据,使用2016年7月的流量数据作为模拟数据。LSTM模型基于2016年1 - 6月的流量数据进行预测,并对2016年7月的实测数据进行评价。2006年1月至2015年12月的流量数据作为实测数据。以2016年1月至2016年12月的流量数据作为模拟评价数据。

1.4.2. 效应指标

通过三个统计指标:均方根误差(RMSE)、决定系数(也称为决定系数(R2))和平均绝对误差(MAE)评价模型的效果。其中RMSE用于评价实测值与预测值之间的残差,R2用于表示模型预测序列对实测水文序列的解释程度,MAE用于表示实测值与预测值之间的绝对平均误差。

对于3个效应指标,MAE和RMSE越小,模型的准确性越高,R2越接近1,模型越有效。

1.4.3. 实验目的

基于TensorFlow框架,用Python语言构建AR模型和LSTM模型。以水文时间序列作为输入对象,对模型进行深入的研究和训练,模拟和预测水文时间序列。通过拟合度等指标对模型的效果进行检验,验证AR模型和LSTM模型模型预测水文时间序列的可行性。

1.4.4.实验设置

(1)读取水文时间序列数据;(2)定义模型的输入;(3)定义AR/LSTM模型;(4)模型训练;(5)模型评估;(6)模型预测;(7)输出图形化仿真,预测结果。

1.4.5.实验结果

从仿真结果可以看出,两种模型都有较好的效果。AR模型的拟合优度(R2)为0.9551,RMSE和MAE较小。相比之下,LSTM模型的拟合优度(R2)为0.8012,仿真效果在合格范围内,其RMSE和MAE模型误差较大。总体而言,两种模型的模拟结果均在合格水平以上,说明两种模型对水文时间序列的预测更为可行,具有进一步的研究价值。

1.5. 结论 

(1)两种模型的预测能力存在一定的局限性,对水文序列等具有高度的非线性和不确定性。

(2)与LSTM模型相比,AR模型的优度(R2)更好,RMSE和MAE更小,说明实测值与预测值之间的残差较差,绝对平均误差较小。

总体而言,两种模型在现有参数下的预测结果都不理想,但仿真结果较好,说明两种模型是可行的,还有很大的改进空间。

1.6. 展望

(1)LSTM模型有很多参数,而且学习率和改进传统梯度下降的优化算法也是可调的。如果对各个变量参数或变量进行更全面的考察和综合确定,其预测效果将有更大的提升空间。

(2)汉江流域水文时间序列的最大值与最小值存在较大差异,因此合理分析水文时间序列的非平稳性,对其进行稳定化处理,将大大提高水文时间序列的模拟和预测效果。

(3)深度学习在水文领域的应用还需要进一步探索,如果将模型的学习、训练、预测、参数自动速率等与使用优化算法进行参数自动标定联系起来。甚至可以结合TensorFlow的分布式特性,在GPU上实现分布式高效运行,实现水文信息化和高效性。

2. 神经网络

在深度学习中,一个神经网络其实就是多个复合函数组成,通俗地可以理解成一个函数近似器,它需要近似一个输入x到输出y的映射函数。

我们所要训练的网络参数其实就是在拟合这个映射函数的未知量。神经网络的训练可以分为两个步骤:一个是前向传播,另一个是反向传播。

2.1. 前向传播

前向传播 (Forward propagation)前向传播指的是神经网络从输入层到输出层的传播过程,也是依次计算每一层的输出结果的过程。在前向传播中,输入数据通过神经网络的各个层,逐层进行加权求和、激活函数处理,得到当前层的输出结果,并将其传递到下一层,这个过程一直持续到神经网络的输出层,从而得到神经网络的最终预测结果。前向传播就是把输入数据转换为输出结果,实现对数据的分类和预测。

利用前向传播得到的神经网络计算的预测结果不一定安全正确,需要与真实值相比较,计算误差的大小,采用梯度计算误差值最好的方法就是反向传播。 

2.2. 反向传播

前向传播计算出了输出值(也即预测值),就可以根据输出值与目标值的差别来计算损失loss。反向传播 (Backpropagation)则是将误差从输出层向输入层传播的过程,反向传播是一种计算损失函数对每个权重和偏差的梯度的方法。在训练神经网络时,需要通过反向传播来计算损失函数对每个权重和偏差的梯度,并使用梯度下降法来更新权重和偏差的值,从而使得损失函数最小化,核心就是损失函数对每一网络层的每一个参数求偏导的链式求导法则

2.3.激活函数
2.3.1. 常见的激活函数

常见的激活函数有sigmoid、ReLU、tanh、LeakReLU四种。

(1)Sigmoid 激活函数

其值域为(0,1),即输入的每个神经元、节点都会被缩放到一个介于0和1之间的值。当x大于零时输出结果会趋近于1,而当x小于零时,输出结果趋向于0,由于函数的特性,经常被用作二分类的输出端激活函数。

Sigmoid的优点:

  1. 平滑
  2. 易于求导
  3. 可以作为概率,辅助模型解释

Sigmoid的缺陷

  1. 当输入数据很大或者很小时,函数的梯度几乎接近于0,这对神经网络在反向传播中的学习非常不利。如下图所示。
  2. Sigmoid函数的均值不是0,这使得神经网络的训练过程中只会产生全正或全负的反馈。
  3. 导数值小于1,反向传播易导致梯度消失。

 (2)Tanh激活函数

Tanh的优点:

  1. Tanh函数把数据压缩到-1到1的范围,解决了Sigmoid函数均值不为0的问题,所以在实践中通常Tanh函数比Sigmoid函数更容易收敛。在数学形式上其实Tanh只是对Sigmoid的一个缩放形式,公式为tanh(x) = 2f(2x) -1(f(x)是sigmoid的函数)。
  2. 平滑
  3. 易于求导
Tanh的缺点
  1. 导数值小于1,反向传播易导致梯度消失。

(3)Relu激活函数

ReLU的优势:

  1. 计算公式非常简单,不像上面介绍的两个激活函数那样涉及成本更高的指数运算,大量节约了计算时间。
  2. 在随机梯度下降中比Sigmoid和Tanh更加容易使得网络收敛。
  3. ReLU进入负半区的时候,梯度为 0,神经元此时不会训练形成单侧抑制,产生稀疏性。这样可以提高学习的精度,更好更快地提取稀疏特征。
  4. sigmoid 和 tanh 函数的导数在正负饱和区的梯度都会接近于 0,这会造成梯度消失,而 ReLU函数大于 0 部分都为常数保持梯度不衰减,不会产生梯度消失现象。

ReLU的不足:

  1. 训练中可能会导致出现某些神经元永远无法更新的情况。其中一种对ReLU函数的改进方式是LeakyReLU。
  2. ReLU不能避免梯度爆炸问题。

(4)LeakyReLU 激活函数

LeakyReLU的优势:

  1. 该方法与ReLU不同的是在x小于0的时候取f(x) = ax,其中a是一个非常小的斜率(比如0.01)。这样的改进可以使得当x小于0的时候也不会导致反向传播时的梯度消失现象。

LeakyReLU的不足:

  1. 无法避免梯度爆炸的问题。
  2. 神经网络不学习α \alphaα值。
  3. 在求导的时候,两部分都是线性的。
2.3.2. 激活函数的选择

在神经网络中可以为不同的神经元选择不同的激活函数,而在考虑输出层的激活函数时,一般取决于目标值或者标签y是什么。

  1. 如果输出是 0、1 值(二分类问题),则输出层选择 Sigmoid 函数,然后其它的所有单元都选择 ReLU函数。
  2. 如果在隐藏层上不确定使用哪个激活函数,那么通常会使用 ReLU激活函数。有时,也会使用 Tanh 激活函数。
  3. Sigmoid 激活函数:除了输出层是一个二分类问题基本不会用它。
  4. Tanh 激活函数:Tanh 是非常优秀的,几乎适合所有场合。
  5. ReLU 激活函数:最常用的默认函数,如果不确定用哪个激活函数,就使用 ReLU 或者 LeakyReLU,再去尝试其他的激活函数。
  6. 如果遇到了一些死的神经元,我们可以使用 LeakyReLU 函数。
     

2.3.3. 比较sigmoid与ReLU函数

ReLU的计算速度更快,因为它只需要计算max(0,Z),而sigmoid需要先取幂再取反,因此效率比较低。ReLU函数仅在图形的一边(左边)趋向于平坦,而sigmoid函数在左右两边都趋向于平坦。

2.3.4. 为什么要使用激活函数

1)激活函数可以引入非线性因素。如果不使用激活函数,则输出信号仅是一个简单的线性函数。线性函数一个一级多项式,线性方程的复杂度有限,从数据中学习复杂函数映射的能力很小。没有激活函数,神经网络将无法学习和模拟其他复杂类型的数据,例如图像、视频、音频、语音等。

2)激活函数可以把当前特征空间通过一定的线性映射转换到另一个空间,让数据能够更好的被分类。

总结

现文献阅读方向主要为时序预测和模拟,这周阅读的文献是关于水文时间序列,通过实验研究验证机器学习的AR模型以及LSTM模型在模拟和预测水文时间序列的可行性以及未来可发展的方向。

在训练神经网络时,前向传播和反向传播相互依赖。  因此,在训练神经网络时,在初始化模型参数后, 我们交替使用前向传播和反向传播,利用反向传播给出的梯度来更新模型参数。 注意,反向传播重复利用前向传播中存储的中间值,以避免重复计算。 神经网络中不可或缺的就是激活函数,而在神经网络中可以为不同的神经元选择不同的激活函数,这个选择的标准需要根据网络的输出来决定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值