神经网络权重更新的原理和方法
转自:https://blog.csdn.net/yangwohenmai1/article/details/96955667
导读:softmax的前世今生系列是作者在学习NLP神经网络时,以softmax层为何能对文本进行分类、预测等问题为入手点,顺藤摸瓜进行的一系列研究学习。其中包含:
1.softmax函数的正推原理,softmax的代数和几何意义,softmax为什么能用作分类预测,softmax链式求导的过程。
2.从数学的角度上研究了神经网络为什么能通过反向传播来训练网络的原理。
3.结合信息熵理论,对二元交叉熵为何适合作为损失函数进行了探讨。
通过对本系列的学习,你可以全面的了解softmax的来龙去脉。如果你尚不了解神经网络,通过本系列的学习,你也可以学到神经网络反向传播的基本原理。学完本系列,基本神经网络原理就算式入门了,毕竟神经网络基本的网络类型就那几种,很多变种,有一通百通的特点。
网上对softmax或是神经网络反向传播知识的整理,基本都通过一个长篇大论堆积出来,一套下来面面俱到但又都不精细。本文将每个环节拆开,分别进行详细介绍,即清晰易懂,又减轻了阅读负担,增加可读性。本文也借鉴了其他作者的内容,并列举引用,希望大家在学习过程中能有所收获
本章内容提要:从本系列第一篇文章开始学到这里时,你马上就要到达第二阶段的尾声,此时你完成了神经网络正向传播和反向传播原理的学习,了解了神经网络是如何工作的。知道了神经网络参数的自我修正原理:通过将损失函数计算得到的误差回到传网络内部,从而对网络参数进行修正。
本文介绍当网络中的权重接收到回传的误差后,如何修正权重值,以及为什么要这样修正。
一、权重更新表达式之前的文章已经讲过,网络通过求导得到的反向传播的误差为:
先给出几个结论
在神经网络反向传播过程中,有一个概念叫学习率,表示为:
权重更新公式的表达式为:
网络层中有一个偏置项b,之前为了简化计算省略掉了,其偏导数可以直接求得,更新公式如下:
二、原理介绍
作者在学习过程中,本文的笔记做的较为详尽,读者可以直接阅读文末笔记,此处我只讲解几个关键点。
1.权重为什么要减去反向传播的误差在写表达式的时候,权重更新是用原有权重减去反向传播的误差。但是反向传播的误差值可正可负,因此可以理解为当反向传播的误差为正时,减小权重的数值,当反向传播的误差为负时,增加权重的数值。
2.权重更新的数学意义前面已经分析过,在神经网络中,未知数是权重W,最终输出结果是损失函数Loss,此时如果将整个神经网络看成一个函数方程式,那么很显然方程中自变量x对应的是W,因变量y对应的是Loss。这是一个关于权重和损失函数的方程。
那么Loss对W求导的数学意义就是,这个神经网络当前参数状态下,所在位置对应图像中的斜率。而这个神经网络的图像往往是不可描述的多维图像。
那我们求斜率是为了做什么?为何更新权重时要减去Loss对W的偏导数,表达式如下:
更新权重时要减去Loss对W的偏导数这个想法其实是一个误区,Loss对W的导数的用处是告诉了我们更新权重的方向,即计算的时候到底是进行加法运算还是减法运算,而真正控制权重更新数值的是学习率η,也叫步长,就是每次更新数值的大小。
虽然我们选择的学习率η始终是一个定值,但是越接近最值的时候,这个坡度就会越缓,从而导数的值就越小,也就是乘积变小了,这就是看到步长变小的缘故。
3.权重更新的几何意义
了解完代数意义,再来看看几何意义,先来看一张图,帮助回想一下高中知识——导数:
如上图所示,如果图中的点P想走到最低点,点P就要向x轴的左测移动,即要加上一个负数,此时斜率为正数,因此更新时要减去(学习率*偏导数)。
同理,当点P在最低点左侧时,想到到达最低点,点P需要向x轴右移动,即要加上一个正数,此时斜率为负数,因此更新时要减去(学习率*偏导数)。
通过求导,找到点P运动的方向(导数),在设置一个每次移动的距离(学习率η),确定了这两个因素,我们就能一步一步的走向最低点。以上就是为了使得点P到达图中最低点,权重更新的几何意义。
下面笔记也做了描述。
三、总结
好了,现在一个完整的神经个网络流程已经呈现在我们面前:
输入→输出→softmax分类→损失函数→误差反向传播→修正权重数值→重头再来
本系列文章学到这里,基本完成了神经网络的进阶阶段,你几乎已经成为神经网络的专业人士了,解决分类预测问题更是不在话下。当然这不足以让我们满足,我们还有更高的目标,让我们从进阶阶段走向高端玩家阶段。
后面我们将学习如何对神经网络进行优化,我们会学习什么是梯度消失,什么是梯度爆炸,如何避免这些问题,学习率衰减是什么,怎么设置学习率更好,权重正则化是什么,怎么进行L1,L2正则化,什么是dropout,如何根据应用场景设计自己的损失函数,对于复杂的多层神经网络如何进行误差反向传播,如何求导,等等。是不是想想都有点小激动呢。
来吧让我们继续高端玩家进阶之路。
四、附学习笔记如下:
统计模式识别的原理与方法
1统计模式识别的原理与方法简介
1.1模式识别
什么是模式和模式识别?
广义地说,存在于时间和空间中可观察的事物,如果可以区别它们是否相同或相似,都可以称之为模式;狭义地说,模式是通过对具体的个别事物进行观测所得到的具有时间和空间分布的信息;把模式所属的类别或同一类中模式的总体称为模式类(或简称为类)]。而“模式识别”则是在某些一定量度或观测基础上把待识模式划分到各自的模式类中去。模式识别的研究主要集中在两方面,即研究生物体(包括人)是如何感知对象的,以及在给定的任务下,如何用计算机实现模式识别的理论和方法。前者是生理学家、心理学家、生物学家、神经生理学家的研究内容,属于认知科学的范畴;后者通过数学家、信息学专家和计算机科学工作者近几十年来的努力,已经取得了系统的研究成果。
一个计算机模式识别系统基本上是由三个相互关联而又有明显区别的过程组成的,即数据生成、模式分析和模式分类。数据生成是将输入模式的原始信息转换为向量,成为计算机易于处理的形式。模式分析是对数据进行加工,包括特征选择、特征提取、数据维数压缩和决定可能存在的类别等。模式分类则是利用模式分析所获得的信息,对计算机进行训练,从而制定判别标准,以期对待识模式进行分类。
有两种基本的模式识别方法,即统计模式识别方法和结构(句法)模式识别方法。统计模式识别是对模式的统计分类方法,即结合统计概率论的贝叶斯决策系统进行模式识别的技术,又称为决策理论识别方法。利用模式与子模式分层结构的树状信息所完成的模式识别工作,就是结构模式识别或句法模式识别。
模式识别已经在天气预报、卫星航空图片解释、工业产品检测、字符识别、语音识别、指纹识别、医学图像分析等许多方面得到了成功的应用。所有这些应用都是和问题的性质密不可分的,至今还没有发展成统一的有效的可应用于所有的模式识别的理论。
1.2统计模式识别
统计模式识别的基本原理是:有相似性的样本在模式空间中互相接近,并形成“集团”,即“物以类聚”。其分析方法是根据模式所测得的特征向量Xi=(xi1,xi2,…,xid)T(i=1,2,…,N),将一个给定的模式归入C个类ω1,ω2,…,ωc中,然后根据模式之间的距离函数来判别分类。其中,T表示转置;N为样本点数;d为样本特征数。
统计模式识别的主要方法有:判别函数法,k近邻分类法,非线性映射法,特征分析法,主因子分析法等。
在统计模式识别中,贝叶斯决策规则从理论上解决了最优分类器的设计问题,但其实施却必须首先解决更困难的概率密度估计问题。BP神经网络直接从观测数据(训练样本)学习,是更简便有效的方法,因而获得了广泛的应用,但它是一种启发式技术,缺乏指定工程实践的坚实理论基础。统计推断理论研究所取得的突破性成果导致现代统计学习理论——VC理论的建立,该理论不仅在严格的数学基础上圆满地回答了人工神经网络中出现的理论问题,而且导出了一种新的学习方法——支撑向量机]。
2统计模式识别的研究进展
2.1类条件概率分布的估计
考虑将待识样本X∈Rd判别为C个不同类ω1,ω2,…,ωc中的某一类。由贝叶斯定理,X应判为具最大后验概率的那一类。由于类条件概率分布未知,故通常假定分布为某一带参数的模型如多维正态分布(当多维正态分布中均值向量和协方差矩阵已知时,由此分布得到的二次判别函数是最优的),而表示分布的参数则由训练样本进行估计。当训练样本不充足时,分布参数包含估计误差影响识别精度。
为了提高分类精度,在参考文献8中,UjiieH等人提出了这样一个方法。首先,将给定数据进行变换(带指数函数的变换),使得变换后的数据更近似于正态分布,不论原数据所服从的分布如何,而且在理论上找到了最优变换;然后,为了处理这些变换后的数据,对传统的二次判别函数进行了修改;最后,提出了变换的一些性质并通过实验表明了该方法的有效性。
为了避免分类精度的降低,通过研究特征值的估计误差,提出了各种方法,但对特征向量的估计误差却考虑得不多。IwamuraM等人经过研究得出特征向量的估计误差是造成分类精度降低的另一个因素,因而在参考文献9中提出了通过修改特征值以弥补特征向量的估计误差的方法。
2.2线性判别法
20世纪90年代中期,统计学习理论和支撑向量机算法的成功引起了广大研究人员的重视。支撑向量机算法具有较扎实的理论基础和良好的推广能力,并在手写数字识别、文本分类等领域取得了良好的效果,它的一个引人注目的特点是利用满足Mercer条件的核函数实现非线性分类器的设计,而不需要知道非线性变换的具体形式[10]。Fisher判别法和主分量分析法是在模式分类与特征抽取中已经获得广泛应用的传统线性方法。近年出现的基于核函数的Fisher判别法与基于核函数的主分量分析法是它们的线性推广,其性能更好,适用范围更广,灵活性更高,是值得关注的应用前景看好的新方法。
在考虑两类问题且每类中的训练样本数大于样本的维数的情况下,参考文献14提出了基于训练样本来划分一个多维空间的两种方法,它们是Fisher线性判别法的两点改进。第一种方法——一维参数搜索;第二种方法——递归Fisher方法。这两种方法对模式检测问题比起标准的Fisher判别法来训练效果更好。利用Mercer核,可以将这两个方法推广到非线性决策面。
2.3贝叶斯分类器
模式识别的目的就是要将一个物体(由它的特征表示)判别为它所属的某一类。考虑两类的情况。采用贝叶斯分类器时,物体是按最大后验概率进行分类的,这由一个判别函数来完成。多数情况下,该判别函数是线性的或二次的。当类服从正态分布时,要找到最优线性分类器总是不可能的。就目前所知,都是协方差矩阵相等的情况。
与最优线性分类器相对,研究人员尝试各种方法来得到线性分类器,尽管这些方法找到了线性判别函数,但分类器却不是最优的。在参考文献15中,作者指出存在正态分布和不等协方差矩阵的其它情况判别函数是线性的且分类器是最优的。与前面研究的线性分类器相比,这里介绍的新方法得到两个正态分布类间的最优分类器是对偶的和线性的。文中确定了均值向量和协方差矩阵必须满足的条件以得到最优对偶线性分类器,解决了感知器的Minsky悖论。
具最优决策的贝叶斯分类器可以由概率神经网络来实现。
可以用非线性动态系统(NonlinearDynamicalSystem,简记为NDS)的集合来对模式进行分类,其中每个NDS将输入值分类为IN或OUT类型。输入值通过每一个NDS进行迭代并沿着一个轨道收敛到一个全局稳定吸引子(attractor),它是该NDS所代表的类的原型。参考文献18的作者先前提出了一种“RacetoTheAttractor”神经网络(RTANN)模型方法,与传统的神经网络方法相比,这一方法受益于与人的大脑联系更广的几个有利条件。然而,该方法缺乏详细的数学分析。
要从杂乱的背景图像中检测出诸如人、脸和汽车等是一个广泛应用的方法。许多应用系统需要准确而快速的检测。换句话说,降低检测错误和减少计算复杂性是两个主要的问题。很多目标检测的工作集中在性能改善上,而对复杂性问题注意很少。有人通过在贝叶斯决策规则下的误差分析,减少检测时系数的数量来降低计算开销,采用隐式Markov树(HMT)模型来描述模式分布,引入概念error-bound-tree(EBT)建立特征选择与误差降低的联系。
2.4误差界
最小分类错误(MCE)训练准则,与其它判别训练准则如极大交互信息(MMI)准则等是统计模式识别中训练模型参数的标准极大似然(ML)准则的重要选择。MCE准则表示对给定的分类器训练数据的试验错误率的光滑模型。由于训练准则和降低错误率的最终目标之间的直接关系,MCE训练的分类器不会太依赖于某个模型假设的性质,正如ML和MMI训练那样的情况。已证明MCE准则给出了一个独立于相应的模型分布的贝叶斯错误率的上界。还证明了与模型无关的MCE准则导出了在有限训练样本的渐近情况下的一个封闭解。在导出贝叶斯错误率时,结果模型分布与真分布(代表训练数据)不同。
有研究者按照训练样本的分类间隔数利用概率近似校正(PAC)的贝叶斯结构提出了线性分类器的一般误差的一个界。
一个有用的概念,即由相同的训练数据构造出来的分类器之间的弱相关。结果表明,如果弱相关低且期望的分类间隔大,那么基于这些分类器的线性组合的决策规则可以使错误率成指数级减少。
2.5新的模式识别方法
2.5.1共享核函数模型
概率密度估计构成一个无监督的方法,该方法试图从所得到的没有标记的数据集中建立原始密度函数的模型。密度估计的一个重要应用就是它可以被用于解决分类问题。
广泛应用于统计模式识别中密度估计的方法之一是基于混合密度模型的。根据期望最大(EM)算法得到了这些模型中有效的训练过程。在参考文献23中,作者指出,按照共享核函数可以得出条件密度估计的更一般的模型,这里类条件密度可以用一些对所有类的条件密度估计产生作用的核函数表示。作者首先提出了一个模型,该模型对经典径向基函数(RBF)网络进行了修改,其输出表示类条件密度。与其相反的是独立混合模型的方法,其中每个类的密度采用独立混合密度进行估计。最后提出了一个更一般的模型,上面提到的模型是这个模型的特殊情况。
2.5.2粗糙集理论(RoughSetTheory,简记RST)方法
在20世纪70年代,波兰学者PawlakZ和一些波兰的逻辑学家们一起从事关于信息系统逻辑特性的研究。粗糙集理论就是在这些研究的基础上产生的。1982年,PawlakZ发表了经典论文RoughSets,宣告了粗糙集理论的诞生。此后,粗糙集理论引起了许多科学家、逻辑学家和计算机研究人员的兴趣,他们在粗糙集的理论和应用方面作了大量的研究工作。1991年,PawlakZ的专著和1992年应用专集的出版,对这一段时期理论和实践工作的成果作了较好的总结,同时促进了粗糙集在各个领域的应用。此后召开的与粗糙集有关的国际会议进一步推动了粗糙集的发展。越来越多的科技人员开始了解并准备从事该领域的研究。目前,粗糙集已成为人工智能领域中一个较新的学术热点,在模式识别、机器学习、知识获取、决策分析、过程控制等许多领域得到了广泛的应用]。
模拟传感器信号的一个方法,在点的非空不可数集合下实现集合的近似,引入了基于粗糙集理论的离散粗糙积分。离散粗糙积分有助于近似推理和模式识别中连续信号的分割。在近似推理中,离散粗糙积分为确定某特定采样期间传感器的相关性提供一个基。在模式识别中,离散粗糙积分可用于如雷达天气数据的分类、汽车模式分类及动力系统故障波形分类等方面。
粗糙集理论是处理模糊和不确定性的一个新的数学工具。用粗糙集理论构造决策规则的算法一般都是考虑决策规则的数量而不是它们的代价。采用多目标决策来协调规则的简明性和代价之间的冲突,以及提高粗糙集的效率和效力。
基于模式识别方法的动力系统瞬态稳定性估计(TSA)通常按两个模式的分类问题进行处理,即区分稳定和不稳定类。其中有两个基本问题:(1)选择一组有效的特征;(2)建立一个具有高精度分类的模式分类器。参考文献28将粗糙集理论与向后传播的神经网络(BPNN)相结合来进行瞬态稳定性估计,包括特征提取和分类器构造。首先,通过初始输入特征的离散化,利用基于RST的诱导学习算法来简化初始特征集。然后,利用采用半监督学习算法的BPNN作为一个“粗糙分类器”将系统稳定性分为三类,即稳定类、不稳定类和不确定类(边界区域)。不确定类的引入提供了减少误分类的一个切实可行的方法,且分类结果的可靠性也因此而大大提高。
2.5.3仿生模式识别(拓扑模式识别)
一种模式识别理论的新模型,它是基于“认识”事物而不是基于“区分”事物为目的。与传统以“最佳划分”为目标的统计模式识别相比,它更接近于人类“认识”事物的特性,故称为“仿生模式识别”。它的数学方法在于研究特征空间中同类样本的连续性(不能分裂成两个彼此不邻接的部分)特性。文中用“仿生模式识别”理论及其“高维空间复杂几何形体覆盖神经网络”识别方法,对地平面刚性目标全方位识别问题作了实验。对各种形状相像的动物及车辆模型作全方位8800次识别,结果正确识别率为99.75%,错误识别率与拒识率分别为0与0.25%。
3结语
模式识别从20世纪20年代发展至今,人们的一种普遍看法是不存在对所有模式识别问题都适用的单一模型和解决识别问题的单一技术,我们现在拥有的只是一个工具袋,所要做的是结合具体问题把统计的和句法的识别结合起来,把统计模式识别或句法模式识别与人工智能中的启发式搜索结合起来,把统计模式识别或句法模式识别与支持向量机的机器学习结合起来[30],把人工神经元网络与各种已有技术以及人工智能中的专家系统、不确定推理方法结合起来,深入掌握各种工具的效能和应有的可能性,互相取长补短,开创模式识别应用的新局面。
【智能算法第一期】蚁群算法原理和多种改进方法
1.什么是蚁群算法?蚁群算法的本身来源于一种生物的自然现象,即蚂蚁在寻找食物过程中发现路径的行为,是一种模拟进化的算法。蚁群算法的寻优快速性是由通过正反馈式的信息传递和积累来实现的,分布式计算特征可以避免算法的早熟收敛,与此同时,具有贪婪式启发搜索特征的蚁群系统还可以在搜索过程的初期阶段寻找到可以接受的问题解答。生物学家的长时间观察发现,蚂蚁是通过分泌空间中的信息素来实现信息的交流从而实现群体行为
2.蚁群算法的基本原理蚂蚁在觅食过程中能够在其经过的路上留下一种称之为信息素的物质,并在觅食过程中能够感知这些物质的强度,作为指导自己行为的方向,他们一定是朝着该物质强度高的方向移动,因此大量蚂蚁组成的集体觅食就表现为一种对信息素正反馈的现象。
某一条路径越短,路径上经过的蚂蚁越多,其信息素遗留的也就越多,信息素的浓度也就越高,蚂蚁选择这条路径的概率也就越大,由此构成了正反馈过程,从而逼近了最优路径,找到最优路径。当蚂蚁从食物源走到蚁穴,或者从蚁穴走到食物的地方,都会在经过的路上释放信息素,蚂蚁可以感觉出路径上信息素浓度的大小,并且以较高的概率选择信息素浓度较高的路径。
人工蚂蚁搜索包含了3种智能行为:
1.蚂蚁利用信息素进行相互通信。蚂蚁在所选择的路径上会释放一种信息素的物质,当其他蚂蚁进行路径选择时,会根据路径上的信息素浓度进行选择,这样信息素就会作为蚂蚁之间通信的媒介
2.蚂蚁的记忆行为。一只蚂蚁搜索过的路径在下次搜索时就不再被该蚂蚁选择,因此在蚁群算法种建立禁忌表进行模拟。
3.蚂蚁的集群活动。通过一只蚂蚁的运动很难达到食物源,但整个蚁群进行搜索就完全不同。当某些路径上通过的蚂蚁越来越多时,路径上留下的信息素数量也就越多,导致信息素强度增大,蚂蚁选择该路径的概率随之增大,从而进一步增加该路径的信息素强度,而通过的蚂蚁较少的路径上的信息素会随着时间的推移而挥发,从而变得越来越少。
3.蚁群算法实现的重要规则3.1避障规则蚂蚁如果在移动的方向上有障碍物挡住,它会随机选择另一个方向,并且有信息素指引的话,它会按照觅食的规则行为
3.2播撒信息素规则每只蚂蚁在刚找到食物或者窝的时候散发的信息素最多,并随着它走远的距离播撒的信息素也越来越少。
3.3范围蚂蚁观察到的范围是一个方格世界,蚂蚁有一个参数为速度半径(一般为3),那么他能观察到的范围就是一个3X3个方格世界,并且能移动的距离也在这个范围以内
3.4移动规则每只蚂蚁都朝向信息素最多的方向移动,并且当周围没有信息素引导的时候,蚂蚁就会按照自己原来运动的方向惯性移动下去,并且在运动方向有一个随机的小扰动。为了防止蚂蚁原地转圈,它会记住最近刚走过哪些点,如果发现要走的下一个点已经最近走过了,它会刻意去避开。
3.5觅食规则在每只蚂蚁能感知的范围内寻找是否有食物,如果有就直接走过去,否则看是否有信息素,并且比较在能感知的范围内哪一点的信息素最多,这样,它就朝信息素多的地方走,并且每只蚂蚁都会以小概率犯错误,从而并不是往信息素最多的点移动。蚂蚁找窝的规则和上面一样,只不过它对窝的信息素做出反应,而对食物信息素没反应。
3.6环境蚂蚁所在的环境是一个虚拟的世界,其中有障碍物,有别的蚂蚁,还有信息素,信息素有两种,一种是找到食物的蚂蚁洒下的食物信息素,一种是找到窝的蚂蚁洒下的窝的信息素。每个蚂蚁都仅仅能感知它范围内的环境信息。环境以一定的速率让信息素消失。
根据这几条规则,蚂蚁之间并没有直接的关系,但是每只蚂蚁都和环境发生交互,而通过信息素这个纽带,实际上把各个蚂蚁之间关联起来了。比如,当一只蚂蚁找到了食物,它并没有直接告诉其它蚂蚁这儿有食物,而是向环境播撒信息素,当其他的蚂蚁经过它附近的时候,就会感觉到信息素的存在,进而根据信息素的指引找到了食物。
4蚁群算法的特点蚁群算法是通过对生物特征的模拟得到的一种计算算法,其本身具有很多特点。
4.1蚁群算法是一种本质上并行的算法每只蚂蚁搜素过程彼此独立,仅通过信息激素进行通信。所以蚁群算法则可以看作是一个分布式的多智能体系统,它在问题空间的多点同时开始进行独立的解搜索,不仅增加了算法的可靠性,也使得算法具有较强的全局搜索能力。
4.2蚁群算法是一种自组织的算法所谓自组织,就是组织力或组织指令是来自于系统的内部,区别于它组织。如果系统在获得空间的、时间的或者功能结果的过程中,没有外界的特定干预,便说系统是自组织的。简单地说,就是即是系统从无序到有序的变化过程。
以蚂蚁群体优化为例子说明。当算法开始的初期,单个的人工蚂蚁无序的寻找解,算法经过一段时间的演化,人工蚂蚁间通过信息激素的作用,自发地越来越趋向于寻找到接近最优解的一些解,这就是一个无序到有序的过程。
4.3蚁群算法具有较强的鲁棒性相对于其他算法,蚁群算法对初始路线要求不高,即蚁群算法的求解结果不依赖于初始线路的选择,而在搜素过程中不需要进行人工的调整。其次,蚁群算法的参数数目少,设置简单,易于蚁群算法应用到其他组合优化问题的求解。
4.4蚁群算法是一种正反馈的算法从真实蚂蚁的觅食过程中不难看出,蚂蚁能够最终找到最短路径,直接依赖于最短路径上信息激素的堆积,而信息激素的堆积却是一个正反馈的过程。正反馈是蚂蚁算法的重要特征,它使得算法演化过程得以进行。
5经典蚁群算法5.1蚂蚁系统蚂蚁系统是最早的蚁群算法,其搜索过程大概如下:在初始时刻,只蚂蚁随机放置于城市中,各条路径上的信息素初始值相等,设为信息素初始值,可设,是由最近邻启发式方法构造的路径长度。其次,蚂蚁,按照随机比例规则选择下一步要转移的城市,其选择概率为
其中,为边上的信息素;为从城市到城市的启发式因子;为蚂蚁下一步被允许访问的城市集合。
为了不让蚂蚁选择已经访问过的城市,采用禁忌表来记录蚂蚁当前所走过的城市。经过时刻,所有蚂蚁都完成一次周游,计算每只蚂蚁所走过的路径长度,并保存最短的路径长度,同时,更新各边上的信息素。首先是信息素挥发,其次是蚂蚁在它们所经过的边上释放信息素,其公式为
其中,是第只蚂蚁向它经过的边释放的信息素,定义为
根据上式可知,蚂蚁构建的路径长度越小,则路径上各条边就会获得更多的信息素,则在以后的迭代中就更有可能被其他的蚂蚁选择。
蚂蚁完成一次循环后,清空禁忌表,重新回到初始城市,准备下一次周游。
大量的仿真实验发现,蚂蚁系统在解决小桂妈TSP问题时性能尚可,能较快的发现最优解,但随着测试问题规模的扩大,蚁群系统算法的性能下降的比较严重,容易出现停滞现象。因此,出现了大量的针对其缺点的改进算法。
5.2精英蚂蚁系统精英蚂蚁系统是对基本蚁群系统算法的第一次改进,它首先由Dorigo等人中提出,它的设计思想是对算法每次循环之后给予最优路径额外的信息素量,找出这个解的蚂蚁成为精英蚂蚁。
将这条最有路径记为,针对路径的额外强化是通过向中的每一条边增加大小的信息素得到的,其中是一个参数,它定义了给予路径的权值大小,代表了的长度。这样相应的信息素的更新公式为
其中,的定义方法跟以前的相同;的定义为
Dorigo等人的文章列举的计算结果表明,使用经营策略并选取一个适当的值将使得蚂蚁系统算法不但可以得到更好的解,而且能够在更少的迭代次数下得到一些更好的解。
5.3最大-最小蚂蚁系统最大-最小蚂蚁系统是到目前为止解决TSP问题最好的ACA算法方案之一。最大-最小蚂蚁系统算法是在蚂蚁系统算法的基础之上,主要作了如下的改进。
(1)将各条路径可能的外激素浓度限制于,超出这个范围的值被强制设为或者是,可以避免算法过早收敛于局部最优解,有效地避免某条路径上的信息量远大于其余路径,避免所有蚂蚁都集中到同一条路径上。
(2)信息素的初始值被设定为其取值范围的上界。在算法的初始时刻,取较小的值时,算法有更好的发现较好解的能力。
(3)强调对最优解的利用。每次迭代结束后,只有最优解所属路径上的信息被更新,从而更好地利用了历史信息。
所有蚂蚁完成一次迭代后,对路径上的信息做全局更新,即
允许更新的路径可以时全局最优解,或本次迭代的最优解。实践证明逐渐增加全局最优解的使用频率,会使该算法获得较好的性能。
5.4基于排序的蚁群算法基于排序的蚂蚁系统是对蚂蚁系统算法的一种改进。其改进思想是:在每次迭代完成后,蚂蚁所经路径将按从小到大的顺序排列,即,算法根据路径长度赋予不同的权重,路径长度越短,权重越大。全局最优解的权重为,第个最优解的权重为,则ASrank的信息素更新规则为
其中
5.5蚁群系统蚁群系统是由Dorigo等人提出来的改进的蚁群算法,它与蚂蚁系统的不同之处主要体现在以下3个方面。
(1)除了全局信息素更新规则外,还采用了局部信息素更新规则。
(2)信息素挥发和信息素释放动作只在至今最优路径的边上执行,即每次迭代之后只有至今最优蚂蚁被允许释放信息素。
(3)采用不同的路径选择规则,能更好地利用蚂蚁所积累的搜索经验。
在蚁群系统中,位于城市的蚂蚁,根据伪随机比例规则选择城市作为下一个访问的城市。路径选择规则的公式为
其中,是均匀分布在区间中的一个随机变量;是一个参数;是根据以上公式给出的概率分布产生出来的一个随机变量(其中)。
蚁群系统的全局信息素更新规则为
蚁群系统的局部信息素更新规则定义如下:
在路径构建过程中,蚂蚁每经过一条边,都将立刻调用这条规则更新该边上的信息素,即
其中,和是两个参数,满足;是信息素量的初始值。局部更新的作用在于,蚂蚁每一次经过边,该边的信息素将会减少,从而使得其他蚂蚁选中该边的概率相对减少。
6自适应蚁群算法蚁群算法在构造解的过程中,利用随机选择策略,这种选择策略使得进化速度较慢,正反馈原理旨在强化性能较好的解,却容易出现停滞现象。
在选择策略方面采用确定性选择和随机选择相结合的选择策略,并且在搜索过程中动态的调整确定性选择的概率。当进化到一定代数后,进化方向已经基本确定,这时对路径上信息量做动态调整。
缩小最好和最差路径上的信息量的差距,并且适当放大随机选择的概率,以小于1对解空间的更完全搜索,可以有效地克服基本蚁群算法的不足,此算法属于自适应算法。
蚂蚁在行进过程中常常选择信息量较大的路径,但当许多蚂蚁选中同一条路径是,该路径中的信息量就会陡然增大,从而使得多只蚂蚁集中到某一条路径上,造成一种堵塞和停滞现象,表现在使用蚁群算法解决问题时就容易导致早熟和局部收敛。
自适应蚁群算法建立了一种新的自适应的信息量更新策略。
当问题规模较大时,由于信息量挥发系数的存在,使那些从未被搜索过的路径上的信息量减少到接近于0,从而降低了算法在这些路径上的搜索能力;反之,当某条路径中信息量较大时,这些路径中的信息量增大,搜索过的路径再次被选择的机会就会变得较大。
搜素过的路径被再次选择的机会变大,会影响算法的全局搜索能力,此时通过固定地变化挥发系数虽然可以提高全局搜索能力,但却使得算法的收敛速度降低。
自适应蚁群算法提出一种自适应的变化值的方法,将信息素更新的公式为
其中,为连续收敛次数,是一个于收敛次数成正比的函数,收敛次数越多,的取值越大(为常数)。
根据解的分布情况自适应地进行信息量的更新,从而动态地调整各路径上的信息量强度,使蚂蚁既不过分集中也不过分分散,从而避免了早熟和局部收敛,提高全局搜索能力。
改进的蚁群算法的代码框架描述如下:
上述算法程序根据解的分布情况自适应地进行信息量的更新,从而动态地调整了路径上的信息量强度,增加了解空间的多样性,提高了全局搜索能力,避免了局部收敛和早熟现象。
改进后的蚁群算法具有比传统蚁群算法和MMAS蚁群算法更强的搜索全局最优解的能力,并具有更好的稳定性和收敛性。
注明:本博客内容取自某些书籍或者网络其他来源,如有侵权请联系博主进行删除,谢谢