智能算法综述
摘要:随着计算机技术的飞速发展,智能计算方法的应用领
域也越来越广泛,本文介绍了当前存在的一些智能计算方法,
阐述了其工作原理和特点,同时对智能计算方法的发展进行
了展望。
关键词:人工神经网络 遗传算法 模拟退火算法 群集智能
蚁群算法 粒子群算
1 什么是智能算法
智能计算也有人称之为“软计算”,是们受自然(生物界)规律
的启迪,根据其原理,模仿求解问题的算法。从自然界得到
启迪,模仿其结构进行发明创造,这就是仿生学。这是我们
向自然界学习的一个方面。另一方面,我们还可以利用仿生
原理进行设计(包括设计算法),这就是智能计算的思想。这方
面的内容很多,如人工神经网络技术、遗传算法、模拟退火
算法、模拟退火技术和群集智能技术等。
2 人工神经网络算法
“人工神经网络”(ARTIFICIAL NEURAL NETWORK,简称
ANN)是在对人脑组织结构和运行机制的认识理解基础之上
模拟其结构和智能行为的一种工程系统。早在本世纪 40 年代
初期,心理学家 McCulloch、数学家 Pitts 就提出了人工神经
网络的第一个数学模型,从此开创了神经科学理论的研究时
代。其后,F Rosenblatt、Widrow 和 J. J .Hopfield 等学者又先
后提出了感知模型,使得人工神经网络技术得以蓬勃发展。
神经系统的基本构造是神经元(神经细胞),它是处理人体内各
部分之间相互信息传递的基本单元。据神经生物学家研究的
结果表明,人的一个大脑一般有 1010~1011 个神经元。每个
神经元都由一个细胞体,一个连接其他神经元的轴突和一些
向外伸出的其它较短分支——树突组成。轴突的功能是将本
神经元的输出信号(兴奋)传递给别的神经元。其末端的许多神
经末梢使得兴奋可以同时传送给多个神经元。树突的功能是
接受来自其它神经元的兴奋。神经元细胞体将接受到的所有
信号进行简单处理(如:加权求和,即对所有的输入信号都加
以考虑且对每个信号的重视程度——体现在权值上——有所
不同)后由轴突输出。神经元的树突与另外的神经元的神经末
梢相连的部分称为突触。
人工神经网络的特点
人工神经网络是由大量的神经元广泛互连而成的系统,它的
这一结构特点决定着人工神经网络具有高速信息处理的能力。
人脑的每个神经元大约有 103~104 个树突及相应的突触,一
个人的大脑总计约形成 1014~1015 个突触。用神经网络的术
语来说,即是人脑具有 1014~1015 个互相连接的存储潜力。
虽然每个神经元的运算功能十分简单,且信号传输速率也较
低(大约 100 次/秒),但由于各神经元之间的极度并行互连功能,
最终使得一个普通人的大脑在约 1 秒内就能完成现行计算机
至少需要数 10 亿次处理步骤才能完成的任务。
人工神经网络的知识存储容量很大。在神经网络中,知识与
信息的存储表现为神经元之间分布式的物理联系。它分散地
表示和存储于整个网络内的各神经元及其连线上。每个神经
元及其连线只表示一部分信息,而不是一个完整具体概念。
只有通过各神经元的分布式综合效果才能表达出特定的概念
和知识。
由于人工神经网络中神经元个数众多以及整个网络存储信息
容量的巨大,使得它具有很强的不确定性信息处理能力。即
使输入信息不完全、不准确或模糊不清,神经网络仍然能够
联想思维存在于记忆中的事物的完整图象。只要输入的模式
接近于训练样本,系统就能给出正确的推理结论。
正是因为人工神经网络的结构特点和其信息存储的分布式特
点,使得它相对于其它的判断识别系统,如:专家系统等,
具有另一个显著的优点:健壮性。生物神经网络不会因为个
别神经元的损失而失去对原有模式的记忆。最有力的证明是,
当一个人的大脑因意外事故受轻微损伤之后,并不会失去原
有事物的全部记忆。人工神经网络也有类似的情况。因某些
原因,无论是网络的硬件实现还是软件实现中的某个或某些
神经元失效,整个网络仍然能继续工作。
人工神经网络是一种非线性的处理单元。只有当神经元对所
有的输入信号的综合处理结果超过某一门限值后才输出一个
信号。因此神经网络是一种具有高度非线性的超大规模连续
时间动力学系统。它突破了传统的以线性处理为基础的数字
电子计算机的局限,标志着人们智能信息处理能力和模拟人
脑智能行为能力的一大飞跃。
几种典型神经网络简介
多层感知网络(误差逆传播神经网络)
在 1986 年以 Rumelhart 和 McCelland 为首的科学家出版的
《Parallel Distributed Processing》一书中,完整地提出了误差
逆传播学习算法,并被广泛接受。多层感知网络是一种具有
三层或三层以上的阶层型神经网络。典型的多层感知网络是
三层、前馈的阶层网络,即:输入层 I、隐含层(也称中间层)J
和输出层 K。相邻层之间的各神经元实现全连接,即下一层
的每一个神经元与上一层的每个神经元都实现全连接,而且
每层各神经元之间无连接。
但 BP 网并不是十分的完善,它存在以下一些主要缺陷:学习
收敛速度太慢、网络的学习记忆具有不稳定性,即:当给一
个训练好的网提供新的学习记忆模式时,将使已有的连接权
值被打乱,导致已记忆的学习模式的信息的消失。①
竞争型(KOHONEN)神经网络
它是基于人的视网膜及大脑皮层对剌激的反应而引出的。神
经生物学的研究结果表明:生物视网膜中,有许多特定的细
胞,对特定的图形(输入模式)比较敏感,并使得大脑皮层中的
特定细胞产生大的兴奋,而其相邻的神经细胞的兴奋程度被
抑制。对于某一个输入模式,通过竞争在输出层中只激活一
个相应的输出神经元。许多输入模式,在输出层中将激活许
多个神经元,从而形成一个反映输入数据的“特征图形”。竞争
型神经网络是一种以无教师方式进行网络训练的网络。它通
过自身训练,自动对输入模式进行分类。竞争型神经网络及
其学习规则与其它类型的神经网络和学习规则相比,有其自
己的鲜明特点。在网络结构上,它既不象阶层型神经网络那
样各层神经元之间只有单向连接,也不象全连接型网络那样
在网络结构上没有明显的层次界限。它一般是由输入层(模拟
视网膜神经元)和竞争层(模拟大脑皮层神经元,也叫输出层)
构成的两层网络。两层之间的各神经元实现双向全连接,而
且网络中没有隐含层。有时竞争层各神经元之间还存在横向
连接。竞争型神经网络的基本思想是网络竞争层各神经元竞
争对输入模式的响应机会,最后仅有一个神经元成为竞争的
胜者,并且只将与获胜神经元有关的各连接权值进行修正,
使之朝着更有利于它竞争的方向调整。神经网络工作时,对
于某一输入模式,网络中与该模式最相近的学习输入模式相
对应的竞争层神经元将有最大的输出值,即以竞争层获胜神
经元来表示分类结果。这是通过竞争得以实现的,实际上也
就是网络回忆联想的过程。
除了竞争的方法外,还有通过抑制手段获取胜利的方法,即
网络竞争层各神经元抑制所有其它神经元对输入模式的响应
机会,从而使自己“脱颖而出”,成为获胜神经元。除此之外还
有一种称为侧抑制的方法,即每个神经元只抑制与自己邻近
的神经元,而对远离自己的神经元不抑制。这种方法常常用
于图象边缘处理,解决图象边缘的缺陷问题。
竞争型神经网络的缺点和不足:因为它仅以输出层中的单个
神经元代表某一类模式。所以一旦输出层中的某个输出神经
元损坏,则导致该神经元所代表的该模式信息全部丢失。
Hopfield 神经网络
1986 年美国物理学家 陆续发表几篇论文,提出了
Hopfield 神经网络。他利用非线性动力学系统理论中的能量函
数方法研究反馈人工神经网络的稳定性,并利用此方法建立
求解优化计算问题的系统方程式。基本的 Hopfield 神经网络
是一个由非线性元件构成的全连接型单层反馈系统。
网络中的每一个神经元都将自己的输出通过连接权传送给所
有其它神经元,同时又都接收所有其它神经元传递过来的信
息。即:网络中的神经元 t 时刻的输出状态实际上间接地与自
己的 t-1 时刻的输出状态有关。所以 Hopfield 神经网络是一个
反馈型的网络。其状态变化可以用差分方程来表征。反馈型
网络的一个重要特点就是它具有稳定状态。当网络达到稳定
状态的时候,也就是它的能量函数达到最小的时候。这里的
能量函数不是物理意义上的能量函数,而是在表达形式上与
物理意义上的能量概念一致,表征网络状态的变化趋势,并
可以依据 Hopfield 工作运行规则不断进行状态变化,最终能
够达到的某个极小值的目标函数。网络收敛就是指能量函数
达到极小值。如果把一个最优化问题的目标函数转换成网络
的能量函数,把问题的变量对应于网络的状态,那么 Hopfield
神经网络就能够用于解决优化组合问题。
对于同样结构的网络,当网络参数(指连接权值和阀值)有所变
化时,网络能量函数的极小点(称为网络的稳定平衡点)的个数
和极小值的大小也将变化。因此,可以把所需记忆的模式设
计成某个确定网络状态的一个稳定平衡点。若网络有 M 个平
衡点,则可以记忆 M 个记忆模式。
当网络从与记忆模式较靠近的某个初始状态(相当于发生了某
些变形或含有某些噪声的记忆模式,也即:只提供了某个模
式的部分信息)出发后,网络按 Hopfield 工作运行规则进行状
态更新,最后网络的状态将稳定在能量函数的极小点。这样
就完成了由部分信息的联想过程。
Hopfield 神经网络的能量函数是朝着梯度减小的方向变化,但
它仍然存在一个问题,那就是一旦能量函数陷入到局部极小
值,它将不能自动跳出局部极小点,到达全局最小点,因而
无法求得网络最优解。
3 遗传算法
遗传算法(Genetic Algorithms)是基于生物进化理论的原理发
展起来的一种广为应用的、高效的随机搜索与优化的方法。
其主要特点是群体搜索策略和群体中个体之间的信息交换,
搜索不依赖于梯度信息。它是在 70 年代初期由美国密执根
(Michigan)大学的霍兰(Holland)教授发展起来的。1975
年霍兰教授发表了第一本比较系统论述遗传算法的专著《自
然系统与人工系统中的适应性》(《Adaptation in Natural and
Artificial Systems》)。遗传算法最初被研究的出发点不是为专
门解决最优化问题而设计的,它与进化策略、进化规划共同
构成了进化算法的主要框架,都是为当时人工智能的发展服
务的。迄今为止,遗传算法是进化算法中最广为人知的算法。
近几年来,遗传算法主要在复杂优化问题求解和工业工程领
域应用方面,取得了一些令人信服的结果,所以引起了很多
人的关注。在发展过程中,进化策略、进化规划和遗传算法
之间差异越来越小。遗传算法成功的应用包括:作业调度与
排序、可靠性设计、车辆路径选择与调度、成组技术、设备
布置与分配、交通问题等等。
特点
遗传算法是解决搜索问题的一种通用算法,对于各种通用问
题都可以使用。搜索算法的共同特征为: ① 首先组成一组候
选解; ① 依据某些适应性条件测算这些候选解的适应度; ①
根据适应度保留某些候选解,放弃其他候选解; ① 对保留的
候选解进行某些操作,生成新的候选解。在遗传算法中,上
述几个特征以一种特殊的方式组合在一起:基于染色体群的
并行搜索,带有猜测性质的选择操作、交换操作和突变操作。
这种特殊的组合方式将遗传算法与其它搜索算法区别开来。
遗传算法还具有以下几方面的特点:
(1)遗传算法从问题解的串集开始嫂索,而不是从单个解开始。
这是遗传算法与传统优化算法的极大区别。传统优化算法是
从单个初始值迭代求最优解的;容易误入局部最优解。遗传
算法从串集开始搜索,覆盖面大,利于全局择优。(2)许多传
统搜索算法都是单点搜索算法,容易陷入局部的最优解。遗
传算法同时处理群体中的多个个体,即对搜索空间中的多个
解进行评估,减少了陷入局部最优解的风险,同时算法本身
易于实现并行化。
(3)遗传算法基本上不用搜索空间的知识或其它辅助信息,而
仅用适应度函数值来评估个体,在此基础上进行遗传操作。
适应度函数不仅不受连续可微的约束,而且其定义域可以任
意设定。这一特点使得遗传算法的应用范围大大扩展。
(4)遗传算法不是采用确定性规则,而是采用概率的变迁规则
来指导他的搜索方向。
(5)具有自组织、自适应和自学习性。遗传算法利用进化过程
获得的信息自行组织搜索时,硬度大的个体具有较高的生存
概率,并获得更适应环境的基因结构。
运用领域
前面描述是简单的遗传算法模型,可以在这一基本型上加以
改进,使其在科学和工程领域得到广泛应用。下面列举了一
些遗传算法的应用领域: ① 优化:遗传算法可用于各种优化
问题。既包括数量优化问题,也包括组合优化问题。 ① 程序
设计:遗传算法可以用于某些特殊任务的计算机程序设计。 ①
机器学习:遗传算法可用于许多机器学习的应用,包括分类
问题和预测问题等。 ① 经济学:应用遗传算法对经济创新的
过程建立模型,可以研究投标的策略,还可以建立市场竞争
的模型。 ① 免疫系统:应用遗传算法可以对自然界中免疫系
统的多个方面建立模型,研究个体的生命过程中的突变现象
以及发掘进化过程中的基因资源。 ① 进化现象和学习现象:
遗传算法可以用来研究个体是如何学习生存技巧的,一个物
种的进化对其他物种会产生何种影响等等。 ① 社会经济问题:
遗传算法可以用来研究社会系统中的各种演化现象,例如在
一个多主体系统中,协作与交流是如何演化出来的。
4 模拟退火算法
模拟退火算法来源于固体退火原理,将固体加温至充分高,
再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,
内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到
平衡态,最后在常温时达到基态,内能减为最小。根据
Metropolis 准则,粒子在温度 T 时趋于平衡的概率为 e-Δ
E/(kT),其中 E 为温度 T 时的内能,ΔE 为其改变量,k 为
Boltzmann 常数。用固体退火模拟组合优化问题,将内能 E 模
拟为目标函数值 f ,温度 T 演化成控制参数 t,即得到解组合
优化问题的模拟退火算法:由初始解 i 和控制参数初值 t 开始,
对当前解重复“产生新解→计算目标函数差→接受或舍弃”的迭
代,并逐步衰减 t 值,算法终止时的当前解即为所得近似最优
解,这是基于蒙特卡罗迭代求解法的一种启发式随机搜索过
程。退火过程由冷却进度表(Cooling Schedule)控制,包括控制
参数的初值 t 及其衰减因子Δt、每个 t 值时的迭代次数 L 和停
止条件 S。
5 群体(群集)智能(Swarm Intelligence)
受社会性昆虫行为的启发,计算机工作者通过对社会性昆虫
的模拟产生了一系列对于传统问题的新的解决方法,这些研
究就是群集智能的研究。群集智能(Swarm Intelligence)中的群
体(Swarm)指的是“一组相互之间可以进行直接通信或者间接通
信(通过改变局部环境)的主体,这组主体能够合作进行分布问
题求解”。而所谓群集智能指的是“无智能的主体通过合作表现
出智能行为的特性”。群集智能在没有集中控制并且不提供全
局模型的前提下,为寻找复杂的分布式问题的解决方案提供
了基础。
群集智能的特点和优点:群体中相互合作的个体是分布式的
(Distributed),这样更能够适应当前网络环境下的工作状态; 没
有中心的控制与数据,这样的系统更具有鲁棒性(Robust),不
会由于某一个或者某几个个体的故障而影响整个问题的求解。
可以不通过个体之间直接通信而是通过非直接通信(Stimergy)
进行合作,这样的系统具有更好的可扩充性(Scalability)。由于
系统中个体的增加而增加的系统的通信开销在这里十分小。
系统中每个个体的能力十分简单,这样每个个体的执行时间
比较短,并且实现也比较简单,具有简单性(Simplicity)。因为
具有这些优点,虽说群集智能的研究还处于初级阶段,并且
存在许多困难,但是可以预言群集智能的研究代表了以后计
算机研究发展的一个重要方向。
在计算智能(Computational Intelligence)领域有两种基于群智
能的算法,蚁群算法(Ant Colony Optimization)和粒子群算法
(Particle Swarm Optimization),前者是对蚂蚁群落食物采集过
程的模拟,已经成功运用在很多离散优化问题上。
蚁群优化算法
受蚂蚁觅食时的通信机制的启发,90 年代 Dorigo 提出了蚁群
优化算法(Ant Colony Optimization,ACO)来解决计算机算法
学中经典的“货郎担问题”。如果有 n 个城市,需要对所有 n 个
城市进行访问且只访问一次的最短距离。
在解决货郎担问题时,蚁群优化算法设计虚拟的“蚂蚁”将摸索
不同路线,并留下会随时间逐渐消失的虚拟“信息素”。虚拟的
“信息素”也会挥发,每只蚂蚁每次随机选择要走的路径,它们
倾向于选择路径比较短的、信息素比较浓的路径。根据“信息
素较浓的路线更近"的原则,即可选择出最佳路线。由于这个
算法利用了正反馈机制,使得较短的路径能够有较大的机会
得到选择,并且由于采用了概率算法,所以它能够不局限于
局部最优解。
蚁群优化算法对于解决货郎担问题并不是目前最好的方法,
但首先,它提出了一种解决货郎担问题的新思路;其次由于
这种算法特有的解决方法,它已经被成功用于解决其他组合
优 化问 题, 例 如图 的着 色 (Graph Coloring) 以及 最 短超 串
(Shortest Common Supersequence)等问题。
粒子群优化算法
粒 子 群 优 化 算 法 (PSO) 是 一 种 进 化 计 算 技 术 (Evolutionary
Computation),有 Eberhart 博士和 Kennedy 博士发明。源于对
鸟群捕食的行为研究。
PSO 同遗传算法类似,是一种基于叠代的优化工具。系统初
始化为一组随机解,通过叠代搜寻最优值。但是并没有遗传
算法用的交叉(crossover)以及变异(mutation)。而是粒子在解空
间追随最优的粒子进行搜索。
同遗传算法比较,PSO 的优势在于简单容易实现并且没有许
多参数需要调整。目前已广泛应用于函数优化,神经网络训
练,模糊系统控制以及其他遗传算法的应用领域。
粒子群优化算法(PSO) 也是起源对简单社会系统的模拟,最
初设想是模拟鸟群觅食的过程,但后来发现 PSO 是一种很好
的优化工具。
算法介绍
PSO 模拟鸟群的捕食行为。一群鸟在随机搜索食物,在这个
区域里只有一块食物。所有的鸟都不知道食物在那里。但是
他们知道当前的位置离食物还有多远。那么找到食物的最优
策略是什么呢。最简单有效的就是搜寻目前离食物最近的鸟
的周围区域。
PSO 从这种模型中得到启示并用于解决优化问题。PSO 中,
每个优化问题的解都是搜索空间中的一只鸟。我们称之为“粒
子”。所有的粒子都有一个由被优化的函数决定的适应值
(fitness value),每个粒子还有一个速度决定他们飞翔的方向和
距离。然后粒子们就追随当前的最优粒子在解空间中搜索。
PSO 初始化为一群随机粒子(随机解),然后通过叠代找到最优
解,在每一次叠代中,粒子通过跟踪两个“极值”来更新自己。
第一个就是粒子本身所找到的最优解,这个解叫做个体极值
pBest,另一个极值是整个种群目前找到的最优解,这个极值
是全局极值 gBest。另外也可以不用整个种群而只是用其中一
部分最优粒子的邻居,那么在所有邻居中的极值就是局部极
值。
PSO 算法过程
① 种群随机初始化。
① 对种群内的每一个个体计算适应值(fitness value)。适应值
与最优解的距离直接有关。
① 种群根据适应值进行复制 。
① 如果终止条件满足的话,就停止,否则转步骤 ① 。
从以上步骤,我们可以看到 PSO 和遗传算法有很多共同之处。
两者都随机初始化种群,而且都使用适应值来评价系统,而
且都根据适应值来进行一定的随机搜索。两个系统都不是保
证一定找到最优解。但是,PSO 没有遗传操作如交叉(crossover)
和变异(mutation),而是根据自己的速度来决定搜索。粒子还
有一个重要的特点,就是有记忆。
与遗传算法比较,PSO 的信息共享机制是很不同的。在遗传
算法中,染色体(chromosomes) 互相共享信息,所以整个种群
的移动是比较均匀的向最优区域移动。在 PSO 中, 只有 gBest
(or lBest) 给出信息给其他的粒子, 这是单向的信息流动。整
个搜索更新过程是跟随当前最优解的过程。与遗传算法比较,
在大多数的情况下,所有的粒子可能更快的收敛于最优解。
现在已经有一些利用 PSO 代替反向传播算法来训练神经网络
的论文。研究表明 PSO 是一种很有潜力的神经网络算法,同
时 PSO 速度比较快而且可以得到比较好的结果。
6 展望
目前的智能计算研究水平暂时还很难使“智能机器”真正具备人
类的常识,但智能计算将在 21 世纪蓬勃发展。不仅仅只是功
能模仿要持有信息机理一致的观点。即人工脑与生物脑将不
只是功能模仿,而是具有相同的特性。这两者的结合将开辟
一个全新的领域,开辟很多新的研究方向。智能计算将探索
智能的新概念,新理论,新方法和新技术,而这一切将在以
后的发展中取得重大成就。
参考文献
[1] “Ant-Colony Optimization Algorithms(ACO)”,
[2 ] “Swarm intelligence-what is it and why is it interesting”
[3] Tony White,“Swarm Intelligence: A Gentle Introduction
With Application”,
[4] 胡守仁等 .神经网络导论 [M].长沙 :国防科技大学出版
社,~117.
[5] 姚新,陈国良,徐惠敏等.进化算法研究进展[J].计算机学
报,1995,18(9):694-706.
[6] 张晓,戴冠中,徐乃平.一种新的优化搜索算法—遗传算法.控
制理论与应用[J].1995, 12(3):265-273.
[7] 杨志英.BP神经网络在水质评价中的应用[J].中国农村水
利水电,2001,9:27-29.