发明名称 一种基于优化的支持向量回归参数的船舶航迹预测方法
摘要 本发明提供了一种基于优化的支持向量回归参数的船舶航迹预测方法,该方法首先给定训练集,选择核函数类型,并利用学集进行模型训练,得到预测函数,判读预测函数的均方误差是否达到精度要求;若达到则利用该函数预测船舶航迹,若没有,生成参数搜索路径图,利用智能水滴算法搜索最优参数,直至达到精度要求。在搜索最优参数时,智能水滴在寻优过程中具有正反馈机制,搜索过程迅速有效;在每代水滴搜索结束后,路径含沙量都会根据当代最优水滴含沙量情况改变,避免早熟现象出现,搜索能力较强,使得最终预测函数能快速得到,且可实现船舶航迹的快速有效地预测。
申请公布号 CN102819663B 申请公布日期 2015.04.08
申请号 CN201210246584.1 申请日期 2012.07.17
申请人 哈尔滨工程大学 发明人 张振兴;李旺;赵玉新;李刚;沈志峰
分类号 G06F19/00(2011.01)I 主分类号 G06F19/00(2011.01)I
代理机构 北京永创新实专利事务所 11121 代理人 周长琪
主权项 一种基于优化的支持向量回归参数的船舶航迹预测方法,其特征在于,包括如下步骤:步骤1:输入训练集,对训练集进行预处理,选定核函数类型,具体是:(1.1)输入训练集:<img file="FDA0000656128640000012.GIF" wi="595" he="83" />i=1,…,n;其中,n为样本数量,x<sub>i</sub>为t<sub>i</sub>时刻的输入样本,包括t<sub>i</sub>时刻的航向c<sub>i</sub>和航速v<sub>i</sub>;y<sub>i</sub>为t<sub>i</sub>时刻的输出样本,包括t<sub>i+1</sub>时刻与t<sub>i</sub>时刻的经度差<img file="FDA0000656128640000013.GIF" wi="61" he="61" />和纬度差λ<sub>i</sub>;(1.2)对输入的训练集进行预处理:对训练集进行归一化处理,并将归一化处理的训练集分为学习集和测试集,学习集的样本数量为k,测试集的样本数量为n‑k;(1.3)选定最小二乘支持向量回归(LSSVR)的核函数为高斯径向基核函数;步骤2:根据当前全局最优参数组合T<sup>TB</sup>中的参数,利用学习集进行模型训练,得到预测函数,并利用测试集计算预测函数的均方误差;所述的当前全局最优参数组合T<sup>TB</sup>中存储LSSVR惩罚因子C以及高斯径向基函数的宽度σ的最优值,初始随机设定最优值;步骤3:判断当前全局最优参数组合T<sup>TB</sup>对应的预测函数的均方误差是否满足用户设定的精度要求,若满足要求则输出当前预测函数,转步骤6执行;若不满足,执行步骤4;步骤4:将惩罚因子和高斯径向基函数的宽度作为待优化变量,生成参数调整路径图;设惩罚因子C的有效位数为N<sub>1</sub>位,高斯径向基函数的宽度σ的有效位数为N<sub>2</sub>位,设参数N<sub>IB</sub>=N<sub>1</sub>+N<sub>2</sub>,则参数调整路径图中垂直于X轴的线段有N<sub>IB</sub>个,标记为<img file="FDA0000656128640000014.GIF" wi="270" he="96" />各线段上均具有对应数值0~9的十个节点;步骤5:利用智能水滴算法进行参数调整,具体方法如下:(5.1)初始化静态参数:水滴数量N和路径每条边初始含沙量InitGSoil;初始化动态参数:每滴水滴初始含沙量InitDSoil、水滴初始速度InitVel和迭代代数r,初始迭代代数r=0;(5.2)初始将所有水滴都置于参数调整路径图中L<sub>1</sub>上数值为0的节点处,然后取水滴h进入(5.3)执行,同时更新迭代代数r=r+1;h表示第h个水滴,初始h=1;(5.3)设水滴h当前处于i位置,i位置为参数调整路径图中L<sub>p</sub>上的某个节点,则参数调整路径图中L<sub>p+1</sub>上的任意一个节点均为水滴h前进路径的下一个可能的位置,确定水滴h选择L<sub>p+1</sub>上的各节点的概率,将最小概率对应的L<sub>p+1</sub>上的节点作为水滴h当前前进路径的下一个位置j;若最小概率对应的L<sub>p+1</sub>上的节点有多个,则随机选取其中的一个节点作为水滴h当前前进路径的下一个位置j;(5.4)水滴h由i位置到达j位置后,更新水滴h的速度:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msup><mi>vel</mi><mi>IWD</mi></msup><mrow><mo>(</mo><mi>t</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><msup><mi>vel</mi><mi>IWD</mi></msup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mfrac><msub><mi>a</mi><mi>v</mi></msub><mrow><msub><mi>b</mi><mi>v</mi></msub><mo>+</mo><msub><mi>c</mi><mi>v</mi></msub><mo>&CenterDot;</mo><msup><mi>soil</mi><mn>2</mn></msup><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow></mrow></mfrac><mo>;</mo></mrow>]]></math><img file="FDA0000656128640000011.GIF" wi="895" he="132" /></maths>其中,a<sub>v</sub>、b<sub>v</sub>和c<sub>v</sub>为速度调节参数;vel<sup>IWD</sup>(t+1)为t+1时刻水滴h的速度,vel<sup>IWD</sup>(t)为t时刻水滴h的速度;初始的水滴h的速度为水滴初始速度InitVel;soil(i,j)表示i位置与j位置间的路径含沙量,初始值为路径每条边初始含沙量InitGSoil;(5.5)水滴h由i位置到达j位置后,确定水滴h所经过的路径含沙量增量Δsoil(i,j):<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>&Delta;soil</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><mfrac><msub><mi>a</mi><mi>s</mi></msub><mrow><msub><mi>b</mi><mi>s</mi></msub><mo>+</mo><msub><mi>c</mi><mi>s</mi></msub><mo>&CenterDot;</mo><msup><mi>time</mi><mn>2</mn></msup><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>;</mo><msup><mi>vel</mi><mi>IWD</mi></msup><mrow><mo>(</mo><mi>t</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>)</mo></mrow></mrow></mfrac><mo>;</mo></mrow>]]></math><img file="FDA0000656128640000021.GIF" wi="905" he="133" /></maths>其中,a<sub>s</sub>、b<sub>s</sub>和c<sub>s</sub>为路径含沙量调节参数,函数<img file="FDA0000656128640000022.GIF" wi="788" he="146" />HUD(j)为反向启发式函数,<img file="FDA0000656128640000023.GIF" wi="541" he="155" />y<sub>ij</sub>表示当前j位置对应的线段L<sub>p+1</sub>上的节点映射到Y轴的纵坐标值,y<sub>ij</sub><sup>*</sup>表示当前全局最优参数组合T<sup>TB</sup>中最优值对应的L<sub>p+1</sub>上的节点投影到Y轴的纵坐标值;(5.6)水滴h由i位置到达j位置后,更新i位置与j位置间的路径含沙量:soil(i,j)=(1‑ρ<sub>n</sub>)·soil(i,j)‑ρ<sub>n</sub>·Δsoil(i,j);其中ρ<sub>n</sub>为路径含沙量更新参数;(5.7)水滴h由i位置到达j位置后,更新水滴h的含沙量:soil<sup>IWD</sup>=soil<sup>IWD</sup>+Δsoil(i,j);其中,soil<sup>IWD</sup>表示水滴的含沙量,初始值为InitDSoil;(5.8)判断水滴h是否在参数调整路径图上由L<sub>1</sub>搜索至<img file="FDA0000656128640000027.GIF" wi="85" he="75" />,若没有,则转(5.3)执行;若是,则根据搜索结果得到相应的参数C以及σ,然后判断是否所有的水滴都完成了搜索,若是,执行(5.9),否则,h=h+1,然后转(5.3)执行;(5.9)针对每个水滴搜索到的参数C和σ,分别利用学习集进行模型训练,得到相应的预测函数,对各预测函数利用测试集计算预测函数的均方误差,并将其中均方误差最小的参数C和σ保存到局部最优参数组合T<sup>IB</sup>中,局部最优参数组合T<sup>IB</sup>中的参数值所对应的水滴为第r代最优水滴;(5.10)当前第r次迭代结束后,更新全局路径含沙量,作为下一次迭代的初始路径含沙量:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>soil</mi><mrow><mo>(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><mn>1</mn><mo>+</mo><msub><mi>&rho;</mi><mi>IWD</mi></msub><mo>)</mo></mrow><mo>&CenterDot;</mo><mi>soil</mi><mrow><mo>(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo>)</mo></mrow><mo>-</mo><msub><mi>&rho;</mi><mi>IWD</mi></msub><mo>&CenterDot;</mo><mfrac><mn>1</mn><mrow><msub><mi>N</mi><mi>IB</mi></msub><mo>-</mo><mn>1</mn></mrow></mfrac><mo>&CenterDot;</mo><msubsup><mi>soil</mi><mi>IB</mi><mi>IWD</mi></msubsup><mo>,</mo><mo>&ForAll;</mo><mrow><mo>(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo>)</mo></mrow><mo>&Element;</mo><msup><mi>T</mi><mi>IB</mi></msup><mo>;</mo></mrow>]]></math><img file="FDA0000656128640000024.GIF" wi="1415" he="140" /></maths>其中,soil(a,b)表示a位置与b位置间的路径含沙量,<img file="FDA0000656128640000025.GIF" wi="152" he="81" />为第r代最优水滴的含沙量,ρ<sub>IWD</sub>为含沙量调节参数;(5.11)判断局部最优参数组合T<sup>IB</sup>对应的预测函数的均方误差,是否小于全局最优参数组合T<sup>TB</sup>对应的预测函数的均方误差,若是,则更新当前全局最优参数组合T<sup>TB</sup>=T<sup>IB</sup>,然后转步骤3执行;若否,更新迭代代数r=r+1,直接转步骤(5.3)执行;步骤6、依据所得到的预测函数,预测某时刻航向及航速值对应的当前经度差及纬度差。
地址 150001 黑龙江省哈尔滨市南岗区南通大街145号