• 注册
    • 查看作者
    • 基于遗传算法优化BP神经网络的风速预测

        在机械式风速计的摩擦问题上,国内外学者做了大量研究。文献[1,2]利用绝缘沟槽和全桥设计相结合的方式来抑制传感器中的横向热传导和摩擦问题,使传感器灵敏度提高226%,但沟槽的几何形状和上下游温差问题没有解决。文献[3]通过算法将接入电流、运行速度、稳定系数与摩擦力建立数学模型,研究了对系统稳定性的影响,得到了系统的最小接触压力,减少了摩擦力对系统的影响,然而网络容易出现局部极小值。文献[4]采用支持向量机建立系统与运行速度、接触电流、电阻阻值之间的模型,使用遗传算法对模型进一步优化,通过仿真结果评估其可行性,但模型的稳定性问题尚未彻底解决。以上两篇文献的研究都是通过算法建立起摩擦力的数学模型,然后进一步对摩擦力进行研究。

        

        文献[5,6]采用典型的刚性摩擦的软摩擦模式,大大提高了传感器输出性能,使a-TENG信号的当前峰值用于分析风速,减少了摩擦力对传感器的影响,但仍受到传感器材料的限制。文献[7]通过测量得到各个速度环境下的摩擦力,采用差分进化算法建立模型来抵消接触摩擦导致的速度变化,但反馈控制器构造复杂且运算量较大。文献[8]通过正弦力对电机进行控制,建立电机摩擦力数值模型,通过前馈补偿来有效减少接触摩擦对系统的影响,但补偿效果尚未达到完美程度。以上文献都是减少摩擦力的影响或对其进行补偿,可对于极值部分风速还是无法测量。

        

        本文提出了一种基于遗传算法优化BP神经网络的风速预测模型,将电流、接触摩擦力、接入阻值作为网络的输入,风速值作为网络的输出,经由遗传算法得到BP网络最优初始值,得到极值风速,来扩大风速计的测量范围。同时,该研究还解决了BP网络学习时间长和易陷入局部极值的问题。

        

        1 问题建模

        

        1.1 BP神经网络

        

        BP神经网络是一类反向传播学习的网络,其基本思想是通过算法连续多次的搜寻,使其实际值和期望值的差值均方差降到最低。若网络输出数值与预期输出数值不相符,则会经过差值的反方向传播进行迭代计算进行修正,经过重复多次学习来确定得到的差值对权值和阈值的影响。BP网络由输入层、隐藏层和输出层构成,其对应的输入为X=(X1,X2,…,Xn)T,输出为Y=(Y1,Y2,…Yk)T。

        

        BP神经网络的函数表达式为:,BP神经网络包括以下三层:输入层。其结点数n取决于样本的属性个数,将样本传递给下一层;隐含层。其结点数;输出层。其结点数和学习样本数据中向外传输的向量个数相同,即测试分类的数量。然而BP神经网络也有自己本身的局限性,一方面它的学习速度基本固定不变、需进行很多次学习才能够收敛,另一方面没有办法使网络每一次都收敛到最小点。

        

        1.2遗传算法

        

        遗传算法是效仿物种生存的一种算法,经由一代代的寻优操作来繁殖种群的个体。它是把问题参数编码为基因片段,然后利用一代代繁衍的方式进行选择、交叉以及变异等运算来互换基因片段上所携带的信息,最终生成符合目标条件的染色体。该算法中问题参数的编码是基因,由基因片段中所携带的数据来表示,各个结构上面的不同位置就是基因的信息。基因组成的串就是染色体或称为基因型个体,多个个体在一起组成群体,群体中的数目被称为种群规模。遗传算法的基本步骤如下:

        

        编码。遗传算法先将解集中的多组解转化为携带各种数据信息的染色体,然后再开始全局寻优操作;初始群体的生成。每一个染色体中所携带不同的数据,这些数据信息相对独立,多个染色体所能表达的各种数据信息组成了整个群体,遗传算法开始一代代进化选择;适应度评估。适应度指的是自然界的物种对环境的相匹配程度,个体在环境中可以更好地存活则表明适应度高,如与环境不能相互共存,物种数量就会慢慢出现下降状态直至最后灭绝,表现为对环境适应度低。通过这个准则来对种群中的个体评估,筛选出符合生存环境的个体让其继续繁殖,使良好的基因传递到下一代中。

        

        选择。遗传算法中选择是一个概率性问题。在许多个染色体所组成的基因数据信息中,有一部分是属于优良的基因、还有一部分不良基因。而选择操作的目的就是从诸多染色体所携带的基因信息中选择出那部分优良的基因,让它通过下一代继续繁殖,进而得到更适应环境更有利于个体生存的基因;交叉。通俗来说就是互换基因片段的部分基因,形成新的组合来构造子代的解,交叉体现了信息交换的思想;变异。父辈在繁殖子代的过程中,染色体所表达的基因信息会以一定的概率出错,进而生成表达信息不同于父辈的染色体基因,产生了基因的变化,这是物种生存的正常规律。

        

        2 改进算法与分析

        

        BP神经网络在系统理论方面应用比较广泛,然而神经网络初始值的任意性容易使算法产生局部极小值,导致算法的运行变慢,无法确保收敛到最小点。本文选用GA优化BP神经网络是想要利用GA的寻优操作得到最优的初始值,用染色体来表达其初始值,将所期望样本数据的范数当作输出量,进一步来得到所需的适应度值。经过算法的一系列运算来得到所需的那个最优解,也就是算法最开始的初始值。使寻优后的BP神经网络更加准确的得到所期望的函数值,得到极值部分的风速,扩大风速传感器的测量范围。

        

        2.1 GA-BP算法基本步骤

        

        种群初始化。将基因信息表达为一个个实数码,任何编码都表达着不同的信息,都是一个串结构,包含了网络的所有元素,形成了一个完整、系统的神经网络结构。

        

        适应度函数。通过编码来获得网络的初始值,再利用所得到的数据来学习训练,从而得到网络的预估值,将它与期望的数值进行对比分析,进而得到它们间的误差当作适应度函数,经过遗传算法改进网络后得到的yi与oi的范数很小,相比只有神经网络存在时预测的更加准确,得到最小的测试误差。范数很小表明其适应环境的能力越好,可以筛选出最优个体。

        

        选择操作。GA算法中有许多选择的方式,只要与所研究的问题相吻合即可。染色体编码的基因选择概率为,式中N为个体数目,k为常数。经过改进后的网络可得到误差最小的Fi来确定基因选择概率,进一步选择最适合遗传给下一代的基因信息。

        

        交叉操作。其方法选择实数法,最后一个染色体ak和第一个染色体aj在j时的交叉方法:akj=akj(1-b)+aljb,alj=alj(1-b)+akjb,式中b是[0,1]之间的随机数。

        

        变异操作。染色体的变异过程是无法避免的,同时也是必须存在的,公式如式(1)、(2),式中amax为基因aij的上界;amin为基因aij的下界;r2是一个随机数;g为当前迭代次数;Gmax是最大的进化次数;r为[0,1]之间的随机数。通过改进算法中amax、amin和最大遗传代数进行相关计算,以获得基因片段中的变异基因aij。

        

        经由算法获得的最优值赋给BP网络最开始的权重和阈值;优化模型学习,获得预估的期望值,即最优的风速值。

        

        3 仿真与验证

        

        3.1 实验数据

        

        以山东丘陵和部分山地风速为研究对象,共选取210组测试数据。用前200组数据当作训练集,后10组作为测试集。选取接触摩擦力、电流大小和电阻作为神经网络的输入,风速值为输出建立模型,对实际风速值进行预估,来得到极值部分风速值。以MATLAB2019a为实验仿真平台,设置GA-BP算法的参数,其设定如下:种群数为10;最大进化代数为35;交叉概率为0.4;发生突变的概率为0.1,将BP网络和GA-BP算法分别代入,得出风速。

        

        3.2 实验结果分析

        

        针对BP神经网络和GA-BP算法模型,从网络预测、运行时间、网络预测误差等进行了比较。

        

        发现BP神经网络获得的风速值与实测的风速值两者间有一定的差值,数据上下波动幅度较为明显,根本原因是BP神经网络的局部极值的问题。通过算法的改进在网络初期对它的初始值进行筛选,筛选出最优的初始值来赋值给神经网络,很大程度上缓解了这个问题所造成的误差。

        

        对BP网络和GA-BP算法估算风速值和实际测量风速值相互比较发现,相比于BP神经网络,GA-BP估算的风速值更加贴近于实际测量的风速值,主要原因是GA-BP优化的最开始的权值和阈值相比于BP网络更加的接近于最优值范围,使其与实测风速值更加接近。

        

        此次实验BP神经网络与GA-BP算法的运行时间分别为0.26563秒、0.14063秒,GA-BP算法相比较于BP神经网络的运行时间,GA-BP算法训练时间短且收敛快可以更快的得到风速值,从这一点上可以明显的看出改进后的网络对于风速预估更加的迅速精准。

        

        实验发现,GA优化BP预测的误差相比与BP神经网络预测的误差,其误差值更趋于0。BP神经网络的均方误差为0.23428,GA-BP网络的均方误差为0.22684,GA-BP网络预测误差提高了0.00744。

    • 0
    • 0
    • 0
    • 188
    • 请登录之后再进行评论

      登录
    • 做任务
    • 实时动态
    • 偏好设置
    • 单栏布局 侧栏位置: