目录
摘要
Abstract
一、文献阅读
发现问题
研究方法
CNN-LSTM
DT
SVR
创新点
案例分析
数据准备
模型性能
预测模型的实现
仿真实验及分析
二、LSTM
1、基本结构
2、具体步骤
3、举例说明
4、原理理解
总结
摘要
本周阅读文献《Short-term water quality variable prediction using a hybrid CNN-LSTM deep learning model 》,本研究以希腊小普雷斯帕湖为对象,鉴于水质监测的重要性及传统方法的局限,采用传感器采集 2012 - 2013 年相关水质数据,构建 LSTM、CNN、CNN - LSTM 深度学习模型与 SVR、DT 传统机器学习模型,经数据集划分、变量归一化处理及训练后,以多种统计指标评估,结果表明混合 CNN - LSTM 模型在 DO 和 Chl - a 预测中表现最优,深度学习模型整体优于传统模型,且研究指出了未来可进一步探索的方向,如 DL 模型中长期预测、预处理方法及其他 DL 模型应用等。由于这两周阅读的文献都是LSTM相关的模型预测,所以复习了以下LSTM的基本结构和数学原理。
Abstract
This week we read the literature “Short-term water quality variable prediction using a hybrid CNN-LSTM deep learning model”, this study takes the small Prespa Lake in Greece as the object, in view of the importance of water quality monitoring and the limitations of the traditional methods, we use sensors to collect Given the importance of water quality monitoring and the limitations of traditional methods, we used sensors to collect water quality data from 2012 to 2013, and constructed LSTM, CNN, and CNN-LSTM deep learning models together with SVR and DT traditional machine learning models, and evaluated them with various statistical indicators after dataset partitioning, normalization of variables, and training, and the results showed that the hybrid CNN-LSTM model performed optimally for DO and Chl-a prediction, and that the deep learning model outperformed traditional models. The results show that the hybrid CNN-LSTM model performs best in DO and Chl - a prediction, and the deep learning model is better than the traditional model in general, and the study points out the directions that can be further explored in the future, such as the medium- and long-term prediction of the DL model, the preprocessing method, and the application of other DL models. Since the literature read in these two weeks are all LSTM-related model predictions, we reviewed the following basic structure and mathematical principles of LSTM.
一、文献阅读
本周阅读的文献是《Short-term water quality variable prediction using a hybrid CNN-LSTM deep learning model 》
发现问题
研究者们提出了一个关键问题:如何有效地预测和管理水资源,特别是在评估湖泊健康状况方面至关重要的溶解氧(DO)和叶绿素a(Chl-a)浓度。为了解决这一问题,他们探索了深度学习模型的应用,特别是长短期记忆网络(LSTM)和卷积神经网络(CNN)的潜力,以及它们结合形成的CNN-LSTM混合模型。研究者们旨在通过这些模型提高水质预测的准确性,并将它们与传统机器学习模型如支持向量回归(SVR)和决策树(DT)进行比较。
研究方法
CNN-LSTM
该模型结合了卷积神经网络(CNN)和长短期记忆网络(LSTM)的优势,用于预测水质变量。CNN部分负责从时间序列数据中提取空间特征,而LSTM部分则用于捕捉时间序列中的长期依赖关系。模型通过训练数据集进行学习,调整参数以最小化预测误差,并通过测试数据集进行性能评估,使用相关系数、均方根误差等统计指标来衡量预测的准确性。
DT
决策树模型是一种基于规则的机器学习方法,通过递归地分割数据来构建预测模型。在水质预测中,DT模型通过选择重要的特征并根据这些特征的值来划分数据,从而形成决策规则。模型的构建包括确定最佳分割点和控制树的复杂度,以避免过拟合。性能通过测试数据集上的预测结果来评估,考虑误差和其他统计指标
SVR
支持向量回归是一种基于支持向量机的回归方法,用于预测连续值。在水质预测中,SVR模型通过使用核技巧将输入数据映射到高维空间,找到最优的超平面来进行预测。模型的关键步骤包括选择核函数(如线性、RBF或多项式核),以及调整正则化参数和惩罚参数。SVR的性能通过测试数据集上的预测结果来评估,主要考虑误差大小和模型的泛化能力。
创新点
1、混合模型的开发:文献中开发了一种新的混合深度学习模型,即CNN-LSTM模型,用于预测水质变量。这种模型结合了卷积神经网络(CNN)的特征提取能力和长短期记忆网络(LSTM)的时间序列分析优势,以提高预测的准确性。
2、水质变量的预测:文献专注于预测两个重要的水质变量——溶解氧(DO)和叶绿素a(Chl-a),这些变量对于水资源管理和环境监测至关重要。通过预测这些变量,可以更好地理解湖泊生态系统的健康状况。
3、与传统机器学习模型的比较:研究中不仅开发了深度学习模型,还将它们与传统的机器学习模型(如支持向量回归(SVR)和决策树(DT))进行了比较。这种比较有助于展示深度学习模型在水质预测方面的潜在优势。
案例分析
数据准备
在该研究中,数据准备包括从2012年6月1日至2013年5月31日在希腊Small Prespa Lake使用CYCLOPS-7传感器以15分钟间隔收集的水质数据,涉及溶解氧(DO)、叶绿素a(Chl-a)、pH值、氧化还原电位(ORP)、水温和电导率(EC)等变量。数据通过滑动窗口方法转换为监督学习格式,并使用滞后时间(t-1和t-2)处理时间序列。所有变量经过归一化和最小-最大缩放处理后,数据集被划分为70%的训练集和30%的测试集,以便进行模型的开发和验证.
模型性能
相关系数:衡量观测值与预测值之间的线性关系强度
各类误差:均方根误差RMSE、平均绝对误差MAE
百分比偏差PBIAS:衡量模型预测的系统偏差
Nash-Sutcliffe效率系数:评估模型的拟合程度
illmott一致性指数:检测模型对观测数据的敏感度
图形工具:泰勒图(展示相关系数和标准化标准差)、箱线图(比较模型预测值与挂测值得分布情况)、蜘蛛图(展示多个性能指标得综合表现)
预测模型的实现
LSTM模型
使用输入层、隐藏层和输出层。隐藏层包括一个LSTM层,具有64个和32个单元,分别用于Chl-a和DO的预测。使用指数线性单元(ELU)作为激活函数,并在LSTM层后应用dropout层以防止过拟合。最后通过一个全连接层输出预测结果,并使用均方误差(MSE)损失函数和自适应梯度算法(AdaGrad)优化器进行训练。
CNN模型
包括输入层、隐藏层和输出层。隐藏层由卷积层、激活层和池化层组成。使用最大池化层和dropout层来调整过拟合,并通过全连接层输出预测结果。
CNN-LSTM混合模型
结合了CNN和LSTM的优势。首先使用CNN层提取特征,然后将这些特征输入到LSTM层进行时间序列预测。
单个模型以及混合模型对于目标变量——溶解氧和叶绿素-a的损失如下图:
仿真实验及分析
1、代码实现
model.py
CNN层
self.conv1d = nn.Conv1d(in_channels=cnn_in_channels, out_channels=cnn_out_channels, kernel_size=cnn_kernal_size, padding="same")
self.relu = nn.ReLU()
self.maxpool = nn.MaxPool1d(kernel_size= maxpool_kernal_size)
卷积层+激活函数+最大池化层
LSTM层
self.lstm = nn.LSTM(
input_size = int(lstm_input_size/maxpool_kernal_size),
hidden_size = lstm_hidden_size,
num_layers = lstm_num_layers,
batch_first = True,
dropout = dropout,
proj_size = lstm_proj_size
)
dropout层防止过拟合
前向传播
def forward(self, x):
x = self.conv1d(x)
x = self.relu(x)
x = self.maxpool(x)
lstm_out,_ = self.lstm(x)
x = self.fc(lstm_out[:, -1, :])
return x
输入数据首先经过CNN进行特征提取,然后再经过LSTM进行时间序列的预测,最后从LSTM中选择最后一个时间步的输出作为全连接层的输入进行预测。
train.py
test.py
data_procecss.py
2、结果分析
时间序列图及其拟合图
上图是三个不同的深度学习模型。无论目标变量是溶解氧还是叶绿素-a,预测散点图表现最佳的都是CNN-LSTM混合模型,但是对于对于次优的单独模型有所不同。在溶解氧的预测中,LSTM模型明显更优于CNN模型;而在叶绿素-a的预测中,CNN模型的精确度高于LSTM模型。但是,像是SVR和DT这样的传统模型,它们无论在溶解氧还是叶绿素-a的预测表现都不如深度学习模型。
泰勒图
泰勒图(Taylor diagram)是一种用于评估和比较不同模型或方法在模拟气候、天气、水文等时间序列数据时性能的图形工具。它通过三个主要的统计量来综合评价模型的预测技能:相关系数、标准差和偏差。
相关系数用来衡量模型观测值和预测值之间的相关性强度,该点与中心点的连线与相关系数轴线的夹角表示该模型的相关系数(点越接近圆周,相关性越强)
标准差用来衡量模型预测值的变异性或离散程度,在图中圆圈的半径表示预测值标准差和观测值标准差的比值(半径为1意味着模型预测的标准差与观测值完全相同)
偏差用来衡量观测值与预测值之间的平均误差,在图中表示为点与中心点之间的距离(点越接近中心表示偏差越小)
上图的结果中可以明显看出,CNN-LSTM模型具有最小的标准差和偏差,以及最大的相关系数。
箱线图
箱线图是一种标准化的统计图表,用于展示数据分布的五个关键数值:最小值、第一四分位数(Q1)、中位数(Q2)、第三四分位数(Q3),以及最大值。
在箱线图中,最佳模型的箱线图应该具有接近观测值中位数的中位数,较小的箱线长度,以及较少的异常值。
LSTM模型在DO和Chl-a的预测中显示出较好的中位数和较集中的分布,表明其在捕捉时间序列数据中的长期依赖关系方面表现良好
CNN模型显示出较大的箱子或须,可能表明预测值的变异性较大,表明它在特征提取方面的优势。
CNN-LSTM模型显示出最佳的中位数、最集中的分布和最少的异常值,表明既有CNN的特征提取能力,又有LSTM的时间预测能力。
蜘蛛图
蜘蛛图(Spider Plot),也称为雷达图或极坐标图,是一种用于展示多变量数据的图表。在模型评估中,蜘蛛图可以直观地展示不同模型在多个性能指标上的表现。
下述结果图a表示不同模型的均方根误差RRMSE,图b表示不同模型的Nash-Sutcliffe效率系数:
在蜘蛛图上,表现最佳的模型通常会形成一个更接近理想状态(图的边缘)的多边形,也就是正多边形,这就意味着该模型在所有指标上都表现良好。可以明显的看出CNN-LSTM模型的均方根误差最小,Nash-Sutcliffe效率系数CNN-LSTM模型接近1,表示模型预测与观测值基本一致,即模型预测非常准确。
二、LSTM
1、基本结构
长短期记忆网络(LSTM,Long Short-Term Memory)是一种时间循环神经网络,是为了解决RNN存在的长期依赖问题而专门设计出来的,所有的RNN都具有一种重复神经网络模块的链式形式。
LSTM的结构图如下所示:
该结构中一共有三个控制信号,分别是input gate(控制memory cell的开关,只有“开”才会将信息保存至memory中 ) 、forget gate(决定memory cell何时重置清零)、output gate(控制memory cell的开关,只有“开”才会将memory中的信息读取出来)
LSTM的详细计算流程如下图:
字母含义介绍:
输入
“输入”控制信号
“重置”控制信号
“输出”控制信号
输出
memory中的值—— memory中更新后的值
、、、、都是输入经过激活函数计算后的值
2、具体步骤
step1 判断“输入门”是否开启
判断式
如果是零(输入门关闭),那么式子也是零;如果非零(输入门开启),那么式子非零(不为零)
step2 判断“记忆门”是否开启
判断式
如果是零(记忆门关闭),那么式子也是零;如果非零(记忆门开启),那么式子非零(c不为零)
step3 叠加记忆或者重置记忆
将step1和step2的两个式子相加得到该input信息在memory中的存储情况。总的来说,memory当中的取值取决于“输入门“控制 和”记忆门“控制二者。
step4 判断”输出门“是否开启
判断式
如果是零(输出门关闭),那么式子也是零;如果非零(输出门开启),那么式子非零(不为零)
3、举例说明
当{、、} 的输入信息不断变化的时候,输出的分析如下图:
4、原理理解
LSTM是RNN的一种特殊形式 ,其中的memory就可以看作是neural。一般的network当中,neural相当于一个处理input的function;LSTM中,memory也相当于一个function,只不过需要有4个对应的input。如下图:
左图中的一个input只会乘以一个权重就放进neural中,右图中可以明显看出,一个input放进hidden layer当中的neural进行计算时,需要分为4个input,所以推测最初input的值应该是一个4维向量。
然而,现实中的 LSTM会更加的复杂,结构如下图:
每一个的计算都需要:该输入的4个input、上一输入的output、以及memory中存储的值。
一般LSTM不止一层,会出现多层叠加的情况,如下:
总结
本研究聚焦于希腊小普雷斯帕湖水质变量预测,开发了 LSTM、CNN 和混合 CNN - LSTM 深度学习模型及 SVR、DT 传统机器学习模型,经过实际案例得出混合 CNN - LSTM 模型在预测 DO 和 Chl - a 浓度上表现最佳,且深度学习模型整体优于传统模型,为水质监测提供了更优方法与思路。 进一步加深对与LSTM模型的理论学习和案例实践,并且学习了各种模型性能可视化评估(比如泰勒图、雷达图等)。