数学建模社区-数学中国
标题:
智能算法综述
[打印本页]
作者:
reedbook
时间:
2009-6-1 19:35
标题:
智能算法综述
摘要:随着计算机技术的飞速发展,智能计算方法的应用领域也越来越广泛,本文介绍了当前存在的一些智能计算方法,阐述了其工作原理和特点,同时对智能计算方法的发展进行了展望。
& w. x# x0 J: _" p" @& k L
' B0 ?9 p* S9 M' b1 T2 _, @# W0 q; e
关键词:人工神经网络 遗传算法 模拟退火算法 群集智能 蚁群算法 粒子群算
# |/ t5 |' x0 ]1 ~7 W. z- b
$ [& X9 z- M& e/ b$ N! k
1 什么是智能算法
5 V7 k$ }/ h. N* ?
智能计算也有人称之为“软计算”,是们受自然(生物界)规律的启迪,根据其原理,模仿求解问题的算法。从自然界得到启迪,模仿其结构进行发明创造,这就是仿生学。这是我们向自然界学习的一个方面。另一方面,我们还可以利用仿生原理进行设计(包括设计算法),这就是智能计算的思想。这方面的内容很多,如人工神经网络技术、遗传算法、模拟退火算法、模拟退火技术和群集智能技术等。
+ V7 A1 J- b% O: o. N! u: y/ N: @
# V8 u! T) q$ r' B- Z! p# }/ ~! q
2 人工神经网络算法
3 Y# P% M7 D) I0 `% E+ g' e
“人工神经网络”(ARTIFICIAL NEURAL NETWORK,简称ANN)是在对人脑组织结构和运行机制的认识理解基础之上模拟其结构和智能行为的一种工程系统。早在本世纪40年代初期,心理学家McCulloch、数学家Pitts就提出了人工神经网络的第一个数学模型,从此开创了神经科学理论的研究时代。其后,F Rosenblatt、Widrow和J. J .Hopfield等学者又先后提出了感知模型,使得人工神经网络技术得以蓬勃发展。
" F* }& \. c- U9 M6 n
神经系统的基本构造是神经元(神经细胞),它是处理人体内各部分之间相互信息传递的基本单元。据神经生物学家研究的结果表明,人的一个大脑一般有1010~1011个神经元。每个神经元都由一个细胞体,一个连接其他神经元的轴突和一些向外伸出的其它较短分支——树突组成。轴突的功能是将本神经元的输出信号(兴奋)传递给别的神经元。其末端的许多神经末梢使得兴奋可以同时传送给多个神经元。树突的功能是接受来自其它神经元的兴奋。神经元细胞体将接受到的所有信号进行简单处理(如:加权求和,即对所有的输入信号都加以考虑且对每个信号的重视程度——体现在权值上——有所不同)后由轴突输出。神经元的树突与另外的神经元的神经末梢相连的部分称为突触。
2 g; \% h' b9 u
( Z4 L9 q/ N+ B; U% k2 T+ y
2.1 人工神经网络的特点
; @. q4 \7 W* p2 x9 v
人工神经网络是由大量的神经元广泛互连而成的系统,它的这一结构特点决定着人工神经网络具有高速信息处理的能力。人脑的每个神经元大约有103~104个树突及相应的突触,一个人的大脑总计约形成1014~1015个突触。用神经网络的术语来说,即是人脑具有1014~1015个互相连接的存储潜力。虽然每个神经元的运算功能十分简单,且信号传输速率也较低(大约100次/秒),但由于各神经元之间的极度并行互连功能,最终使得一个普通人的大脑在约1秒内就能完成现行计算机至少需要数10亿次处理步骤才能完成的任务。
: H7 V3 w& l4 g
7 h7 m, M2 x/ g
人工神经网络的知识存储容量很大。在神经网络中,知识与信息的存储表现为神经元之间分布式的物理联系。它分散地表示和存储于整个网络内的各神经元及其连线上。每个神经元及其连线只表示一部分信息,而不是一个完整具体概念。只有通过各神经元的分布式综合效果才能表达出特定的概念和知识。
+ r2 y A- S+ b1 G* ~5 v
4 x0 f# N& |4 D! S( \) K! v1 Q
由于人工神经网络中神经元个数众多以及整个网络存储信息容量的巨大,使得它具有很强的不确定性信息处理能力。即使输入信息不完全、不准确或模糊不清,神经网络仍然能够联想思维存在于记忆中的事物的完整图象。只要输入的模式接近于训练样本,系统就能给出正确的推理结论。
* V1 {/ ^8 M7 V9 h5 a
+ O! Q1 [, }$ J% B: f" ?/ r
正是因为人工神经网络的结构特点和其信息存储的分布式特点,使得它相对于其它的判断识别系统,如:专家系统等,具有另一个显著的优点:健壮性。生物神经网络不会因为个别神经元的损失而失去对原有模式的记忆。最有力的证明是,当一个人的大脑因意外事故受轻微损伤之后,并不会失去原有事物的全部记忆。人工神经网络也有类似的情况。因某些原因,无论是网络的硬件实现还是软件实现中的某个或某些神经元失效,整个网络仍然能继续工作。
) b0 v2 y% d' ]/ C9 m( C
% j X+ y: B( Q+ ]* D
人工神经网络是一种非线性的处理单元。只有当神经元对所有的输入信号的综合处理结果超过某一门限值后才输出一个信号。因此神经网络是一种具有高度非线性的超大规模连续时间动力学系统。它突破了传统的以线性处理为基础的数字电子计算机的局限,标志着人们智能信息处理能力和模拟人脑智能行为能力的一大飞跃。
7 h/ Z0 f6 @* Q S9 @
, h8 _$ W8 W. c1 Y6 M
2.2 几种典型神经网络简介
3 `; E9 S q, ~3 J0 R: f+ ]
. ]- | B) L, n9 q, g
2.2.1 多层感知网络(误差逆传播神经网络)
/ i$ c1 D$ K) `' p
0 n0 b( e$ W( U" P) h* F
在1986年以Rumelhart和McCelland为首的科学家出版的《Parallel Distributed Processing》一书中,完整地提出了误差逆传播学习算法,并被广泛接受。多层感知网络是一种具有三层或三层以上的阶层型神经网络。典型的多层感知网络是三层、前馈的阶层网络,即:输入层I、隐含层(也称中间层)J和输出层K。相邻层之间的各神经元实现全连接,即下一层的每一个神经元与上一层的每个神经元都实现全连接,而且每层各神经元之间无连接。
1 D$ m& h& o/ H/ z7 w
: ^2 `5 N& f3 I' g1 h
但BP网并不是十分的完善,它存在以下一些主要缺陷:学习收敛速度太慢、网络的学习记忆具有不稳定性,即:当给一个训练好的网提供新的学习记忆模式时,将使已有的连接权值被打乱,导致已记忆的学习模式的信息的消失。?
9 Y8 Y+ h7 k3 H2 {
: l/ D# N& L1 B7 @4 v) p0 e9 Z: w
2.2.2 竞争型(KOHONEN)神经网络
: H2 ]7 n: {, f9 m9 }4 D+ q
6 H* @3 b; u$ e( u/ |3 s
它是基于人的视网膜及大脑皮层对剌激的反应而引出的。神经生物学的研究结果表明:生物视网膜中,有许多特定的细胞,对特定的图形(输入模式)比较敏感,并使得大脑皮层中的特定细胞产生大的兴奋,而其相邻的神经细胞的兴奋程度被抑制。对于某一个输入模式,通过竞争在输出层中只激活一个相应的输出神经元。许多输入模式,在输出层中将激活许多个神经元,从而形成一个反映输入数据的“特征图形”。竞争型神经网络是一种以无教师方式进行网络训练的网络。它通过自身训练,自动对输入模式进行分类。竞争型神经网络及其学习规则与其它类型的神经网络和学习规则相比,有其自己的鲜明特点。在网络结构上,它既不象阶层型神经网络那样各层神经元之间只有单向连接,也不象全连接型网络那样在网络结构上没有明显的层次界限。它一般是由输入层(模拟视网膜神经元)和竞争层(模拟大脑皮层神经元,也叫输出层)构成的两层网络。两层之间的各神经元实现双向全连接,而且网络中没有隐含层。有时竞争层各神经元之间还存在横向连接。竞争型神经网络的基本思想是网络竞争层各神经元竞争对输入模式的响应机会,最后仅有一个神经元成为竞争的胜者,并且只将与获胜神经元有关的各连接权值进行修正,使之朝着更有利于它竞争的方向调整。神经网络工作时,对于某一输入模式,网络中与该模式最相近的学习输入模式相对应的竞争层神经元将有最大的输出值,即以竞争层获胜神经元来表示分类结果。这是通过竞争得以实现的,实际上也就是网络回忆联想的过程。
* T" G9 Y4 E/ U2 ^
" U1 _! [: U7 e1 }$ I+ d
除了竞争的方法外,还有通过抑制手段获取胜利的方法,即网络竞争层各神经元抑制所有其它神经元对输入模式的响应机会,从而使自己“脱颖而出”,成为获胜神经元。除此之外还有一种称为侧抑制的方法,即每个神经元只抑制与自己邻近的神经元,而对远离自己的神经元不抑制。这种方法常常用于图象边缘处理,解决图象边缘的缺陷问题。
+ m. N. I. w. m* |5 L" K# x( X% X
' c1 M4 K) f4 r
竞争型神经网络的缺点和不足:因为它仅以输出层中的单个神经元代表某一类模式。所以一旦输出层中的某个输出神经元损坏,则导致该神经元所代表的该模式信息全部丢失。
" h7 P9 {: z: B5 G2 _7 O: x
4 b1 U. O( M# V: n2 }/ Q
2.2.3 Hopfield神经网络
" k% |, I! j8 Z m! z
) H8 W _ N! t) M2 T4 ^! H
1986年美国物理学家J.J.Hopfield陆续发表几篇论文,提出了Hopfield神经网络。他利用非线性动力学系统理论中的能量函数方法研究反馈人工神经网络的稳定性,并利用此方法建立求解优化计算问题的系统方程式。基本的Hopfield神经网络是一个由非线性元件构成的全连接型单层反馈系统。
* F- C% @- d, b" L
网络中的每一个神经元都将自己的输出通过连接权传送给所有其它神经元,同[
# Q1 Z* p% B) h& B* R0 t' D$ L
' E0 O2 ~8 g0 E% n+ N- h3 ?. l
% g( c$ [; X" l7 G' G
时又都接收所有其它神经元传递过来的信息。即:网络中的神经元t时刻的输出状态实际上间接地与自己的t-1时刻的输出状态有关。所以Hopfield神经网络是一个反馈型的网络。其状态变化可以用差分方程来表征。反馈型网络的一个重要特点就是它具有稳定状态。当网络达到稳定状态的时候,也就是它的能量函数达到最小的时候。这里的能量函数不是物理意义上的能量函数,而是在表达形式上与物理意义上的能量概念一致,表征网络状态的变化趋势,并可以依据Hopfield工作运行规则不断进行状态变化,最终能够达到的某个极小值的目标函数。网络收敛就是指能量函数达到极小值。如果把一个最优化问题的目标函数转换成网络的能量函数,把问题的变量对应于网络的状态,那么Hopfield神经网络就能够用于解决优化组合问题。
+ D! R+ @. P5 j5 ?6 ^
对于同样结构的网络,当网络参数(指连接权值和阀值)有所变化时,网络能量函数的极小点(称为网络的稳定平衡点)的个数和极小值的大小也将变化。因此,可以把所需记忆的模式设计成某个确定网络状态的一个稳定平衡点。若网络有M个平衡点,则可以记忆M个记忆模式。
$ Y0 ]) t4 f8 C; ~% p& ^
当网络从与记忆模式较靠近的某个初始状态(相当于发生了某些变形或含有某些噪声的记忆模式,也即:只提供了某个模式的部分信息)出发后,网络按Hopfield工作运行规则进行状态更新,最后网络的状态将稳定在能量函数的极小点。这样就完成了由部分信息的联想过程。
5 a; M$ \% V0 ^/ H; @2 [
Hopfield神经网络的能量函数是朝着梯度减小的方向变化,但它仍然存在一个问题,那就是一旦能量函数陷入到局部极小值,它将不能自动跳出局部极小点,到达全局最小点,因而无法求得网络最优解。
5 v3 [( ^& a& S7 d
0 j" P9 k, v3 W! G7 V
3 遗传算法
7 {$ i8 u5 M" |2 u7 d$ M1 E' I$ c* b
5 z# ^6 H6 S* _; I+ c$ I; V, r
遗传算法(Genetic Algorithms)是基于生物进化理论的原理发展起来的一种广为应用的、高效的随机搜索与优化的方法。其主要特点是群体搜索策略和群体中个体之间的信息交换,搜索不依赖于梯度信息。它是在70年代初期由美国密执根(Michigan)大学的霍兰(Holland)教授发展起来的。1975年霍兰教授发表了第一本比较系统论述遗传算法的专著《自然系统与人工系统中的适应性》(《Adaptation in Natural and Artificial Systems》)。遗传算法最初被研究的出发点不是为专门解决最优化问题而设计的,它与进化策略、进化规划共同构成了进化算法的主要框架,都是为当时人工智能的发展服务的。迄今为止,遗传算法是进化算法中最广为人知的算法。
' |( u$ Q& s9 W
近几年来,遗传算法主要在复杂优化问题求解和工业工程领域应用方面,取得了一些令人信服的结果,所以引起了很多人的关注。在发展过程中,进化策略、进化规划和遗传算法之间差异越来越小。遗传算法成功的应用包括:作业调度与排序、可靠性设计、车辆路径选择与调度、成组技术、设备布置与分配、交通问题等等。
作者:
perdon
时间:
2009-6-15 11:36
再详细点最好,加上代码
作者:
xiaoguansheng
时间:
2009-7-2 09:17
xie de gou hao le
作者:
frainbbs
时间:
2009-7-8 00:59
很好,很全面。顶
作者:
candice_geng
时间:
2009-7-15 12:44
谢谢,顶一下
作者:
shijiezhenshi
时间:
2009-7-24 16:21
偶也顶一下哈~!
作者:
peterjiao
时间:
2009-7-31 20:31
蛮详细的,呵呵
作者:
zneil
时间:
2009-9-1 10:45
不错,就是少点
作者:
yinghuawan
时间:
2009-9-2 17:38
haodongxi ya !!!!
作者:
yqqyjz
时间:
2009-9-10 12:10
好帖啊。。。难得一见的好贴。。。
作者:
东方明珠-WDZYQ
时间:
2009-10-29 19:28
学无止境啊……
作者:
东方明珠-WDZYQ
时间:
2009-10-31 17:08
不知道蚁群算法算否啊??
作者:
lgd0901
时间:
2009-11-14 18:52
谢谢楼主
6 m9 X; o4 f$ z! E' \2 X: r7 h
东西很多,如果能加上例子就更好了
作者:
tulian.2010
时间:
2010-7-12 18:46
怎么没有文件了呢?
作者:
tingxuem
时间:
2011-8-16 21:32
有点粗略要是有程序就好了!
作者:
李——建辉
时间:
2012-1-25 20:53
我一天不来数学中国社区就不爽~~~~
49521130412967806952818017908931422918265431770181466394540913584275333350906813
作者:
jiangbupt
时间:
2012-1-31 13:56
这是一个在国内较新的领域,最好看看外国书籍
作者:
wdcqx
时间:
2014-7-19 17:04
有代码就更好了
作者:
笑话如人
时间:
2015-5-10 22:01
. J( |% e4 G$ y( @9 a8 M2 e
0 g& m# F6 G# ~# {
, G. k# w6 c. F) ]/ }: t: O4 N
很好 。。。。。。。。。。。
9 @# g" [ d q3 @
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5