会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 渔场 / 一种基于LSTM的渔场预报方法

一种基于LSTM的渔场预报方法

申请号 CN201810455766.7 申请日 2018-05-14 公开(公告)号 CN108665104A 公开(公告)日 2018-10-16
申请人 华际卫星通信有限公司; 发明人 曹亮; 赵强; 张鹏;
摘要 一种基于LSTM的渔场预报方法,包括生成预测模型和预报未来时段渔场信息两部分,该生成预测模型包括:1)对设定经纬度范围内的历史捕捞数据和海洋环境数据进行数据匹配,形成历史渔场数据,并对其进行归一化处理;2)利用归一化的历史渔场数据训练LSTM模型,时间步长为1天,输入维度为5,获得基于LSTM的渔场预报模型;该预报未来时段渔场信息包括:将归一化的当日渔场数据输入渔场预报模型,设置预测步数为1,输出未来一天的预测结果,输出维度为5,对输出结果进行反归一化处理得到渔场预报。本发明能够挖掘数据之间的长短时间依赖关系,更符合鱼类在渔场中存在洄游等长周期性活动的规律,可取得更好的预测效果。
权利要求

1.一种基于LSTM的渔场预报方法,其特征在于,包括步骤A:生成预测模型,以及步骤B:预报未来时段渔场信息;

所述的步骤A的方法包括:

步骤A1、提取海洋环境数据:利用全球现有的遥感卫星数据,反演出海洋环境数据;该数据包括:海洋表面温度SST、海表面高度SSH、海表面风场SSW和海表面叶绿素含量CHL,精度为0.25°*0.25°、每天;

步骤A2、提取捕捞数据:利用已有捕捞日志,收集作业经纬度、作业时间、捕捞量(重量或尾数)、作业单位数量(作业时间或下网次数或钩数)信息;以0.25°*0.25°为单元格,将捕捞数据网格化;作业时间单位为天,按作业时间先后进行排序,第一次作业的自然天设为1,下一自然天为2,以此类推,按照自然天顺序逐次加1,生成时间列;计算单位捕捞努力量渔获量CPUE(catch per unit effort),其公式如式(1)所示:CUPE=C/E    (1)

其中C是捕捞量,E是作业单位数量;

步骤A3、对海洋环境数据和捕捞数据进行数据匹配,获得历史渔场数据:对历史渔场数据进行归一化处理,将时间列和归一化的SST、SSH、SSW、CHL、CPUE作为LSTM模型的输入数据,输入维度为5;

步骤A4、搭建并训练LSTM模型,通过不断调整参数,择优选取获得基于LSTM的渔场预报模型;

所述的步骤B的方法包括:

步骤B1、将当日的渔场数据采用和步骤A3中一致的归一化方法进行处理,将当日的时间列和归一化的SST、SSH、SSW、CHL、CPUE输入渔场预报模型,设置预测步数为1,得到未来一天的输出结果,输出维度为5;

步骤B2、对输出结果进行反归一化处理,反归一化方法和步骤A3中归一化方法相对应,处理得到未来一天的渔场预报,预报内容包括未来一天的SST、SSH、SSW、CHL和CPUE。

2.根据权利要求1所述的方法,其特征在于,所述步骤A3进一步包括以下步骤:步骤A31:将渔场中0.25°*0.25°范围内的海洋环境数据和0.25°*0.25°范围内的捕捞数据进行数据匹配,得到历史渔场数据;

步骤A32:提取0.25°*0.25°范围内SST、SSH、SSW、CHL、CPUE的最大值和最小值;

步骤A33:使用min-max标准化方法对SST、SSH、SSW、CHL、CPUE进行归一化处理,使数据映射到[0,1]区间。

3.根据权利要求1所述的方法,其特征在于,所述步骤A4进一步包括:步骤A41:在linux系统下搭建LSTM模型;

步骤A42:设置LSTM的输入维度和输入数据的时间步长;

步骤A43:设置LSTM输入数据读取批次规模(batch size)和窗口长度(window size);

步骤A44:设置LSTM模型优化器和学习速率;

步骤A45:设置隐层神经节点数;

步骤A46:设置模型迭代次数;

步骤A47:不断调整参数,以模型损失(loss)查看模型收敛程度,择优选取高收敛度参数,形成基于LSTM的渔场预测模型。

说明书全文

一种基于LSTM的渔场预报方法

技术领域:

[0001] 本发明涉及渔场预报领域,特别是涉及一种基于LSTM递归神经网络模型的渔场预报方法。背景技术:
[0002] 鱼类在海洋中的分布是由其自身生物学特性和外界环境条件共同决定的,影响因子包括鱼类集群和洄游习性,外界环境条件及各类突发性、阶段性或长期性的海洋环境事件。鱼类的分布是多因子共同作用的结果,是一个长周期、规律性事件。渔场预报技术正是利用技术手段,寻找鱼类变动规律与海洋环境因子之间的内在联系,并由此对未来时段海洋渔情渔况进行预报,进而指导渔船捕捞作业。
[0003] 目前渔场预报技术通常使用单位捕捞努力量渔获量CPUE(catch per unit effort)代表渔业资源密度,反映鱼类在海洋中的分布。常使用的影响因子包括经纬度、作业时间、温度、盐度、风力风向、洋流流速流向、叶绿素含量、厄尔尼诺系数等。综合考虑技术参数的获取难易程度及重要性,本发明采用海表层温度、海表面高度、海表面风场、海表面叶绿素含量这四个海洋环境要素,学习挖掘单位捕捞努力量渔获量和这四个海洋环境要素之间的内在联系,并由此对未来时段进行渔场预报。
[0004] 现有的渔场预报分析方法包括频度分析、栖息地指数等,多存在预测精度较低的问题。LSTM(Long-Short Term Memory:长短期记忆)递归神经网络近几年在许多领域均取得了重大突破,该神经网络可以学习时间序列数据之间的长短依赖关系,对于输入数据自主学习历史数据对预测数据的贡献,特别是该神经网络克服了其他神经网络无法长时间学习的缺点,更适合挖掘鱼类在渔场中存在洄游等长周期性的活动规律。发明内容:
[0005] 本发明的目的就是提供一种基于LSTM的渔场预报方法,以解决现有技术存在的预测精度较低的问题。
[0006] 本发明的技术方案是:
[0007] 一种基于LSTM的渔场预报方法,其特征在于,包括步骤A:生成预测模型,以及步骤B:预报未来时段渔场信息;
[0008] 所述的步骤A的方法包括:
[0009] 步骤A1、提取海洋环境数据:利用全球现有的遥感卫星数据,反演出海洋环境数据;该数据包括:海洋表面温度SST、海表面高度SSH、海表面风场SSW和海表面叶绿素含量CHL,精度为0.25°*0.25°、每天;
[0010] 步骤A2、提取捕捞数据:利用已有捕捞日志,收集作业经纬度、作业时间、捕捞量(重量或尾数)、作业单位数量(作业时间或下网次数或钩数)信息;以0.25°*0.25°为单元格,将捕捞数据网格化;作业时间单位为天,按作业时间先后进行排序,第一次作业的自然天设为1,下一自然天为2,以此类推,按照自然天顺序逐次加1,生成时间列;计算单位捕捞努力量渔获量CPUE(catch per unit effort),其公式如式(1)所示:
[0011] CUPE=C/E   (1)
[0012] 其中C是捕捞量,E是作业单位数量;
[0013] 步骤A3、对海洋环境数据和捕捞数据进行数据匹配,获得历史渔场数据:对历史渔场数据进行归一化处理,将时间列和归一化的SST、SSH、SSW、CHL、CPUE作为LSTM模型的输入数据,输入维度为5;
[0014] 步骤A4、搭建并训练LSTM模型,通过不断调整参数,择优选取获得基于LSTM的渔场预报模型;
[0015] 所述的步骤B的具体方法包括:
[0016] 步骤B1、将当日的渔场数据采用和步骤A3中一致的归一化方法进行处理,将当日的时间列和归一化的SST、SSH、SSW、CHL、CPUE输入渔场预报模型,设置预测步数为1,得到未来一天的输出结果,输出维度为5;
[0017] 步骤B2、对输出结果进行反归一化处理,反归一化方法和步骤A3中归一化方法相对应,处理得到未来一天的渔场预报,预报内容包括未来一天的SST、SSH、SSW、CHL和CPUE。
[0018] 所述步骤A3进一步包括以下步骤:
[0019] 步骤A31:将渔场中0.25°*0.25°范围内的海洋环境数据和0.25°*0.25°范围内的捕捞数据进行数据匹配,得到历史渔场数据;
[0020] 步骤A32:提取0.25°*0.25°范围内SST、SSH、SSW、CHL、CPUE的最大值和最小值;
[0021] 步骤A33:使用min-max标准化方法对SST、SSH、SSW、CHL、CPUE进行归一化处理,使数据映射到[0,1]区间。
[0022] 所述步骤A4进一步包括:
[0023] 步骤A41:在linux系统下搭建LSTM模型;
[0024] 步骤A42:设置LSTM的输入维度和输入数据的时间步长;
[0025] 步骤A43:设置LSTM输入数据读取批次规模(batch size)和窗口长度(window size);
[0026] 步骤A44:设置LSTM模型优化器和学习速率;
[0027] 步骤A45:设置隐层神经节点数;
[0028] 步骤A46:设置模型迭代次数;
[0029] 步骤A47:不断调整参数,以模型损失(loss)查看模型收敛程度,择优选取高收敛度参数,形成基于LSTM的渔场预测模型。
[0030] 本发明的有益效果是:基于时间序列挖掘捕捞数据和海洋环境数据之间的长短时间关系,学习二者之间的变动规律,相比其他渔场预报方法模拟效果更好、预报精度更高。附图说明:
[0031] 图1是本发明渔场预报流程图;
[0032] 图2是LSTM递归神经网络结构图,其中xt、ht、ct分别代表t时刻的输入、输出和单元状态;
[0033] 图3是LSTM递归神经网络单元状态控制图,其中ct、 ht分别代表t时刻的单元状态、输入单元状态、输出。具体实施方式:
[0034] 下面将结合附图和具体举例对本发明加以详细说明,应指出的是,以下所描述的例子仅为更方便理解本发明,对发明本身不起任何限定作用。
[0035] 如图1所示,本发明给出的一种基于LSTM的渔场预报方法,该方法包括生成预测模型和预报未来时段渔场信息两部分。
[0036] 第一部分、生成预测模型:
[0037] 步骤A1:提取海洋环境数据。利用全球现有的遥感卫星数据,反演出海洋环境参量值,提取的海洋环境数据包括:海洋表面温度SST、海表面高度SSH、海表面风场SSW、海表面叶绿素含量CHL。提取海洋环境数据的精度为:0.25°*0.25°(经度×纬度)/天。
[0038] 步骤A2:提取捕捞数据。利用已有捕捞日志,收集作业经纬度、作业时间、捕捞量(重量或数量)、作业单位数量(作业时间或下网次数或钩数)信息。以0.25°*0.25°为单元格,将数据网格化。作业时间单位为天,按照网格内作业时间的先后顺序排序,第一次作业的自然天设为1,下一自然天为2,以此类推,按照自然天顺序逐次加1。计算单位捕捞努力量渔获量CPUE(catch per unit effort),如公式(1)所示:
[0039] CUPE=C/E   (1)
[0040] 其中C是捕捞量,E是作业单位数量。
[0041] 提取的捕捞数据包括:作业时间(天)、时间列和对应的CPUE。
[0042] 步骤A3:对海洋环境数据和捕捞数据按照时间(天)利用编程语言进行数据匹配,得到历史渔场数据,包括:时间(天)、时间列、SST、SSH、SSW、CHL、CPUE。对历史渔场数据中的SST、SSH、SSW、CHL、CPUE归一化处理,将时间列和归一化的SST、SSH、SSW、CHL、CPUE作为LSTM的输入数据,输入维度为5。
[0043] 步骤A4:搭建并训练LSTM,通过不断调整参数,以模型收敛度为标准择优选取获得基于LSTM的预测模型。
[0044] 第二部分、预报未来时段渔场信息:
[0045] 步骤B1:将当日渔场数据(LSTM模型可利用当前t时刻数据预测未来t+1时刻数据。历史数据主要用来训练模型,是一段时间序列的数据,当日数据则是用来预测未来,是当前这一时刻的数据。通常当日数据包含在历史数据内,但不包含在内时也可预测)采用与步骤A3一致的归一化方法进行处理,将当日的时间列和归一化的SST、SSH、SSW、CHL、CPUE输入渔场预报模型(即步骤A4中的“预测模型”),设置预测步数为1(天),得到未来一天的输出结果,输出维度为5。
[0046] 步骤B2:对输出结果进行反归一化处理得到未来一天的渔场预报,包括未来一天的SST、SSH、SSW、CHL、CPUE。
[0047] 所述步骤A3进一步包括以下步骤:
[0048] 步骤A31:将渔场中0.25°*0.25°范围内的海洋环境数据和0.25°*0.25°范围内的捕捞数据进行数据匹配,得到历史渔场数据。
[0049] 步骤A32:提取0.25°*0.25°范围内的SST、SSH、SSW、CHL、CPUE的最大值和最小值。
[0050] 步骤A33:使用min-max标准化办法对SST、SSH、SSW、CHL、CPUE进行归一化处理,使数据映射到[0,1]区间。归一化公式为:
[0051] x′=(x-xmin)/(xmax-xmin)   (2)
[0052] 其中,x′为x的归一化值,xmax为x数组中的最大值,xmin为x数组中最小值。
[0053] 所述步骤A4进一步包括以下步骤:
[0054] 步骤A41:在linux系统下搭建LSTM模型;
[0055] 步骤A42:设置LSTM的输入维度和输入数据的时间步长。本发明中输入维度为5,时间步长为1(天);
[0056] 步骤A43:设置LSTM输入数据读取批次规模和窗口长度。批次规模和窗口大小的设定主要是为平衡计算机本身内存大小和运算效率,与计算机本身运算性能有关;
[0057] 步骤A44:设置LSTM模型优化器和学习速率。本方法采用Adam算法优化器,学习速率为0.001;
[0058] 步骤A45:设置隐层神经节点数;
[0059] 步骤A46:设置模型迭代次数;
[0060] 步骤A47:在同一迭代次数下调整隐层神经节点数、在同一隐层神经节点数下调整迭代次数,以模型整体损失和迭代损失查看模型收敛程度,择优选取高收敛度参数,形成基于LSTM的渔场预测模型。
[0061] LSTM递归神经网络单元状态控制如图2所示。LSTM的核心在于控制单元状态c,控制包括遗忘门ft、输入门it、输出门ot。当前t时刻,遗忘门ft负责控制上一时刻的ct-1有多少保存到当前时刻的ct;输入门it负责控制当前时刻的即时状态 有多少输入到当前单元状态ct;输出门ot负责控制当前单元状态ct有多少作为当前时刻的隐层输出ht。其计算公式分别为:
[0062] ft=σ(wf·[xt,ht-1]+bf)   (3)
[0063] it=σ(wi·[xt,ht-1]+bi)   (4)
[0064] ot=σ(wo·[xt,ht-1]+bo)   (5)
[0065] 其中,wf、wi、wo分别是遗忘门、输入门和输出门的权重矩阵,bf、bi、bo分别是遗忘门、输入门和输出门的偏置项,σ为sigmoid函数
[0066] LSTM递归神经网络结构如图3所示。LSTM的输入包括:上一时刻的单元状态ct-1、上一时刻LSTM隐层输出值ht-1、当前t时刻网络的输入值xt;LSTM的输出包括:当前时刻的单元状态ct和当前时刻LSTM的隐层输出值ht。
[0067] 其中,当前输入单元状态 由当前t时刻网络的输入xt、上一时刻LSTM隐层输出值ht-1共同决定,其计算公式为:
[0068]
[0069] 其中,wc是输入单元状态的权重矩阵,bc是输入单元状态的偏置项,tanh为双曲正切函数
[0070] 当前单元状态ct由遗忘门ft、上一时刻单元状态ct-1、输入门it和当前输入的单元状态 共同决定,其计算公式为:
[0071]
[0072] 其中,符号⊙表示按元素乘。
[0073] 当前时刻LSTM的隐层输出值ht由输出门ot与当前单元状态ct共同决定,其计算公式为:
[0074] ht=ot⊙tanh(ct)   (8)
[0075] 而LSTM神经网络输出 =是由LSTM的隐层输出值ht和输出层的权重矩阵w和输出层的偏置项b共同决定的,其计算公式为:
[0076]
[0077] 本发明中采用均方误差(MSE)作为损失函数(loss),其计算公式为:
[0078]
[0079] 其中,N为样本数,x为观察值,x′为预测值。
[0080] 下面将举例说明该基于LSTM的渔场预报方法效果。南太平洋长鳍金枪鱼渔场位于30.00°S-0.00°S,135.00°W-150.00°E,目标鱼种为长鳍金枪鱼,捕捞方式包括延绳钓、围网、竿钓等,其中以延绳钓为主。以中心点为15.125°S,150.125°W的0.25°*0.25°范围内南太平洋长鳍金枪鱼渔场为例,检验该预报方法效果,其中捕捞数据采用的是长鳍金枪鱼延绳钓捕捞数据。
[0081] 提取上述范围内的环境数据和捕捞数据进行数据匹配,共获得4018天数据,其中匹配成功的可用数据共966天,作业时间为2004-01-01至2014-12-30,可用数据如表1所示。其中CHL、SSH、SST、SSW的单位分别为g/cm3、mm、℃、m/s,cpue单位为no./100hooks,即每百钩所捕获尾数。
[0082] 表1 15.125°S,150.125°W历史渔场数据
[0083]序号 作业时间 时间列 Chl sst Wind ssh cpue
1 20040101 1 0.070004 28.95 7.80 0.0885 0.9564
2 20040102 2 0.059802 28.80 7.80 0.0853 0.8114
3 20040103 3 0.071810 28.65 7.80 0.0825 0.6851
4 20040106 6 0.061733 29.55 4.00 0.0682 0.4866
5 20040108 8 0.056511 29.10 5.00 0.0542 0.5744
6 20040109 9 0.058978 29.10 5.00 0.0470 0.7323
7 20040111 11 0.062453 29.10 6.60 0.0301 0.6909
… … … … … … … …
966 20141231 4017 0.088356 29.25 5.80 0.0305 1.9557
[0084] 对SST、SSH、SSW、CHL、CPUE进行归一化处理。将时间列和归一化值作为LSTM模型的输入,输入数据如表2所示。
[0085] 表2 LSTM模型输入数据
[0086]时间列 归一化chl 归一化sst 归一化wind 归一化ssh 归一化cpue
1 0.107369 0.659091 0.555556 0.538479 0.261758
2 0.082636 0.636363 0.555556 0.531017 0.206017
3 0.111746 0.613636 0.555556 0.524487 0.157465
6 0.087317 0.750000 0.253968 0.491138 0.081158
8 0.074659 0.681818 0.333333 0.458489 0.114910
9 0.080638 0.681818 0.333333 0.441698 0.175610
11 0.089063 0.681818 0.460317 0.402285 0.159695
… … … … … …
4017 0.151859 0.704545 0.396825 0.403218 0.645905
[0087] 在本次训练中,设定批次规模为20,窗口大小为30,在迭代500次情况下,不断调整隐层节点数,以模型整体损失作为评价LSTM渔场预报模型收敛程度的标准,结果如表3所示。
[0088] 表3不同隐藏层节点数时LSTM模型整体损失
[0089]
[0090]
[0091] 由表3可以看出,在迭代500次情况下,当隐层节点数超过780时,LSTM模型收敛度已趋于稳定。其中隐藏层节点数为800时整体损失最低,为0.107292。
[0092] 设置隐层节点数为800,查看不同迭代次数下LSTM模型收敛情况,以该次数损失(非整体损失)作为评价LSTM渔场预报模型预测精度的标准,结果如表4所示。
[0093] 表4隐层节点数为800时不同迭代次数损失
[0094]迭代次数 迭代损失
501 0.739174
801 0.625705
1001 0.502934
1201 0.458455
1401 0.469193
1501 0.459993
1601 0.361438
1701 0.415512
1801 0.521072
1901 0.357389
2001 0.341803
2101 0.343781
2201 0.399820
2301 0.384575
2401 0.370565
2501 0.407862
[0095] 由表4可以看出,在隐藏层节点数为800情况下,当迭代次数大于1601次以上时每一步loss已趋于稳定。其中第2001步时迭代损失最小,为0.341803。
[0096] 值得注意的是,LSTM模型每次训练时其收敛方向是不一致的,导致每次运行损失结果都有变化,但差异不大,整体收敛方向是一致的。
[0097] 将LSTM隐藏层神经节点数设为800、迭代2000次进行训练,设置预测步数为1,即预测未来一天的渔场数据,结果显示模型整体损失为0.026013,cpue的标准误差RMSE为0.005303,cpue模拟精度99.1013%。模型输出结果为[0.169780,0.681543,0.417068,
0.393470,0.613571],反归一化处理后得到未来一天即2014年12月31日的渔场预报是:海表面叶绿素含量、海洋表面温度、海表面风场、海表面高度、单位捕捞努力量渔获量预测值
3
分别为0.095748g/cm,29.10℃,6.06m/s,0.0263mm,1.8716no./100hooks。
[0098] 需要注意的是,当预测步数大于等于2(当前时刻t)时,第t+2时刻的预测值是在第t+1时刻预测值的基础上进行训练预测的,但第t+1时刻尚未发生缺乏真实值校准,因此预测步数越长,预测误差越大。本发明中的渔场预报模型只对未来一天进行渔场预报。
[0099] 以上所述,仅为本发明的具体实施方式进行举例说明,但本发明的保护范围并不局限于此,基于LSTM的任何海洋地理位置渔场预报,都应涵盖在本发明的范围之内。