一种基于spark的遗传算法优化的BP神经网络并行化方法技术

技术编号:11973290 阅读:264 留言:0更新日期:2015-08-28 10:46
本发明专利技术提供了一种基于spark的遗传算法优化的BP神经网络并行化方法,通过采用spark并行编程模型改进遗传算法对BP神经网络的权值进行全局进化寻优,经过一定次数的进化迭代后,得到优化的神经网络初始权值,再使用并行的BP神经网络算法进行迭代,最终输出网络结构。在训练过程中,各个阶段都可以多节点并行处理,大大提升BP神经网络的收敛速度,提高训练的效率。

【技术实现步骤摘要】

本专利技术涉及机器学习算法并行化领域,特别涉及一种基于spark分布式计算框架的遗传算法优化的BP神经网络并行化方法。
技术介绍
BP(Back Propagat1n)神经网络是 1986 年由 Rinehart 和 McClelland 为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络。BP神经网络的主要思想,包括正向传播信号和反向传播误差。在正向传播过程中,输入信号通过隐层处理后传递给输出层。若输出值与预期的值不等且大于误差可接受范围,则进入误差反向传播过程。误差通过隐层向输入层传递,进行误差调整。通过不断调整各层之间的权值,使得输出误差达到可接受范围或达到最大学习次数为止。遗传算法(Genetic Algorithm)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法。它是由美国的J.Holland教授1975年首先提出,其主要特点是直接对结构对象进行交叉和变异操作;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。BP神经网络算法存在收敛速度慢和容易陷入局部极小点的缺点,基于遗传算法优化的BP神经网络,首先用遗传算法优化BP网络的权值和阈值,以提高网络的收敛速率,克服易陷入局部极小的不足。传统的BP神经网络训练方法,是在单机上串行处理数据集,但是随着信息化社会的飞速发展,需要进行数据挖掘的数据量急剧增大,达到了海量数据的级别,因此传统的BP神经网络训练方法在处理海量数据集时会有很大的问题,比如耗时非常长,甚至是内存不足无法训练等问题。Spark是Apache推出的分布式计算框架,提供了并行编程模型,用户只需调用相关的API即可完成分布式处理程序,为大数据的处理提供了有利的条件。因此,基于spark框架实现遗传算法优化的BP神经网络算法并行化,可以弥补上述问题。
技术实现思路
为了能更好的解决海量数据条件下的训练效率问题,本专利技术提出了,采用新一代并行计算技术,在不影响训练精度的条件下,提高BP神经网络的收敛速度,提高训练效率,实现BP神经网络在多个节点上并行计算。本专利技术采用基于新一代分布式计算框架spark,实现遗传算法优化的BP神经网络并行化方法,包括如下步骤:步骤1:数据预处理,将全局训练集切分成多个子集和,并且存储到HDFS或者其他的分布式文件系统中;步骤2:采用spark并行编程模型改进遗传算法对BP神经网络的权值进行全局进化寻优,经过一定次数的进化迭代后,得到优化的网络初始权值。具体流程如下:(I)在spark集群中启动实现map接口的作业,各个节点将部分训练数据作为RDD输入,将每个个体编码成染色体,生成新的种群RDD数据集;(2)将新生成的种群RDD作map转换处理,根据适应度函数计算每个个体的适应度值;(3)由个体适应度值所决定的某个规则,如轮盘赌方法,选择将进入下一代的个体,生成优胜劣汰后的种群RDD ;(4)将(3)中生成的种群RDD作交叉操作;(5)将⑷中生成新的种群RDD做变异操作;(6)若迭代次数满足条件或结果达到收敛条件,得到初始网络权值,结束;否则,进入(2)进行下一轮的迭代。步骤3:在各计算节点上,都采用优化后的网络初始权值建立自身的神经网络结构;步骤4:采用spark并行编程模型改进并行的BP神经网络算法,对原始训练数据集进行迭代训练。具体流程如下:(I)在Driver进程中读取网络初始权值,并广播到每个计算节点;(2)在每个计算节点上用初始权值都实例化一个网络结构;(3)在每个计算节点上,使用批量训练的模式将部分样本作用于网络上,进行一定次数的迭代后输出网络权值;(4)综合各个节点的输出获得新的网络权值,并根据网络权值的调整量决定是否进行再次迭代。步骤5:输出训练后的神经网络结构。与现有技术相比,本专利技术所提供的,能更好的解决海量数据条件下的训练效率问题。通过采用新一代并行计算技术,改进遗传算法对BP神经网络的权值进行全局进化寻优,经过一定次数的进化迭代后,得到优化的神经网络初始权值,再使用并行的BP神经网络算法进行迭代,最终输出网络结构。在训练过程中,各个阶段都是可以多节点并行处理的,这样能大大提升BP神经网络的收敛速度,在不影响训练精度的条件下,提高训练的效率。【附图说明】图1为本专利技术方法的流程图。图2为改进的并行遗传算法流程图。图3为改进的遗传算法并行化示意图图4为改进的并行BP神经网络算法流程图。图5为BP神经网络并行化示意图。【具体实施方式】下文与图示本专利技术原理的附图一起提供对本专利技术一个或者多个实施例的详细描述。结合这样的实施例描述本专利技术,但是本专利技术不限于任何实施例。本专利技术的范围仅由权利要求书限定,并且本专利技术涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本专利技术的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本专利技术。如上所述,本专利技术所提供的,更好的克服海量训练数据条件下的问题,通过遗传算法对BP神经网络的权值进行全局进化寻优,经过一定次数的进化迭代后,再使用BP神经网络算法进行迭代,并且各个阶段都是可以并行处理的,这样能大大提升BP神经网络的收敛速度,提高训练的效率。以下结合说明书附图和【具体实施方式】对本专利技术的方法做进一步详细说明。在执行算法之前,需要根据具体的应用场景对一些参数进行初始化,如遗传算法的最大迭代次数、染色体编码规则、个体适应度函数、进行选择操作的具体函数、进行交叉操作的概率Pc、具体的基因交换规则,进行变异操作的概率Pm等。参考图1,本专利技术的具体步骤包括:步骤1:数据预处理,将数据处理为文本向量,将全局训练集切分成多个子集和,并且存储到HDFS或者其他的分布式文件系统中;步骤2:采用spark并行编程模型改进遗传算法对BP神经网络的权值进行全局进化寻优,经过一定次数的进化迭代后,得到优化的网络初始权值;步骤3:在各计算节点上,都采用优化后的网络初始权值建立自身的神经网络结构;步骤4:采用spark并行编程模型改进并行的BP神经网络算法,对原始训练数据集进行迭代训练,直到结果收敛或满足最大迭代次数;步骤5:输出训练后的神经网络结构。具体的,参考图2和图3,本专利技术的步骤2中使用改进的并行遗传算法优化神经网络初始权值,具体包括如下步骤:(I)个体编码将遗传算法的初始输入数据存储在HDFS上,建立初始种群数据集RDD。在spark集群中启动实现map接口的作业,各个节点将部分训练数据作为RDD输入,在具体处理函数中,每次读取一个个体对象,根据具体的染色体编码规则,将个体编码成染色体,并输出该染色体对象,生成新的种群RDD数据集。(2)计算适应度将编码后的个体计算其适应度。具体地,将新生成的种群RDD作map转换处理,在具体处理函数中,每次处理一个染色体对象,根据具体的适应度函数,计算每个个体的适应度值,将每个个体和其适应度值组成新的对象,即〈个体,适应度值 >,并输出该对象,生成新的RDD。(3)选择操作综合(2)中所有节点的输出,在具体处理函数中,将由适应度值所决定的某个规则(如轮盘赌方法),复制选择进入下一代的个体本文档来自技高网
...

【技术保护点】
一种BP神经网络并行化方法,其特征在于,包括:步骤1:数据预处理,将全局训练集切分成多个子集和,并且存储到分布式文件系统中;步骤2:采用遗传算法对BP神经网络的权值进行全局进化寻优,得到优化的网络初始权值;其中所述步骤2进一步包括以下步骤2.1‑2.6:步骤2.1:在spark集群中启动实现map接口的作业,各个节点将部分训练数据作为RDD输入,将每个个体编码成染色体,生成新的种群RDD数据集;步骤2.2:将新生成的种群RDD作map转换处理,根据适应度函数计算每个个体的适应度值;步骤2.3:由个体适应度值所决定的规则,选择将进入下一代的个体,生成优胜劣汰后的种群RDD;步骤2.4:将2.3中生成的种群RDD作交叉操作;步骤2.5:将2.4中生成新的种群RDD作变异操作;步骤2.6:若迭代次数满足条件或结果达到收敛条件,得到初始网络权值,结束;若未达到收敛条件,进入2.2进行下一轮的迭代;步骤3:在各计算节点上均采用优化后的网络初始权值建立自身的神经网络结构;步骤4:采用BP神经网络算法,对原始训练数据集进行迭代训练;其中所述步骤4进一步包括以下步骤4.1‑4.4:步骤4.1:在Driver进程中读取网络初始权值,并广播到每个计算节点;步骤4.2:在每个计算节点上用初始权值实例化一个网络结构;步骤4.3:在每个计算节点上,使用批量训练的模式将部分样本作用于网络上,进行预定次数的迭代后输出网络权值;步骤4.4:综合各个节点的输出获得新的网络权值,并根据网络权值的调整量决定是否进行再次迭代;步骤5:输出训练后的神经网络结构。...

【技术特征摘要】

【专利技术属性】
技术研发人员:童晓渝赵华叶定松罗光春田玲刘贵松
申请(专利权)人:中电科软件信息服务有限公司电子科技大学
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1