一种基于进化算法的自适应学习神经网络实现方法

文档序号:9524587阅读:427来源:国知局
一种基于进化算法的自适应学习神经网络实现方法
【技术领域】
[0001] 本发明属于神经网络计算技术领域,设及多种可学习神经网络结构的实现与及进 化算法在网络计算中的优化,特别设及一种基于进化算法的自适应学习神经网络实现方 法。
【背景技术】
[0002] 目前对神经网络的研究大概可分为Ξ种主流结构模式:感知型神经网络 (Perceptronneuralnetwork)、反馈型神经网络度ack-propagateneuralnetwork)和深 度学习神经网络值eepLearningneuralnetwork)。每种网络都有其自身的特点,就总体 性能上来说深度学习网络在图片识别中的表现性能优于其他两种。
[0003] 感知型神经网络只有Ξ层结构,第一层通常人为的对目标的特征进行抽象,第二 层为计算网络,通过学习算法来改变第一层抽象出的特征的权值来实现对象识别,第Ξ层 作为输出层,输出计算结果。其优点是学习算法简单,从硬件上易于实现,但它本身有个先 天性的缺陷,即只能实现目标特征可分离的问题,无法实现一些复杂逻辑。第二种是反向传 播网络。相比于感知型网络,该结构可W实现更为复杂的算法,网络深度也有所增加。该 结构通过输出反向调节前一层的突触权值,使得最后得到一个收敛的结果。然而运种结构 存在学习时间对电路参数选择过于敏感的问题,如果参数选择不当,很可能得不到一个稳 定的收敛结果。目前运种结构的神经网络已经运用于模式识别、系统仿真、故障智能诊断等 方面。第Ξ种是深度学习网络。随着人类对大脑的深入理解,生物学家发现,大脑处理问题 的过程是通过层层特征提取,本级的输出结果为对上一级的抽象结果。深度学习的实质,是 通过构建具有多个隐藏层的学习模型和海量的训练数据,来学习更有用的特征,从而最终 提升分类或预测的准确性。"深度模型"是手段,"特征学习"是目的。区别于传统的浅层学 习,深度学习的不同在于:首先,其强调模型结构的深度,通常有5-6层,甚至有更多层的隐 藏节点;其次,其明显突出了特征学习的重要性,也就是说,通过逐层特征变换,将样本在原 空间的特征表示变换到一个新特征空间,从而使分类或预测更加容易。但就实现结构上来 说深度学习网络的复杂度比较高,识别准确度与训练次数有很大关系。
[0004] 进化算法是通过模仿自然界的选择与遗传的机理来寻找最优解。进化算法有Ξ个 基本算子:选择、交叉和变异。

【发明内容】
阳〇化]为了克服上述现有技术的缺点,本发明的目的在于提供一种基于进化算法的自适 应学习神经网络实现方法,通过进化算法来控制某种或者某几种已知的神经网络算法形成 的电路,实现在神经网络间的寻优;对于上述算法的硬件验证,本发明利用现场可编程口阵 列(FPGA)完成,FPGA内部大部分都包括两种可配置逻辑模单元,一种是具有存储和逻辑运 算功能的逻辑片(SLICEM),另一种是只含有逻辑运算功能的逻辑片(SLICED,为了加快开 发效率,本发明将使用FPGA模拟器仿真FPGA行为,由于真实的FPGA的运行速率与工作频 率有关,但通过模拟器就可w克服运些不良因素。通过模拟器得到最终所需电路的连接方 式后,再映射到实际的FPGA硬件上。
[0006] 为了实现上述目的,本发明采用的技术方案是:
[0007] 一种基于进化算法的自适应学习神经网络实现方法,W某种或者某几种已知的神 经网络作为进化算法的最初父代,通过进化算法整合作为所述最初父代的各个神经网络的 特点,从而得到最优的输出值。
[0008] 其中,所述最初父代的获取方法为:通过对神经网络实现的电路进行二进制编码, 将编码所得到的结果作为一个个体的染色体,从而实现了从硬件结构到算法原始数据的抽 象,各个染色体构成生物体的原始种群,即最初父代。
[0009] 进一步地,W每个神经网络的算法分别实现对特定物体的识别,将识别训练完成 后得到的信息抽象成为一段二进制编码,将该编码视为生物的基因编码,作为一个个体的 染色体。
[0010] 所述进化算法步骤如下:
[0011] 步骤1.评估每条染色体所对应个体的适应度;
[0012] 步骤2.遵照适应度越高,选择概率越大的原则,从种群中选择若干个个体作为父 代;
[0013] 步骤3.抽取父母双方的染色体,进行交叉,产生子代;
[0014] 步骤4.对子代的染色体进行变异;
[0015] 步骤5.重复2,3,4步骤,直到新种群的产生,运行N代,从中选出表现最优的输出 值。
[0016] 本发明W训练感知型、反馈型、深度学习Ξ种神经网络作为进化算法的最初父代, 对其进行训练,使其具备初步识别图片中特定目标的功能,训练过程在FPGA模拟器上完 成,识别完成后得到运Ξ个网络的配置信息,将该配置信息抽象成为一段二进制编码,将该 编码视为生物的基因编码,即Ξ个个体的染色体。
[0017] 所述最初父代的获取基于FPGA实现,包括如下步骤:
[0018] 步骤1.利用C++编写的vede巧系FPGA模拟器模拟FPGA硬件结构,利用该模拟 器分别搭建训练感知型、反馈型、深度学习Ξ种神经网络并且训练,训练最终结果为得到Ξ 种神经网络对应的电路配置信息.
[0019] 具体地,利用C++编写的vede巧系FPGA模拟器模拟FPGA各个功能单元的行为, 从而实现对FPGA电路行为的模拟。
[0020] 步骤2.感知型神经网络分Ξ层,第一层为输入层,第二层为隐藏层,第Ξ层为输 出层,层与层之间有一个权值矩阵W1,通过识别图片中的特定物体来训练权值矩阵W1,最 终得到一个稳定的输出结果,该训练过程主要通过不断输入图像特征信息,然后不断微调 权值信息,最后得到所需要的输出,则完成训练过程,最后提取出训练完成时对应的配置信 息;
[0021] 步骤3.反馈型神经网络前向传播有Ξ层,第一层输入层,第二层为隐藏层,第Ξ 层为输出层,在每层网络间有权值矩阵W2,通过输入图像特征训练得到最终的配置信息,该 训练过程通过调节反馈的权值来使得得到稳定的输出,最后提取出训练完成时对应的配置 信息;
[0022] 在每层网络间有权值矩阵W2,通过输入图像特征训练得到最终的配置信息,该训 练过程通过调节反馈的权值来使得得到稳定的输出,最后提取出训练完成时对应的配置信 息;
[0023] 步骤4.深度学习神经网络采用屯层的卷积神经网络,前五层采用局部连接,后两 层采用全连的方式,通过层层训练每层的权值信号W3,得到稳定的网络结构,最后提取出训 练完成时对应的配置信息。
[0024] 所述卷积神经网络的训练采用分层训练法,每一层网络单独训练,下一层网络在 上一层网络的输出基础上进行训练,最后得到预期的输出结果。
[0025] 利用得到的Ξ种神经网络的配置信息,通过如下算法求解一个最优的电路结构:
[0026] 步骤1.将得到的配置信息编码为二进制的基因序列;
[0027] 步骤2.编码完成后,确定进化算法的适应函数F,用于评价每个个体对当前环境 的适应度G,G用于确定哪些个体可W被留下,哪些被淘汰,通过概率来表征个体存在的可 能性,从而确定哪些基因可W被遗传给下一代,其中:
[0030] Yi为当前网络的输出值,第i次输入得到的网络输出结果为Yi,y为预期的输出值, F,为从y中选择最适合目标预期的一组Y,此时Y1与输出y的方差最小,j的取值为1或2 或3,表示Ξ种网络所对应的输出F,F包含Fj的所有值,为F i的一组向量,F越大表示其适 应环境的能力越强,通过适应度G的大小确定可被遗传给下一代的概率,即G越大,遗传给 下一代的概率越大;
[0031] 步骤3.通过遗传算子确定基因如何遗传给下一代,完成第一代个体的进化;
[0032] 步骤4.将得到的新的个体重复到步骤2中,重新计算每个个体的适应函数F,同时 确定每个个体的适应度G,进化到N代时,停止算法,选出其中表现最优的个体,确定该个体 的基因编码,将该编码通过所述FPGA映射成电路。
[0033] 所述步骤2中设定:如果概率小于0. 1则将该个体淘汰;所述步骤4中设定进化到 50代时,停止算法。
[0034] 所述步骤3中遗传算子为交叉和变异,所述交叉采用随机交叉策略,每次交叉的 地方都有计算机产生的随机数确定,
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1