首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于物理指导的深度学习三维海洋温度预报方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:中国人民解放军国防科技大学

摘要:本发明属于计算机和气象、海洋的交叉领域,具体涉及一种基于物理指导的深度学习三维海洋温度预报方法,适用于三维海洋温度的准确预报;该方法构建了基于物理指导的PG_ConvLSTM模型,该模型通过在深度学习损失函数中引入海水状态方程与密度单调递增性这些物理信息,实现了基于物理信息指导的三维海洋温度智能预报,加入物理信息的模型预报结果显著优于未加物理信息的基准模型;同时,模型在训练过程遵循一定的物理信息,增强了模型的可解释性与物理一致性。

主权项:1.一种基于物理指导的深度学习三维海洋温度预报方法,其特征在于,该方法包括如下步骤:步骤S1:获取海洋表面的温度和盐度原始数据;步骤S2:对原始数据进行预处理,构建模型所需数据集,具体过程如下:步骤S2.1分别将海洋温度与盐度数据以月为单位进行拼接,同时根据经纬度和深度选取待研究区域,并做缺失值处理;步骤S2.2选定历史时间步长与预测时间步长:当选取数据的时间分辨率为月平均时,由于海洋温度与盐度变化具有年际与季节性变化趋势,因此当预测未来一年内的温度变化趋势,历史时间步长设置为12的倍数,预测时间步长为1,2,…,12;然后通过滑动窗口方式按照选定的历史时间步长将经S2.1处理后的温盐数据制作成输入数据集与对应标签数据集,和的形状分别为samples,n_seq_in,depth,rows,cols和samples,n_seq_out,depth,rows,cols,其中,samples为样本数,n_seq_in为输入历史时间步长,n_seq_out为输出预测时间步长;depth,rows和cols分别代表数据的深度,纬度和经度;步骤S2.3将步骤S2.2得到的输入数据集和标签数据集分别拆分成训练集、测试集和验证集;步骤S2.4将经步骤S2.3拆分的训练集、测试集和验证集采用离差标准化,使其结果归一化到[0,1]之间,离差标准化公式为: ;其中,表示归一化后的新样本,表示原始样本,表示样本数据的最大值,表示样本数据的最小值;步骤S3:设计物理指导的损失函数设计物理指导的损失函数,通过将相关物理信息引入损失函数以指导模型训练及优化: 其中,为总体损失,为经验损失,为物理损失,为正则化项,为真值标签,为模型预测值,和为对应项的超参数;经验损失计算公式为: 其中,和分别为模型在时刻针对第个深度层数据的预测值与真实值,;物理损失计算公式为: 其中是上下层密度差,计算公式为: 其中,与分别代表时刻第个深度层和第个深度层的密度;为使得模型遵循上层海水密度单调递增性这一物理规律,且在模型学习过程中充分考虑上下层温度、盐度之间的空间关系,在损失函数中计算上下层海水密度差,统计上下密度差值大于0的总数,并通过RELU函数激活得到一个累加值,最后通过模型训练不断最小化该值,从而达到物理规律引入目的;步骤S4:构建物理指导的PG_ConvLSTM深度学习模型,充分捕捉海洋温盐数据的时空特性;同时引入步骤S3设计的物理指导的损失函数指导模型训练与参数优化;具体如下:步骤S4.1搭建深度学习环境,在服务器上安装深度学习库Keras,以TensorFlow框架作为后端;步骤S4.2基于Keras构建物理指导的PG_ConvLSTM模型,包括3个ConvLSTM2D层,3个Dropout层和一个Conv3D层:模型第一层为一个ConvLSTM2D层,输入为经过S2预处理得到的数据,训练阶段,其输入数据形状为train_samples,n_seq_in,rows,cols,channels;该层的参数设置为:ConvLSTM2Dfilters=10,kernel_size=3,3,activation='relu',padding='same',input_shape=None,rows,cols,channels,return_sequences=True,其中,filters为卷积核的数量,kernel_size为卷积核的大小,设为3,3,activation='relu'代表该层使用“relu”作为激活函数,padding='same'代表数据填充方式为“same”,其作用是保证不丢弃原数据信息,将填充方式设置为“same”,均匀地将值填充到输入的左右或上下,使输出具有与输入相同的高度宽度尺寸,return_sequences=True代表该层将各个时间步的隐藏状态都输出到下一层;模型第二层为一个Dropout层,比率设为0.3,用于防止过拟合;模型的第三层是一个ConvLSTM2D层,该层的参数设置为:ConvLSTM2Dfilters=10,kernel_size=3,3,activation='relu',padding='same',return_sequences=True,与第一层类似,不同的是其接收的输入为上一层的输出,且不需要再通过input_shape参数指明输入大小;模型第四层为一个Dropout层,比率设为0.3;模型的第五层是一个ConvLSTM2D层,该层的参数设置与第三层一致;模型第六层为一个Dropout层,比率设为0.3;模型的最后一层为一个Conv3D层,其参数设置为Conv3Dfilters=27,kernel_size=3,3,3,activation='sigmoid',padding='same',data_format='channels_last',其中,filters为卷积核的数量,kernel_size为卷积核的大小,设为3,3,3,activation='sigmoid'代表该层使用“sigmoid”作为激活函数,padding='same'代表数据填充方式为“same”,data_format='channels_last'代表原始数据通道在rows和cols之后;训练阶段,通过最后一层,模型的输出数据形状为train_samples,n_seq_out,rows,cols,channels;步骤S4.3对S4.2搭建好的模型设置超参数和评价指标,并对模型进行训练;具体如下:S4.3.1超参数是在开始学习过程之前设置的参数,包括学习率learningrate、迭代次数epochs、批量大小batchsize和模型优化器optimizer:模型的学习率learningrate初始设置为0.001,并通过回调列表callbacks调用ReduceLROnPlateau进行动态下降更新;迭代次数epochs和批次大小batch_size分别设置为30和32,模型优化器optimizer设置为Adam,模型评价指标metrics为RMSE,模型的损失函数loss为步骤S3设计的物理指导的损失函数;S4.3.2对于模型训练,首先调用Keras内置的model.compileloss,optimizer,metrics函数来编译PG_ConvLSTM模型,通过最小化S3设计的物理指导的损失函数,迭代更新确定模型的参数最优设置;然后,调用Keras内置的model.fit函数来拟合PG_ConvLSTM模型,以训练得到最优模型;最后,调用Keras内置的model.evaluate函数来评估PG_ConvLSTM模型;步骤S5:利用最终训练好的PG_ConvLSTM模型实现三维海洋温度预报。

全文数据:

权利要求:

百度查询: 中国人民解放军国防科技大学 一种基于物理指导的深度学习三维海洋温度预报方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。