基于 MATLAB 的遗传算法优化神经网络

频道:生活应用 日期: 浏览:1

处理较为繁复的非线性系统挑战时,BP网络起始权重的确定受限于设计者的经验,且需要通过样本空间的反复尝试,这常常导致收敛过程缓慢,网络运行不稳定,甚至出现局部最优解的情况,形成一系列难题。通过把BP神经网络算法和遗传算法融合,理论上能够对各类非线性系统完成映射,并且能找到全局最优的结果,进而构成一种更高效的非线性反演途径。本次讨论将首先聚焦遗传算法,随后探讨 BP 神经网络,内容以 BP 神经网络应用的快速实用入门为主,通过学习可以掌握调用 GA_BP 算法来处理数据的方法。

本场 Chat 主要内容:

第一步 认识 BP 神经网络

我们首先要掌握神经网络知识,因为遗传算法是对神经网络的优化,除了遗传算法,小波算法和蚁群算法也是不错的选择,遗传算法能够提供最优个体的初始权值和阈值,因此建议先从神经网络算法入手学习。

1.1神经网络的分类

人工神经网络分类为以下两种:

1.1.1 依学习策略(Algorithm)分类主要有:

以监督式学习网络为主,这是主要方式。

非监督性学习网络。通过自动分析数据,无需人工标注。能够发现隐藏模式与结构。广泛应用于聚类与降维任务。

混合式教育平台,由多种教学方式组合而成,旨在提升学习效果,融合线上与线下教学资源,实现多元化教育目标。

联想学习系统,通过节点关联,实现信息传递。

最佳学习系统(Optimization Application Network)。该系统旨在,提升效率,优化流程,实现目标。

依据网络结构,主要可以划分为:基于联结主义的类别,包括多种类型。

前向式架构(Feed Forward Network)。

回馈式架构(Recurrent Network)。

强化式架构(Reinforcement Network)。

1.2 学习算法

(1) Hebb 学习规则。

(2) Delta 学习规则。

(3) 梯度下降学习规则。

(4) Kohonen 学习规则(就是SOM)。

(5)向后传播学系规则(BP)。

(6) 概率式学习规则(GA)。

(7)竞争式学习规则(SOM,ART,CPN)。

1.3 BP 神经网络

BP 神经网络训练算法:

(1) 初始化网络设置。

(2) 向前传播输入。

(3) 反向误差传播。

(4) 网络权重与神经元偏置调整。

(5) 判断结束。

BP神经网络具体指什么,可以参考这个说明:它是一种依据“误差反向传递方法进行训练”的层级式前向传导网络结构。

BP方法的核心在于:通过计算最终结果的偏差,来推算倒数第二层的数据偏差,接着用这一层的偏差来推断更前一层的数据偏差,依次类推,从而得到所有层级的偏差估算值。这种偏差估算其实等同于某种导数,我们正是依据这种导数来修正各层之间的连接参数,然后利用修正后的连接参数再次计算输出结果的偏差。

直到输出的误差达到符合的要求或者迭代次数溢出设定值。

反复提及“偏差”,表明该算法是否与偏差密切相关呢?

确实,BP的作用就是针对“偏差”,其意图在于计算出每一层所产生的偏差值。

它的学习规则为:借助最快下降策略,经由逐层逆向传递,持续修正网络中的参数与设定值,直至整体偏差指标降至最低点。

它的学习本质就是:对各连接权值的动态调整。

神经网络结构包含起始单元、中间单元和终结单元,中间单元数量可为一或多个:起始单元,中间单元,终结单元该类网络的长处在于能够掌握众多输入与输出的联系,且无需预先明确这种数理模式那么具体怎样掌握呢

BP算法借助任意可微的函数来展现这一层输入同这一层输出的关联性,一般选用S形函数δ作为激活函数。

这是一个由三层构成的 BP 网络,其维度为 m × k × n,该网络采用 S 型函数作为传递机制,并运用误差传递函数(其中 Ti 代表目标输出值,Oi 表示网络运算结果)持续调整网络中的权重参数和阈值参数,目的是使误差函数 E 的值最小化。

其中,n 代表输入单元的总数,m 指示输出单元的总数,a 是一个固定的数值。

我们现在开始有监督的 BP 神经网络学习算法:

前向计算得出输出端偏差值 e;输入端接收数据样本,依次经过各隐含层级,最终传送到输出端。

确认是否需要反向传播,如果输出层的结果和目标值不一致,就进行反向传播。

误差进行逆向传递kaiyun全站登录网页入口,导致每层都呈现出偏差kaiyun全站app登录入口,接着调整各层神经元之间的连接参数,持续此过程直至偏差降低至允许范围内。

这个算法的说明十分容易理解,下面借助一些数学表达式来揭示 BP 神经网络的本质特征。

我们的网络构造包含一个由 N 个神经元组成的输入部分,一个由 P 个神经元构成的隐藏部分,以及一个包含 Q 个神经元的输出部分。

认识好以上变量后,开始计算:

用介于负一与正一之间的随机数值来设定误差函数的初始值,同时确定准确度要求 ε,并规定最大反复计算次数 M。

二、随机选取第 k 个输入样本及对应的期望输出。

重复以下步骤至误差达到要求:

三、计算隐含层各神经元的输入和输出。

求误差函数对输出层每个神经元的梯度,依据目标值与实际值,结合输出层数据等要素进行推算。

需要求误差函数对隐藏层所有神经元的梯度,要依据下一级(具体为输出级)的敏感度(待说明的 δo(k)),该级与神经元间的连接系数 w,以及本层接收的输入信息等条件进行推算

六、利用第四步中的偏导数来修正输出层连接权值

七、利用第五步中的偏导数来修正隐藏层连接权值

八、计算全局误差(m 个样本,q 个类别)

第二步 加入遗传算法 1.1 遗传算法

为了找到神经网络中表现最优的参数组合,需要确定哪种参数设置能够带来最好的识别效果,由于神经网络包含大量参数,人工挑选难度极大,因此可以采用遗传算法,以识别准确度作为评价标准,不断迭代优化参数值。

遗传神经网络方法与神经网络方法核心的差异在于学习过程不一样,也可以说是模型改进方式不一样。

前者主要是借助遗传算法来训练网络参数,后者则普遍运用反向传播方法来调整参数,这两种技术手段差别显著。前者通过遗传算法优化权重,后者借助反向传播机制优化权重,二者在原理上存在明显不同。

1)遗传算法:

进化算法中包含遗传算法,它通过模仿自然界生物的演化方式运作:即适者生存。生物体持续进化,只有那些性能卓越的个体(其目标函数值最小或最大)才有资格参与下一代的繁衍。这种过程不断循环,最终能够锁定全局最优解。遗传算法对于常规优化方法难以应对的高度非线性优化课题表现出色,因此被广泛采纳并应用于众多领域。进化算法涵盖了差分进化,蚁群算法,粒子群算法等,这些算法模拟的生物群体类型不同。

2)反向传播算法

遗传算法是一种模拟自然界生物遗传机制和进化过程的方法,它属于并行随机搜索技术,目的是实现最优化。这种方法通过模仿生物进化中的选择、交叉和变异等环节,来寻找问题的最优解。这种搜索算法借鉴了自然界生物进化的优胜劣汰法则,融合了生存与探测的循环机制,通过引入优化变量来构建编码群体,该群体依照选定的评价标准运作开元棋官方正版下载,运用遗传操作中的挑选、组合和变动手段对个体进行评估,评价高的个体得以留存,评价低的个体被移除,新产生的群体既承袭了前代的信息,又展现出更优越的性能。反复循环,直至满足条件。

种群里的每一个成员都代表一个可能的答案,这个答案被称为“染色体”,它由一串特定的符号构成,例如二进制序列,用来表示问题的解。通过“适应度”这个指标来评估染色体的优劣程度。遗传算法主要运用以下几种基本方法进行操作:

挑选过程:依据某个比率从先前的群体中挑选成员进入新的群体,成员被挑选的几率与其适应程度相关,适应程度越高的成员被挑选的概率越显著。杂交步骤 – 实施信息互换机制,从两个成员中挑选部分基因进行交换,从而组合出更优的成员,基因座点发生调换。变异环节 — 通常以极低的几率实施,基因座点出现变异(一般数值范围在 0.001 至 0.01 之间)。遗传算法具备出色的启发式搜索能力,同时拥有并行计算的优势,它被广泛用于解决函数优化、组合优化以及生产调度等实际问题。

算法基本要素:

1、染色体编码方法 。

2、适应度函数。

3、遗传操作(选择、交叉、变异) 。

运行设置包括多个要素,其中包含群体规模 M, 需要经历的世代数量 G, 以及两个概率值, 分别是配对组合的可能性 Pc, 和基因突变的可能性 Pm。

1、种群初始化

个体采用数值表示,每个个体都是一个连续的实数序列,该序列从输入层开始,经过隐含层

网友留言(0)

评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。