论文部分内容阅读
摘 要:应用BP神经网络建立船舶的耐波性评价模型,通过调用Matlab中的神经网络工具箱来完成评价模型的GUI实现。在GUI设置界面内加入神经网络的输入向量和输出向量,同时设置网络需要的各种参数,可以很直观的查看评价模型的结构,减轻了使用者的认知负担。应用GUI窗口训练评价网络,然后加入测试样本进行仿真测验,整个实现过程操作方便,使船舶耐波性的评价更人性化。
关键词:BP神经网络 船舶耐波性评价 GUI
中图分类号:U675.91 文献标识码:A 文章编号:1674-098X(2012)09(a)-0009-02
人工神经网络是一种新型信息处理体系,其智能化特征与能力使其应用在诸多领域,并且在解决问题方面取得了良好的效果。BP神经网络是基于误差反向传播算法的多层前馈型神经网络,适用于多因素共同作用下的系统安全状态综合评价。在Matlab环境下应用BP神经网络建立的船舶耐波性评价模型,为耐波性评价及指导船舶操纵提供了一种有效的方法。[1]
GUI(Graphical User Interface)是指人机交互图形用户界面设计,用户可以通过选择、激活图形对象,实现某种特定的功能,使操作更人性化,减轻使用者的认知负担[2]。本文通过GUI界面的网络设计,能够实现船舶耐波性评价的BP神经网络模型,从而进行船舶的安全评价,提高船舶耐波性评价效率,能够更方便、更有效的指导船舶操纵。
1 船舶耐波性评价模型的建立
船舶耐波性是指船舶在波浪扰动下,产生各种摇荡运动、砰击、甲板上浪、失速、螺旋桨出水以及波浪弯矩等,仍能维持一定航速在波浪中安全航行的性能。建立船舶耐波性评价模型首先要确定影响船舶安全的耐波性因素,影响船舶航行安全的耐波性因素有横摇、横荡、纵摇、纵荡、升沉、首摇、砰击、失速、暈船率、甲板上浪、甲板淹埋、稳性损失、螺旋桨出水、纵向波浪弯矩、船体某横剖面加速度、横向加速度、操纵性能恶化等。在文献[1]中,作者选取了横摇、纵摇、砰击、升沉、甲板上浪、螺旋桨出水和船首垂向加速度等7个对船舶海上安全航行影响较大的耐波性因素。并且作者以某20000吨级油轮为例,根据油轮自身的结构特点和任务情况,依据专家建议及参考相关文献的结果,在综合考虑了船舶耐波性因素衡准值的选取因素后,分别给出了各耐波性因素的评价指标值和允许概率。
BP神经网络是基于误差反向传播算法的多层前馈型神经网络,应用它来建立船舶的耐波性评价模型需要取得训练样本和测试样本。在文献[1]中作者设计出了30个样本,在这些样本中选择前28个样本为训练样本,将第29、30个样本用来作为网络的测试样本,用来测试船舶耐波性网络模型的性能。一个样本的形成需要输入向量和输出向量,文中将选取的7个耐波性因素作为网络模型的样本输入,将由耐波性综合评估方程[3]得到的耐波性安全评估值作为样本的输出。在完成网络模型的建立过程中还需要确定网络的结构和选择有效的网络参数,由此才能保证建立起来的网络模型具有良好的性能。在文献[1]中建立起来的网络模型输出层的传递函数选择线性的purelin函数,隐层传递函数选择S型函数tansig。并设置一个隐层,隐层神经元的数目为15,网络的学习速率确定为0.05。通过建立起来的船舶耐波性评价模型网络训练过程如图1所示。
由图中可以看出,网络经过7848次训练达到了训练精度10-4。将第29、30个样本进行测试,测试的误差绝对值为0.0033和0.0042,说明网络输出值与期望值很接近,证明BP神经网络可以用来建立船舶的耐波性评价模型。
2 船舶耐波性评价模型的GUI实现
船舶耐波性的GUI实现是在Matlab环境下通过调用其神经网络工具箱,然后设置所需要的各个参数来完成。[4]
1)打开Matlab,将需要用到的网络训练样本和测试样本的输入向量和目标输出向量分别输入到Matlab界面上的命令窗口。在命令窗口键入nntool命令打开神经网络工具箱。
2)在神经网络工具箱中点击Import按钮,将Matlab工作区中的训练样本(P、T)和测试样本(P_test、T_test)的输入向量和目标输出分别加入到对应的窗口([Inputs]和[Targets])中。
3)创建神经网络。
点击[New Network]按钮,首先选择Network Type,即选择网络类型为BP神经网络,然后设置各参数:
(1)Input Range——输入向量的取值范围,通过点击Get From Input下拉框选择输入向量P来自动完成。
(2)Training Function——网络训练函数,在此选择TRAINGDA,即可变学习速率的梯度下降算法。该算法具备自适应学习速率,使当前学习速率依据误差曲面的局部复杂性确定,采用最大的学习步长来保持网络训练的稳定,能够较大的提高网络性能。[5]
(3)Layer 1 Number of Neurons——设置隐层神经元的个数,一般来说,神经元越多,输出的数值与目标值越接近,但所花费的训练时间也越长,反之,神经元越少,输出值与目标值相差越大,但训练时间会相应地减少。隐层神经元的数目大都是通过经验公式获得,再通过网络训练结果进行选择,本文通过经验公式和网络训练的结果选取隐层神经元的个数为15。
(4)Layer 1 Transfer Function——隐层的传递函数,根据网络的数据类型,采用文献[1]中选用的S型函数TANSIG为隐层传递函数,它表示隐层输出是[-1,1]之间的实数。
(5)Layer 2 Number of Neurons——输出层神经元的个数,与输出的矩阵行数对应,本文将综合评估方程的评估值作为网络输出,则输出向量的维数为1,所以输出层神经元数目为1。
(6)Layer 2 Transfer Function——输出层传递函数,选择线性传递函数PURE LIN。
所有参数输入后,可以用View按钮预览建立起的神经网络结构。查看网络正确后应用Create键生成新建的神经网络。
4)网络创建后,进行网络训练。
点击Train按钮,进入Training Info(训练信息)选项卡,在输入向量[Inputs]选择P,目标输入向量[Targets]选择T。然后进入Train Parameters(训练参数)选项卡,填入的迭代次数[epochs]为10000,结果显示频率[show]为25(每隔25次迭代显示结果窗口),目标误差[goal]为0.0001(即函数的训练精度为10-4),网络的学习速率[lr]设置为0.05来保证网络的稳定,如图2所示。接着点击按钮[Train Network]进行网络训练,得到的网络训练过程跟前述图1所示训练过程一样。
5)神经网络的仿真测试。
选定训练好的神经网络,点击View按钮,再点击Simulate按钮,在Simulate Data中的Inputs一栏中选择P_test作为测试的数据,然后点击Simulate Network,测试结束后可以在Outputs中看到结果,在Errors中可以看到误差,如图3所示。
通过上面几个步骤就完成了应用BP神经网络建立船舶耐波性评价模型的GUI实现,实现的结果跟文献[1]中的结果一样,但更易于认知和理解,有利于评价模型的使用。
3 结语
本文将应用BP神经网络方法建立起的船舶耐波性评价模型进行GUI实现,形成了直观的网络模型结构,建立起来的图形界面对于用户来说在视觉上更易于接受,使读者和使用者在操作和应用模型时更人性化,从而有效和快速的进行船舶的耐波性评价和指导船舶的操纵。通过GUI实现,可以进一步应用Matlab与其他外部程序的接口方法和技巧实现通过窗口、菜单、按键等方式来方便地进行评估和操作。
参考文献
[1] 李生长.基于BP神经网络的船舶耐波性评价[J].大连海事大学学报,2012(1):15-17.
[2] 熊文海,毛筱菲,李毓江.船舶耐波性衡准及其评价方法浅析[J].船海工程,2007(4).
[3] 朱凯,王正林.精通Matlab神经网络[M].北京:电子工业出版社,2010.
关键词:BP神经网络 船舶耐波性评价 GUI
中图分类号:U675.91 文献标识码:A 文章编号:1674-098X(2012)09(a)-0009-02
人工神经网络是一种新型信息处理体系,其智能化特征与能力使其应用在诸多领域,并且在解决问题方面取得了良好的效果。BP神经网络是基于误差反向传播算法的多层前馈型神经网络,适用于多因素共同作用下的系统安全状态综合评价。在Matlab环境下应用BP神经网络建立的船舶耐波性评价模型,为耐波性评价及指导船舶操纵提供了一种有效的方法。[1]
GUI(Graphical User Interface)是指人机交互图形用户界面设计,用户可以通过选择、激活图形对象,实现某种特定的功能,使操作更人性化,减轻使用者的认知负担[2]。本文通过GUI界面的网络设计,能够实现船舶耐波性评价的BP神经网络模型,从而进行船舶的安全评价,提高船舶耐波性评价效率,能够更方便、更有效的指导船舶操纵。
1 船舶耐波性评价模型的建立
船舶耐波性是指船舶在波浪扰动下,产生各种摇荡运动、砰击、甲板上浪、失速、螺旋桨出水以及波浪弯矩等,仍能维持一定航速在波浪中安全航行的性能。建立船舶耐波性评价模型首先要确定影响船舶安全的耐波性因素,影响船舶航行安全的耐波性因素有横摇、横荡、纵摇、纵荡、升沉、首摇、砰击、失速、暈船率、甲板上浪、甲板淹埋、稳性损失、螺旋桨出水、纵向波浪弯矩、船体某横剖面加速度、横向加速度、操纵性能恶化等。在文献[1]中,作者选取了横摇、纵摇、砰击、升沉、甲板上浪、螺旋桨出水和船首垂向加速度等7个对船舶海上安全航行影响较大的耐波性因素。并且作者以某20000吨级油轮为例,根据油轮自身的结构特点和任务情况,依据专家建议及参考相关文献的结果,在综合考虑了船舶耐波性因素衡准值的选取因素后,分别给出了各耐波性因素的评价指标值和允许概率。
BP神经网络是基于误差反向传播算法的多层前馈型神经网络,应用它来建立船舶的耐波性评价模型需要取得训练样本和测试样本。在文献[1]中作者设计出了30个样本,在这些样本中选择前28个样本为训练样本,将第29、30个样本用来作为网络的测试样本,用来测试船舶耐波性网络模型的性能。一个样本的形成需要输入向量和输出向量,文中将选取的7个耐波性因素作为网络模型的样本输入,将由耐波性综合评估方程[3]得到的耐波性安全评估值作为样本的输出。在完成网络模型的建立过程中还需要确定网络的结构和选择有效的网络参数,由此才能保证建立起来的网络模型具有良好的性能。在文献[1]中建立起来的网络模型输出层的传递函数选择线性的purelin函数,隐层传递函数选择S型函数tansig。并设置一个隐层,隐层神经元的数目为15,网络的学习速率确定为0.05。通过建立起来的船舶耐波性评价模型网络训练过程如图1所示。
由图中可以看出,网络经过7848次训练达到了训练精度10-4。将第29、30个样本进行测试,测试的误差绝对值为0.0033和0.0042,说明网络输出值与期望值很接近,证明BP神经网络可以用来建立船舶的耐波性评价模型。
2 船舶耐波性评价模型的GUI实现
船舶耐波性的GUI实现是在Matlab环境下通过调用其神经网络工具箱,然后设置所需要的各个参数来完成。[4]
1)打开Matlab,将需要用到的网络训练样本和测试样本的输入向量和目标输出向量分别输入到Matlab界面上的命令窗口。在命令窗口键入nntool命令打开神经网络工具箱。
2)在神经网络工具箱中点击Import按钮,将Matlab工作区中的训练样本(P、T)和测试样本(P_test、T_test)的输入向量和目标输出分别加入到对应的窗口([Inputs]和[Targets])中。
3)创建神经网络。
点击[New Network]按钮,首先选择Network Type,即选择网络类型为BP神经网络,然后设置各参数:
(1)Input Range——输入向量的取值范围,通过点击Get From Input下拉框选择输入向量P来自动完成。
(2)Training Function——网络训练函数,在此选择TRAINGDA,即可变学习速率的梯度下降算法。该算法具备自适应学习速率,使当前学习速率依据误差曲面的局部复杂性确定,采用最大的学习步长来保持网络训练的稳定,能够较大的提高网络性能。[5]
(3)Layer 1 Number of Neurons——设置隐层神经元的个数,一般来说,神经元越多,输出的数值与目标值越接近,但所花费的训练时间也越长,反之,神经元越少,输出值与目标值相差越大,但训练时间会相应地减少。隐层神经元的数目大都是通过经验公式获得,再通过网络训练结果进行选择,本文通过经验公式和网络训练的结果选取隐层神经元的个数为15。
(4)Layer 1 Transfer Function——隐层的传递函数,根据网络的数据类型,采用文献[1]中选用的S型函数TANSIG为隐层传递函数,它表示隐层输出是[-1,1]之间的实数。
(5)Layer 2 Number of Neurons——输出层神经元的个数,与输出的矩阵行数对应,本文将综合评估方程的评估值作为网络输出,则输出向量的维数为1,所以输出层神经元数目为1。
(6)Layer 2 Transfer Function——输出层传递函数,选择线性传递函数PURE LIN。
所有参数输入后,可以用View按钮预览建立起的神经网络结构。查看网络正确后应用Create键生成新建的神经网络。
4)网络创建后,进行网络训练。
点击Train按钮,进入Training Info(训练信息)选项卡,在输入向量[Inputs]选择P,目标输入向量[Targets]选择T。然后进入Train Parameters(训练参数)选项卡,填入的迭代次数[epochs]为10000,结果显示频率[show]为25(每隔25次迭代显示结果窗口),目标误差[goal]为0.0001(即函数的训练精度为10-4),网络的学习速率[lr]设置为0.05来保证网络的稳定,如图2所示。接着点击按钮[Train Network]进行网络训练,得到的网络训练过程跟前述图1所示训练过程一样。
5)神经网络的仿真测试。
选定训练好的神经网络,点击View按钮,再点击Simulate按钮,在Simulate Data中的Inputs一栏中选择P_test作为测试的数据,然后点击Simulate Network,测试结束后可以在Outputs中看到结果,在Errors中可以看到误差,如图3所示。
通过上面几个步骤就完成了应用BP神经网络建立船舶耐波性评价模型的GUI实现,实现的结果跟文献[1]中的结果一样,但更易于认知和理解,有利于评价模型的使用。
3 结语
本文将应用BP神经网络方法建立起的船舶耐波性评价模型进行GUI实现,形成了直观的网络模型结构,建立起来的图形界面对于用户来说在视觉上更易于接受,使读者和使用者在操作和应用模型时更人性化,从而有效和快速的进行船舶的耐波性评价和指导船舶的操纵。通过GUI实现,可以进一步应用Matlab与其他外部程序的接口方法和技巧实现通过窗口、菜单、按键等方式来方便地进行评估和操作。
参考文献
[1] 李生长.基于BP神经网络的船舶耐波性评价[J].大连海事大学学报,2012(1):15-17.
[2] 熊文海,毛筱菲,李毓江.船舶耐波性衡准及其评价方法浅析[J].船海工程,2007(4).
[3] 朱凯,王正林.精通Matlab神经网络[M].北京:电子工业出版社,2010.