首页 理论教育 应用遗传算法优化神经网络参数,提高效果

应用遗传算法优化神经网络参数,提高效果

时间:2023-11-02 理论教育 版权反馈
【摘要】:目前,遗传算法广泛应用于许多实际问题,如函数优化、自动控制、图像识别、机器学习、人工神经网络、分子生物学、优化调度等许多领域中的问题。具体实现时,则鉴于程序的复杂度,考虑后两层的GA算法,基本思路如下:第一层:应用GA算法优化神经网络的权值和阈值。上述两层GA算法可应用于单层和两隐层的神经网络。

应用遗传算法优化神经网络参数,提高效果

遗传算法(Genetic Algorithm,GA)是一种新发展起来的优化算法,始于20世纪60年代美国密歇根大学,John H.Holland(1975)给出了遗传算法的基本定理,并给出了大量的数学理论证明。DavidE.Goldberg(1989)对遗传算法的方法、理论及应用给出了全面系统的总结。从1985年起,国际上开始举行有关遗传算法的会议,以后更名为进化计算的国际会议。遗传算法已经成为人们用来解决高度复杂问题的一个新思路和新方法。目前,遗传算法广泛应用于许多实际问题,如函数优化、自动控制、图像识别、机器学习人工神经网络、分子生物学、优化调度等许多领域中的问题。

GA遗传算法的核心问题是寻找求解优化问题的效率与稳定性之间的有机协调性,即所谓鲁棒性(Robustness)。该算法是一种采用随机技术的随机搜索方法,其通过将待寻优参数空间进行编码,并用随机选择作为工具来引导搜索过程向着更高效的方向发展。

将遗传算法与神经网络相结合应用于非线性函数逼近,其遗传编码大致分为二进制编码和实数编码两种,国内学者陈小平等(2008)提出采用GA算法二进制编码优化神经网络的结构和参数,其基本思想为:将网络的隐含层数、各层神经元个数、激活函数和学习训练方法用一个二进制字符串进行编码,用GA求得最优解——最优的前馈神经网络;黄建国等(2009)则应用GA算法实数编码优化神经网络的连接权和阈值以提高运算的精度和计算速度,其基本思想为:先用GA算法来优化神经网络的初始权值和阈值,当算法达到一定的收敛要求后,再用神经网络进行二次训练,以此来避免局部最优,达到提高网络训练精度的目的。本书研究发现,GA算法可以优化BP神经网络的三个层面:一是确定神经网络结构、神经元个数和神经元函数;二是确定网络的连接权、阈值;三是自适应确定BP网络具体LM逼近算法中的学习率、动量因子的值等参数。因此,结合前述两者的方法并再加入一层,从神经网络结构、参数和连接权、阈值以及学习率、动量因子等分三层运用GA算法优化基于LM算法的神经网络。

具体实现时,则鉴于程序的复杂度,考虑后两层的GA算法,基本思路如下:

第一层:应用GA算法优化神经网络的权值和阈值。

(1)将阈值β0、中间层到输出层的连接权矩阵W=(βk)1、各中间层阈值αj0以及输入层到中间层的连接权矩阵V=(αij)p×q直接采用实数编码,组成一组有序染色体链w1×(p+2)q+1=(β01,…,βq10,…,αq011,…,α1q21,…,α2q,…,αp1,…,αpq),设置种群规模为M。

(2)计算各个个体wi(i=1,2,…,M)的适应度。根据每个个体(权值和阈值)所对应的神经网络计算出BP网络的误差平方和,适应度函数采用网络误差平方和的倒数:

这里i=1,2,…,M。

(3)进行进化操作。

操作一,基因选择:对于群体中每个个体的适应度值,将其按降序排列,然后采用适应度比例选择法(即轮盘赌选择)得到其在子代个体中出现的概率,从而通过这种方式使M个父代进化得到选择并再生M个子代。

操作二,基因交叉:参考陈小平等(2008)的观点,最大适应度的个体不进行交叉变异直接传至下一代以确保算法的收敛。对其余个体采用两点交叉法进行基因交叉,使用交叉算子能够使算法从全局的角度寻找到较好的个体编码结构。假设要参与交叉操作的两个基因链分别为wi与wj,并且wi的适应度大于wj的适应度,则对于链上对应位置的染色体wik和wjk(k=1,2,…,(p+2)q+1),Bareau等(1996)、田旭光(2004)定义两个中间变量为:

这里w(k)min与w(k)max分别为w的第k个分量取值上限和下限,pc为交叉概率,Srinivas与Patnaik(1996)给出下式[7]:这里k1,k2为[0,1]中的常数;fb为两交叉个体中适应度较大的一个;fmax为种群中最大的适应度;favg则为种群的平均适应度。这种自适应交叉概率限制了交叉概率的范围,当其适应度较小时有恒定的交叉概率,适应度较大时,则减小交叉的概率。(www.xing528.com)

从而交叉后的两个新个体为:

这里α为[0,1]之间的随机数

如此,保证了子代中的一个在其父代所在的区域之间搜索,另一个则向适应度高的父代个体的方向搜索新的领域。这种方式突出了训练的效率,保证了搜索的多样性。

操作三,基因变异:为使个体从局部角度更加逼近最优解,并使算法在接近最优解邻域时能加速收敛,基因变异采用某一均匀分布的随机数来替换原有的基因,使个体在搜索空间内自由移动,即以概率pm在父代个体中随机选择变异点h,则该变异点的新基因值为[8]

这里wmax与wmin分别为初始个体目标变量的最大值和最小值,l为[0,1]上均匀分布的随机数。当GA运行时,给定的Ge(Ge﹤G)代总误差平方和E没有减少或M个父体都相同,则增大变异概率pm

(4)计算各子代误差平方和以及适应度,当小于某一给定精度或GA运行代数达到给定G代,则转到(5),否则,转至(2)。

(5)输出最小误差对应的染色体链并转换为相应连接权和阈值,进一步以其为初始值应用基于LM算法的BP神经网络进行非线性函数逼近。

第二层:对于第一层已优化确定权值和阈值的神经网络,应用GA算法优化LM算法的学习率和动量因子等参数。其基本思路与第一层相同:

直接采用实数编码,将学习率η、动量因子γ、学习率放大因子kinc以及学习率缩小因子kdec组成一组有序染色体链w1×4=(η,γ,kinc,kdec),设置种群规模为M。结合经验取值,设置该有序染色体链的最大组值为wmax=(0.05,1,2,0.9),最小组值为wmin=(0.01,0,1.1,0),则其相应的GA算法与第一层相同。

上述两层GA算法可应用于单层和两隐层的神经网络。本书MC仿真研究表明,GA算法可以帮助确定各学习步长等参数,避免经验性的要求,防止局部最小的陷阱,相对更稳健,但会增加计算时长,结果也不一定会更精确。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈