Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

7 第七章 学习与进化模型ann

958 views

Published on

Published in: Education
  • Be the first to comment

  • Be the first to like this

7 第七章 学习与进化模型ann

  1. 1. 第八章 学习与进化模型 本章内容建议自学参考 : 人工神经网络
  2. 2. 本章要求 <ul><li>掌握 ANN 的基本原理和思想 </li></ul><ul><li>能够在 Swarm 和 Repast 中应用 ANN </li></ul><ul><li>掌遗传算法的基本原理和思想 </li></ul><ul><li>能够在 Swarm 和 Repast 中应用 GA </li></ul>
  3. 3. 大纲 <ul><li>学习主体 </li></ul><ul><li>ANN </li></ul><ul><li>遗传算法 </li></ul><ul><li>群体智能 </li></ul><ul><li>粒子群优化算法 </li></ul>
  4. 4. 大纲 <ul><li>学习主体 </li></ul><ul><li>ANN </li></ul><ul><li>遗传算法 </li></ul><ul><li>群体智能 </li></ul><ul><li>粒子群优化算法 </li></ul>
  5. 5. 学习 Agent <ul><li>一个学习 Agent 可以被认为既包含决定采取什么动作的 执行元件 ,又包含修改执行元件使其能制定更好决策的 学习元件 。 </li></ul><ul><li>一个学习元件的设计受到下列三个主要因素的影响: </li></ul><ul><li>将要学习的是执行元件的哪个组成部分; </li></ul><ul><li>对学习这些组成部分而言,可得到什么反馈; </li></ul><ul><li>组成部分是如何表示的。 </li></ul>
  6. 6. 学习中可用的反馈类型 <ul><li>学习中可用的反馈类型通常是决定智能体所面临的学习问题本质的最重要因素。一般分为三种类型: </li></ul><ul><li>有监督的 </li></ul><ul><li>从它的输入和输出的实例中学习一个函数。对于完全可观察的环境,智能体总能够观察到它的行动所带来的影响,因此可以采用有监督学习的方法来学习预测它们,对于部分可观察的环境,会困难一些。 </li></ul><ul><li>无监督的 </li></ul><ul><li>在未提供明确的输出值的情况下,学习输入的模式。 </li></ul><ul><li>强化学习 </li></ul><ul><li>从强化事物中进行学习,而不是根据教师所说的应该做什么进行学习。 </li></ul><ul><li>学习系统设计的影响因素:如何表示学习到的知识;先验知识的可用性。 </li></ul>
  7. 7. 归纳学习( 1 ) ——确定性的有监督的学习 <ul><li>纯归纳推理: 给定 f 的实例集合,返回近似于 f 的函数 h </li></ul><ul><li>函数 h 被称为 假设 ,一个好的假设应该是 一般化的 ,也就是说能够正确地预测未见过的实例。 </li></ul><ul><li>例子(见板书):使一个单变量函数能拟合某些数据点 </li></ul><ul><li>假设空间 H : 选择最高次数为 k 的多项式集合 </li></ul><ul><li>一致假设 : 和所有的实例数据一致。 </li></ul><ul><li>如何在多个一致假设之间进行选择??? </li></ul><ul><li>奥卡姆剃刀( Ockham’s razor ) 原则 : 优先选择与数据一致的最简单的假设。 </li></ul><ul><li>在假设的复杂度和数据拟合度之间进行折中是不可避免的 </li></ul><ul><li>找到一个简单的一致假设的可能性或不可能性很强地依赖于对假设空间的选择。 </li></ul>
  8. 8. 归纳学习( 2 ) ——确定性的有监督的学习 <ul><li>找到一个简单的一致假设的可能性或不可能性很强地依赖于对假设空间的选择。( 假设空间的重要性 ) </li></ul><ul><li>如果假设空间包含真实的函数,那么学习的问题就是 可实现的 ,否则就是 不可实现的 。 </li></ul><ul><li>不幸的是,这是的函数是未知的,我们不能总是说出一个给定的学习问题是否可实现,一种避开这个障碍的方法是使用先验知识得到一个假设空间,我们可以确定一个真实的函数一定在该假设空间中,另外一种做法是采用最大可能的假设空间。 </li></ul>
  9. 9. 学习决策树 <ul><li>决策树归纳是最简单的但是最成功的学习算法形式之一。 </li></ul><ul><li>作为执行元件的决策树 </li></ul><ul><li>一棵决策树将用属性集合描述的事物或情景作为输入,并返回一个“决策”。输入的属性或输出值可以是离散的,也可以是连续的,学习一个离散值函数称为分类,学习一个连续函数称为回归。 </li></ul><ul><li>实例说明:决定是否要等座位的决策树 </li></ul><ul><li>从实例中归纳决策树 </li></ul>
  10. 10. 强化学习 <ul><li>所谓强化学习是指从环境状态到动作映射的学习,以使动作从环境中获得的累积奖赏值最大。该方法不同于监督学习技术那样通过正例、反例来告知采取何种行动,而是通过试错( trial-and-error )来发现最优行为策略。 </li></ul><ul><li>从 20 世纪 80 年代末开始,随着对强化学习的数学基础研究取得突破性进展后,对强化学习的研究和应用日益开展起来,成为目前机器学习领域的研究重点之一。 </li></ul>
  11. 11. 强化学习的框架结构 <ul><li>Agent 由状态感知器 I 、学习器 L 和动作选择器 P 三模块组成。 </li></ul><ul><li>状态感知器 I 把环境状态 s 映射成 Agent 内部感知 i ; </li></ul><ul><li>动作选择器 P 根据当前策略选择动作 a 作用于环境 W ; </li></ul><ul><li>学习器 L 根据环境状态的奖赏值 r 以及内部感知 i ,更新 Agent 的策略知识。 </li></ul><ul><li>W 在动作 a 的作用下将导致环境状态变迁到 s ’ 。 </li></ul>   强化学习技术的基本原理是:如果 Agent 的某个动作导致环境正的奖赏(强化信号),那么 Agent 以后产生这个动作的趋势便会加强,反之 Agent 产生这个动作的趋势渐弱。
  12. 12. Q- 学习 <ul><li>Q- 学习是由 Watkins 提出的一种模型无关的强化学习算法,又称为离策略 TD 学习( off-policy TD )。 </li></ul><ul><li>由于在一定条件 Q- 学习只需采用贪婪策略即可保证收敛,因此 Q- 学习是目前最有效的模型无关强化学习算法。 </li></ul>
  13. 13. Q- 学习算法流程 <ul><li>对每个 初始化 为 0 </li></ul><ul><li>观察当前状态 </li></ul><ul><li>一直重复做: </li></ul><ul><li>(1) 选择一个动作 并执行它 </li></ul><ul><li>(2) 接收到立即回报 </li></ul><ul><li>(3) 观察新状态 </li></ul><ul><li>(4) 按照下式更新表项: </li></ul><ul><li>(5) </li></ul>
  14. 14. Q - 学习(例子) <ul><li>悬崖步行是由 Sutton 提出的一个 Agent 仿真试验环境,如图所示。智能体的任务是从起始点 S 移动到目标点 G 。 S 、 G 之间的阴影方格为悬崖,智能体移动到这个区域就有坠崖的危险,因此如果进入这个区域,就给它一个大的惩罚 r =- 1000 ;如果到达 G ,就给它一个大的奖赏 r = 100 ,其它情况给它一个回报 r = -0.1 。通过学习,智能体可以找到一条既安全又不浪费移动步数的路径,通过对奖赏值的调整,智能体可以找到最安全或者最短的路径。 </li></ul>
  15. 15. 大纲 <ul><li>学习主体 </li></ul><ul><li>ANN </li></ul><ul><li>遗传算法 </li></ul><ul><li>群体智能 </li></ul><ul><li>粒子群优化算法 </li></ul>
  16. 16. 人工智能的联结主义流派 <ul><li>又称仿生学派,认为人工智能源于仿生学,人思维的基本单元是神经元,而非符号处理过程,主张用大脑工作模式取代符号操作的电脑工作模式; </li></ul><ul><li>智能的本质是联结机制。神经网络是一个由大量简单的处理单元组成的高度复杂的大规模非线性自适应系统; </li></ul><ul><li>“ 结构-功能”的研究方法:认为功能、结构和智能行为是密切相关的; </li></ul><ul><li>1943 年, McCulloch 和 Pitts 从神经元入手研究神经网络模型—— MP 模型 。此为人工神经网络研究之始。 </li></ul>
  17. 17. <ul><li>人工神经网络( Artificial Neural Network , ANN )从四个方面刻画人脑的基本特征: </li></ul><ul><li>( 1 ) 物理结构 </li></ul><ul><li>模仿生物神经元的功能,构造人工神经元的联结网络 </li></ul><ul><li>Cell body </li></ul><ul><li>Axon </li></ul><ul><li>Nucleus </li></ul><ul><li>Synapse </li></ul><ul><li>突触 </li></ul><ul><li>Dendrite </li></ul><ul><li>树突 </li></ul>
  18. 18. <ul><li>( 2 ) 计算模拟 </li></ul><ul><li>人脑神经元既有局部的计算和存储功能,又通过联结构成统一的系统,人脑的计算建立在该系统的大规模并行模拟处理基础之上。 </li></ul><ul><li>ANN 以具有局部计算能力的神经元为基础,同样实现信息的大规模并行处理。 </li></ul><ul><li>( 3 ) 存储与操作 </li></ul><ul><li>大脑对信息的记忆是通过改变突触的强度来实现并分布存储。 </li></ul><ul><li>ANN 模拟信息的大规模分布存储。 </li></ul><ul><li>( 4 )训练 </li></ul><ul><li>后天的训练使得人脑具有很强的自组织和自适应性。 </li></ul><ul><li>ANN 根据人工神经元网络的结构特性,使用不同的训练过程,自动从“实践”(即训练样本)中获取相关知识,并存储在系统中。 </li></ul>
  19. 19. ANN 是基于联结主义流派的人工智能 <ul><li>联结主义学派与高速发展的计算机技术相结合,发展为计算智能学派,是人工智能在 1980 年代后的深化和发展; </li></ul><ul><li>计算智能:借助现代计算机技术模拟人的智能控制、生命演化过程和人的智能行为,从而进行信息获取、处理、应用的理论和方法; </li></ul><ul><li>计算智能是以数学模型、计算模型为基础,以分布、并行、仿生计算为特征,包含数据、算法和实现的信息系统; </li></ul><ul><li>计算智能强调模型的建立和构成,强调系统的自组织、自学习和自适应; </li></ul><ul><li>计算智能的 3 个主要分支: </li></ul><ul><li>人工神经网络 (模拟智能产生与作用赖以存在的结构) </li></ul><ul><li>遗传算法 (模拟生命生成过程与智能进化过程) </li></ul><ul><li>模糊逻辑 (模拟智能的表现行为) </li></ul>
  20. 20. 人工神经网络概述 <ul><li>人工神经网络是受生物神经网络的启发构造而成。 </li></ul><ul><li>James (《心理学》, 1890 年) :大脑皮层每一点的活力产生于其它点势能释放的综合效能,即其它点的 兴奋次数 、 强度 和 所接受的能量 。 </li></ul><ul><li>大脑含约 10 11 个神经元,它们通过 10 15 个联结构成一个网络。每个神经元具有独立的接受、处理和传递电化学信号的能力,这种传递由神经通道来完成。 </li></ul>
  21. 21. <ul><li>神经元的结构 </li></ul><ul><li>树突从细胞体伸向其它神经元,神经元之间的接受信号的联结点为突触。通过突触输入的信号起着兴奋 / 抑制作用。当细胞体接受的累加兴奋作用超过某阈值时,细胞进入兴奋状态,产生冲动,并由轴突输出。 </li></ul><ul><li>Cell body </li></ul><ul><li>Axon </li></ul><ul><li>Nucleus </li></ul><ul><li>Synapse </li></ul><ul><li>突触 </li></ul><ul><li>Dendrite </li></ul><ul><li>树突 </li></ul>
  22. 22. <ul><li>神经元系统的基本特征 </li></ul><ul><li>神经元及其联结 </li></ul><ul><li>神经元之间的联结强度决定信号传递的强弱 </li></ul><ul><li>神经元之间的联结强度可以随训练而改变 </li></ul><ul><li>信号分为兴奋型和抑制型 </li></ul><ul><li>一个神经元接受的信号的累计效果决定该神经元的状态 </li></ul><ul><li>每个神经元有一个阈值 </li></ul>
  23. 23. 人工神经网络的几种形式 <ul><li>无反馈前向网 </li></ul><ul><li>多输入、多输出的多层无环图,同一层间无联结 </li></ul><ul><li>神经元分层排列,组成输入层、中间层(隐层)、输出层 </li></ul>
  24. 24. <ul><li>有反馈前向网 </li></ul><ul><li>从输出层到输入层存在反馈的前向网。 </li></ul>
  25. 25. <ul><li>层内有联结的前向网 </li></ul><ul><li>在无反馈前向网中同一层内存在神经元间的联结回路 </li></ul>
  26. 26. <ul><li>人工神经网络方法简介 </li></ul><ul><li>有向网 </li></ul><ul><li>任意两个神经元间都可能存在有向联结。 </li></ul><ul><li>网络处在动态中,直至达到某一平衡态、周期态或者混沌状态 </li></ul>
  27. 27. <ul><li>感知器( Perceptron ) </li></ul><ul><li>—— 人工神经网络的基本构件 </li></ul>
  28. 28. <ul><li>感知器( Perceptron )是最早被设计并实现的人工神经网络。 </li></ul><ul><li>W. McCulloch 和 W. Pitts 总结生物神经元的基本生理特征,提出一种简单的数学模型与构造方法,建立了 阈值加权和模型 ,简称 M-P 模型 (“A Logical Calculus Immanent in Nervous Activity”, Bulletin of Mathematical Biophysics, 1943(5): 115~133 )。 </li></ul><ul><li>人工神经元模型是 M-P 模型的基础。 </li></ul>感知器的数学模型 <ul><li>Warren McCulloch </li></ul><ul><li>( 1898 - 1969 ) </li></ul><ul><li>Walter Pitts </li></ul><ul><li>(1923 - 1969) </li></ul>
  29. 29. <ul><li>生物神经元的基本特征 </li></ul><ul><li>神经元及其联结 </li></ul><ul><li>神经元之间的联结强度决定信号传递的强弱 </li></ul><ul><li>神经元之间的联结强度可以随训练而改变 </li></ul><ul><li>信号分为兴奋型和抑制型 </li></ul><ul><li>一个神经元接受的信号的累计效果决定该神经元的状态 </li></ul><ul><li>每个神经元有一个阈值 </li></ul><ul><li>轴突 </li></ul><ul><li>突触 </li></ul><ul><li>树突 </li></ul><ul><li>内核 </li></ul><ul><li>轴突 </li></ul><ul><li>突触 </li></ul><ul><li>树突 </li></ul>
  30. 30. <ul><li>人工神经网络方法简介 </li></ul><ul><li>模拟神经元的首要目标:输入信号的加权和 </li></ul><ul><li>人工神经元可以接受一组来自系统中其它神经元的输入信号,每个输入对应一个权,所有输入的加权和决定该神经元的激活状态。每个权就相当于突触的联结强度。 </li></ul><ul><li>人工神经元数学模型 </li></ul><ul><li>—— 多输入、单输出的加权和结构 </li></ul><ul><li>w 1 </li></ul><ul><li> w i x i </li></ul><ul><li>w 2 </li></ul><ul><li>w n </li></ul><ul><li>x 1 </li></ul><ul><li>x 2 </li></ul><ul><li>x n </li></ul>
  31. 31. <ul><li>设 X = ( x 1 , x 2 , …, x n ) 表示 n 个输入, W = ( w 1 , w 2 , …, w n ) 表示它们对应的联结权重。 </li></ul><ul><li>故神经元所获得的输入信号累计效果为: </li></ul><ul><li>称 u ( x ) 为整合函数 </li></ul><ul><li>w 1 </li></ul><ul><li> w i x i </li></ul><ul><li>w 2 </li></ul><ul><li>w n </li></ul><ul><li>x 1 </li></ul><ul><li>x 2 </li></ul><ul><li>x n </li></ul>
  32. 32. <ul><li>人工神经网络方法简介 </li></ul><ul><li>感知器的激活函数 </li></ul>神经元获得网络输入信号后,信号累计效果整合函数 u ( x ) 大于某阈值  时,神经元处于激发状态;反之,神经元处于抑制状态 构造 激活函数  ,用于表示这一转换过程。要求  是 [-1, 1] 之间的单调递增函数 激活函数  通常为 3 种类型,由此决定了神经元的输出特征
  33. 33. <ul><li>( 1 )激活函数  为符号函数: </li></ul><ul><li>1 </li></ul><ul><li>-1 </li></ul><ul><li>u </li></ul><ul><li> </li></ul>
  34. 34. <ul><li>( 2 )激活函数  为分段线性函数: </li></ul><ul><li>1 </li></ul><ul><li>-1 </li></ul><ul><li>u </li></ul><ul><li> </li></ul>
  35. 35. <ul><li>人工神经网络方法简介 </li></ul><ul><li>( 3 )激活函数  为 Sigmoid 函数,其特点是单调递增、光滑且具有渐近值,具有解析上的优点和神经生理学特征。 </li></ul><ul><li> </li></ul><ul><li>1 </li></ul><ul><li>-1 </li></ul><ul><li>u </li></ul>
  36. 36. <ul><li>人工神经网络方法简介 </li></ul><ul><li>2. M-P 模型 </li></ul><ul><li>将人工神经元的基本模型与激活函数  结合,即 McCulloch –Pitts 模型。 </li></ul><ul><li>w 1 </li></ul><ul><li> </li></ul><ul><li>u =  w i x i </li></ul><ul><li>w 2 </li></ul><ul><li>w n </li></ul><ul><li>x 1 </li></ul><ul><li>x 2 </li></ul><ul><li>x n </li></ul>y =  ( u ( x )-  )
  37. 37. <ul><li>ANN 可以学会它表达的任何东西。( Rosenblatt , 1962 年) </li></ul><ul><li>ANN 的表达能力有限,其学习能力也受到限制。 </li></ul><ul><li>ANN 的学习过程就是训练过程,在将训练样本集输入到网络的过程中,按照一定的方式来调整神经元之间的联结权重值,使得网络能够将训练样本集的内涵以联结权重矩阵的方式存储起来,从而使得网络在接受输入时,能够给出适当的输出。 </li></ul><ul><li>有监督的学习( Supervised learning ) </li></ul><ul><li>无监督的学习( Unsupervised learning ) </li></ul>感知器的学习算法
  38. 38. <ul><li>感知器的学习是有监督的学习。学习的问题归结为求权重系数 W = ( w 1 , w 2 , …, w n ) 和阈值  的问题。 </li></ul><ul><li>基本思想:逐步将训练集中的样本输入到网络中,根据输出结果和理想输出之间的差别来调整网络中的权重值。 </li></ul><ul><li>w 1 </li></ul><ul><li> </li></ul><ul><li>u =  w i x i </li></ul><ul><li>w 2 </li></ul><ul><li>w n </li></ul><ul><li>x 1 </li></ul><ul><li>x 2 </li></ul><ul><li>x n </li></ul><ul><li>y =  ( u ( x )-  ) </li></ul>
  39. 39. <ul><li>设 X = ( x 1 , x 2 , …, x n ) 表示 n 个输入, W = ( w 1 , w 2 , …, w n ) 表示它们对应的联结权重。假设取符号函数为激活函数  , </li></ul><ul><li>此为经典的 M-P 模型: </li></ul><ul><li>w 1 </li></ul><ul><li> </li></ul><ul><li>u =  w i x i </li></ul><ul><li>w 2 </li></ul><ul><li>w n </li></ul><ul><li>x 1 </li></ul><ul><li>x 2 </li></ul><ul><li>x n </li></ul><ul><li>+1 or -1 </li></ul>
  40. 40. 训练集的样本(输入向量、输出值)为: t 为样本数目。其中,
  41. 41. <ul><li>感知器的基本理论 </li></ul><ul><li>“ 线性不可分”问题的困境及其解决 </li></ul><ul><li>Marvin Minsky </li></ul><ul><li>MIT Media Lab and MIT AI Lab Toshiba Professor of Media Arts and Sciences Professor of E.E. and C.S., M.I.T [email_address] </li></ul><ul><li>1969 年, Minsky 和 Papert 在“ Perceptron” 一书中从理论上证明单层感知器无法解决许多简单的问题,包括“异或 (XOR)” 问题。使得 ANN 理论的发展在 1970 ~ 80 年代处于低潮 。 </li></ul>
  42. 42. <ul><li>“ 异或 (Exclusive-OR)” 运算 </li></ul><ul><li>是一个双输入、单输出问题。对应的单层感知器为: </li></ul><ul><li>无论如何选择参数 a , b ,  ,都无法满足划分。这种由单层感知器不能表达的问题称为 线性不可分问题 。 </li></ul>f ( x , y ) y 0 1 x 0 0 1 1 1 0 <ul><li>x </li></ul><ul><li>y </li></ul><ul><li>a </li></ul><ul><li>b </li></ul><ul><li>z </li></ul><ul><li>ax + by =  </li></ul><ul><li>x </li></ul><ul><li>y </li></ul>
  43. 43. <ul><li>考虑 n 个自变量的二值函数,当 n  4 时,线性不可分的函数个数远远超过线性可分函数的个数。 </li></ul><ul><li>( R. O. Windner, 1960 ) </li></ul><ul><li>表明单层感知器不能表达的问题的数量远远超过它可以表达的问题的数量。 </li></ul>自变量个数 函数的个数 线性可分函数的个数 1 4 4 2 16 14 3 256 104 4 65,536 1,882 5 4.3  10 9 94,572 6 1.8  10 19 5,028,134
  44. 44. <ul><li>解决途径——多层网络 </li></ul><ul><li>一个单层网络可以将空间划分成两部分,用多个单层网络组合在一起,并用其中的一个去综合其它单层网络的结果,构成一个二层网络,即可用来在空间划分出一个封闭或开放的凸域(子空间)。 </li></ul><ul><li>x 1 </li></ul><ul><li>z 0 </li></ul><ul><li>x n </li></ul><ul><li>z 1 </li></ul><ul><li>z n </li></ul>
  45. 45. <ul><li>非线性感知器 </li></ul><ul><li>取权重函数为非线性函数的单级传感器系统。其学习过程涉及到求解非线性方程组的方法。 </li></ul><ul><li>高阶感知器 </li></ul><ul><li>可线性化的非线性传感器系统。 </li></ul>
  46. 46. <ul><li>单层前向网、多层前向网 </li></ul><ul><li>与 BP 学习算法简介 </li></ul>
  47. 47. <ul><li>一、 单层前向网络 </li></ul><ul><li>单层前向网模型 </li></ul><ul><li>设有 c  1 个感知器,其中第 k 个感知器的输出为 y k ;对于输入信号 x = ( x 1 , x 2 , …, x n ) ,每个感知器有 d 个输入 u j ( x ) , j=1, 2, …, d 。 </li></ul><ul><li>输入层 </li></ul><ul><li>输出层 </li></ul><ul><li>1 </li></ul><ul><li>k </li></ul><ul><li>c </li></ul><ul><li>x 1 </li></ul><ul><li>x n </li></ul><ul><li>x 2 </li></ul><ul><li>u 1 ( x ) </li></ul><ul><li>u 2 ( x ) </li></ul><ul><li>u d ( x ) </li></ul><ul><li>x 3 </li></ul><ul><li>w k1 </li></ul><ul><li>w k2 </li></ul><ul><li>w k3 </li></ul><ul><li>y k </li></ul>
  48. 48. <ul><li>一个单层前向网可表示为: </li></ul><ul><li> :激活函数; </li></ul><ul><li>w k =( w k1 , w k2 , …, w kd ) :第 k 个感知器的权重系数; </li></ul><ul><li> k :第 k 个感知器的阈值; </li></ul><ul><li>u =( u 1 , u 2 , …, u d ) :基函数 </li></ul><ul><li>x  R n , u ( x )  R n </li></ul><ul><li>若记 w k0 =  k , u 0 = - 1 ,则上式变换为 : </li></ul>
  49. 49. <ul><li>记 y k ( w k ; x ) 为第 k 个感知器当权重系数为 w k  R d ,输入为 x  R n 时的输出。 </li></ul><ul><li>设训练集为 A = { ( x  , t  ) |  =1, 2, …, N } ,其中  表示训练集数据编号, x   R n 为输入, t   R c 为输出, t k  为第 k 个感知器的期望输出。 </li></ul><ul><li>基于训练集 A 的误差函数定义为: </li></ul><ul><li>单层前向网的学习目标函数 </li></ul>
  50. 50. <ul><li>学习的目标就是求 w k , k=1,2,…,c ,使得误差函数 E(w) 取最小值: </li></ul><ul><li>这就是 目标函数 </li></ul><ul><li>单层前向网的学习原理本质上仍是感知器的学习原理。 </li></ul>
  51. 51. <ul><li>线性单层前向网的解 </li></ul><ul><li>关于基函数 u ( x ), 对学习集的每一个数据,记 : </li></ul><ul><li>其中  =1, 2, …, N 。由此,定义学习集 A 的扩展集 B : </li></ul>
  52. 52. <ul><li>不妨假设激活函数  为恒等函数,此时网络为线性单层前向网。由此写出误差函数: </li></ul><ul><li>优化的目标函数为 : </li></ul>
  53. 53. <ul><li>根据最小二乘法求解目标函数。 </li></ul><ul><li>由多元函数取极值的必要条件,有: </li></ul>
  54. 54. 写成矩阵形式 <ul><li>W : c  ( d  1) </li></ul><ul><li>U : N  ( d  1) </li></ul><ul><li>T: N  c </li></ul>
  55. 55. 解的形式为:
  56. 56. 层前向网络、 BP 学习算法 双层前向网 <ul><li>多层前向网的结构特点: </li></ul><ul><li>1 、允许网络具有数层相连的处理单元; </li></ul><ul><li>2 、联结是从前一层的每一个节点到下一层所有节点,不存在其它联结; </li></ul><ul><li>3 、同一层内的节点之间不存在联结; </li></ul><ul><li>4 、不含任何反馈,故输出可以用输入和权重来表示。 </li></ul><ul><li>L 层神经网络:具有 L 层可调节权重参数 </li></ul>
  57. 57. <ul><li>双层前向网模型:具有两层可调节参数且同层无联结的不含反馈的人工神经网络。 </li></ul><ul><li>X 层——输入层 </li></ul><ul><li>Y 层——输出层 </li></ul><ul><li>Z 层——隐层 </li></ul><ul><li>两层可调节权重参数: W (1) 、 W (2) </li></ul><ul><li>1 </li></ul><ul><li>2 </li></ul><ul><li>M </li></ul><ul><li>2 </li></ul><ul><li>1 </li></ul><ul><li>x 1 </li></ul><ul><li>x N </li></ul><ul><li>N </li></ul><ul><li>x 2 </li></ul><ul><li>y 1 </li></ul><ul><li>1 </li></ul><ul><li>2 </li></ul><ul><li>c </li></ul><ul><li>y 2 </li></ul><ul><li>y c </li></ul><ul><li>W (1) </li></ul><ul><li>W (2) </li></ul><ul><li>输入层 </li></ul><ul><li>( X ) </li></ul><ul><li>隐层 </li></ul><ul><li>( Z ) </li></ul><ul><li>输出层 </li></ul><ul><li>( Y ) </li></ul>
  58. 58. <ul><li>设输入层的输入为 ( x 1 , x 2 , …, x n )  R n 。 </li></ul><ul><li>首先考察隐层,设隐层神经元的激活函数为  。第 j 个隐层神经元的整合函数为 a j 、输出值为 z j : </li></ul><ul><li>第 1 层(隐层)权重矩阵中第 i 个输入联结到第 j 个隐神经元的权重 </li></ul><ul><li>第 j 个隐神经元的阈值 </li></ul><ul><li>1 </li></ul><ul><li>2 </li></ul><ul><li>M </li></ul><ul><li>2 </li></ul><ul><li>1 </li></ul><ul><li>x 1 </li></ul><ul><li>x N </li></ul><ul><li>N </li></ul><ul><li>x 2 </li></ul><ul><li>y 1 </li></ul><ul><li>1 </li></ul><ul><li>2 </li></ul><ul><li>c </li></ul><ul><li>y 2 </li></ul><ul><li>y c </li></ul><ul><li>W (1) </li></ul><ul><li>W (2) </li></ul><ul><li>输入层 </li></ul><ul><li>( X ) </li></ul><ul><li>隐层 </li></ul><ul><li>( Z ) </li></ul><ul><li>输出层 </li></ul><ul><li>( Y ) </li></ul>
  59. 59. <ul><li>同样考察输出层,设输出层神经元的激活函数为  。第 k 个输出神经元以 z=(z 1 , z 2 , …, z M )  R M 为输入,其整合函数为 b k 、输出值为 y k : </li></ul><ul><li>第 2 层(输出层)权重矩阵中第 j 个隐神经元联结到第 k 个输出神经元的权重 </li></ul><ul><li>第 k 个输出神经元的阈值 </li></ul><ul><li>1 </li></ul><ul><li>2 </li></ul><ul><li>M </li></ul><ul><li>2 </li></ul><ul><li>1 </li></ul><ul><li>x 1 </li></ul><ul><li>x N </li></ul><ul><li>N </li></ul><ul><li>x 2 </li></ul><ul><li>y 1 </li></ul><ul><li>1 </li></ul><ul><li>2 </li></ul><ul><li>c </li></ul><ul><li>y 2 </li></ul><ul><li>y c </li></ul><ul><li>W (1) </li></ul><ul><li>W (2) </li></ul><ul><li>输入层 </li></ul><ul><li>( X ) </li></ul><ul><li>隐层 </li></ul><ul><li>( Z ) </li></ul><ul><li>输出层 </li></ul><ul><li>( Y ) </li></ul>
  60. 60. <ul><li>联合得到双层前向网的输出表达式: </li></ul><ul><li>记为: </li></ul><ul><li>1 </li></ul><ul><li>2 </li></ul><ul><li>M </li></ul><ul><li>2 </li></ul><ul><li>1 </li></ul><ul><li>x 1 </li></ul><ul><li>x N </li></ul><ul><li>N </li></ul><ul><li>x 2 </li></ul><ul><li>y 1 </li></ul><ul><li>1 </li></ul><ul><li>2 </li></ul><ul><li>c </li></ul><ul><li>y 2 </li></ul><ul><li>y c </li></ul><ul><li>W (1) </li></ul><ul><li>W (2) </li></ul><ul><li>输入层 </li></ul><ul><li>( X ) </li></ul><ul><li>隐层 </li></ul><ul><li>( Z ) </li></ul><ul><li>输出层 </li></ul><ul><li>( Y ) </li></ul>
  61. 61. <ul><li>学习的目标函数 </li></ul><ul><li>为简化计,考虑两类的分类问题。 </li></ul><ul><li>设 A 、 B 是分类空间 R d 中两个不相交的集合。考虑离散型双层前向网 T ( W (1) , W (2) ,  (1) ,  (2) ; x ) ,取其激活函数  、  为符号函数 sgn ( u ) 。 </li></ul><ul><li>该双层前向网的学习目标是,对 ( A , B ) 求 ( W (1) , W (2) ,  (1) ,  (2) ) 使得: </li></ul><ul><li>求解上述方程。 </li></ul>
  62. 62. <ul><li>误差的后向传播 </li></ul><ul><li>多层前向网的学习原理:基于适当定义的误差函数,在网络中调整权重矩阵和阈值等参数,使得误差函数极小化。 </li></ul><ul><li>与单层前向网和感知器相比较,多层前向网由于隐层的存在,无法判别隐层神经元对输入误差的直接影响(无法知道隐层神经元的理想输出值)。因此,对参数权重矩阵和阈值的调整遇到困难。 </li></ul><ul><li>1 </li></ul><ul><li>2 </li></ul><ul><li>M </li></ul><ul><li>2 </li></ul><ul><li>1 </li></ul><ul><li> x 1 </li></ul><ul><li>N </li></ul><ul><li> y 1 </li></ul><ul><li>1 </li></ul><ul><li>2 </li></ul><ul><li>c </li></ul><ul><li> y 2 </li></ul><ul><li> y c </li></ul><ul><li> W (1) </li></ul><ul><li> W (2) </li></ul><ul><li>输入层 </li></ul><ul><li>( X ) </li></ul><ul><li>隐层 </li></ul><ul><li>( Z ) </li></ul><ul><li>输出层 </li></ul><ul><li>( Y ) </li></ul><ul><li> x 2 </li></ul><ul><li> x N </li></ul>
  63. 63. <ul><li>解决方案——计算两个传播方向: </li></ul><ul><li>“ 前向传播 (Forward propagation)” :输入 {xi} 进入网络,按照信息在网络中前进移动的方向,逐次计算 aj , zj 直至输出 {yk} 的过程;(输入向输出方向的前向传播) </li></ul><ul><li>“ 后向传播 (Back propagation)” :利用输出层的误差来估计输出层的直接前导层的误差,再依次估计更前一层的误差,获得所有各层的误差估计。(输出误差向输入方向的后向传播)( Rumelhart, Hinton & Williams, 1986 ) </li></ul><ul><li>1 </li></ul><ul><li>2 </li></ul><ul><li>M </li></ul><ul><li>2 </li></ul><ul><li>1 </li></ul><ul><li> x 1 </li></ul><ul><li>N </li></ul><ul><li> y 1 </li></ul><ul><li>1 </li></ul><ul><li>2 </li></ul><ul><li>c </li></ul><ul><li> y 2 </li></ul><ul><li> y c </li></ul><ul><li> W (1) </li></ul><ul><li> W (2) </li></ul><ul><li>输入层 </li></ul><ul><li>( X ) </li></ul><ul><li>隐层 </li></ul><ul><li>( Z ) </li></ul><ul><li>输出层 </li></ul><ul><li>( Y ) </li></ul><ul><li> x 2 </li></ul><ul><li> x N </li></ul>
  64. 64. <ul><li>设学习集有 T 个样本,记为 { x  , t  } ,  =1, 2, …, T ,其中: </li></ul><ul><li>输入 </li></ul><ul><li>理想输出 </li></ul><ul><li>计算实际输出,记为: </li></ul><ul><li>实际输出 </li></ul>
  65. 65. 显然有: 因此只需讨论某一个样本点的误差传播,以下略去上标  故误差函数为:
  66. 66. <ul><li>已知下列记号: </li></ul><ul><li>又定义第 k 个输出神经元和第 j 个隐层神经元的 误差率 为: </li></ul><ul><li>输出层误差率 </li></ul><ul><li>隐层误差率 </li></ul>
  67. 67. <ul><li>由微分链式法则,计算可得: </li></ul><ul><li>输出层误差率 </li></ul><ul><li>隐层误差率 </li></ul>
  68. 68. <ul><li>因此得到: </li></ul>
  69. 69. <ul><li>梯度法求解 w ij ( l ) </li></ul><ul><li>取步长因子为固定步长  ,得到学习规则: </li></ul><ul><li>其中  k (2) 、  k (1) 均与  有关, k =1,2,…, c ; j =0, 1,…, M ; i =0, 1, …, N 。 </li></ul>
  70. 70. 大纲 <ul><li>学习主体 </li></ul><ul><li>ANN </li></ul><ul><li>遗传算法 </li></ul><ul><li>群体智能 </li></ul><ul><li>粒子群优化算法 </li></ul>
  71. 71. 遗传算法 <ul><li>遗传算法的基本理论是借鉴自然界生物从简单到复杂、低级到高级的优胜劣汰、适者生存的进化机制,其本质是一种求解优化问题的高效并行全局搜索方法 。 </li></ul><ul><li>遗传算法的主要计算过程是:从随机产生的一个初始种群开始,通过一些算子(选择、交叉、变异)的作用,产生下一代种群,再以新产生的种群为出发点,重复上述过程,直到满足结束准则为止。 </li></ul><ul><li>遗传算法( GA )把问题的解表示成 “ 染色体 ” ,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群 “ 染色体 ” ,也即是假设解。然后,把这些假设解置于问题的 “ 环境 ” 中,并按适者生存的原则,从中选择出较适应环境的 “ 染色体 ” 进行复制,再通过交叉,变异过程产生更适应环境的新一代 “ 染色体 ” 群。这样,一代一代地进化,最后就会收敛到最适应环境的一个 “ 染色体 ” 上,它就是问题的最优解。 </li></ul>
  72. 72. 遗传算法流程 <ul><li>( 3 ) 依据适应度选择再生个体,适应度高的个体被选中的概率高,适应度低的个体可能被淘汰; </li></ul><ul><li>( 4 ) 按照一定的交叉概率和交叉方法,生成新的个体; </li></ul><ul><li>( 5 ) 按照一定的变异概率和变异方法,生成新的个体; </li></ul><ul><li>( 6 ) 由交叉和变异产生新一代的种群,返回第 2 步。 </li></ul><ul><li>( 1 ) 随机产生初始种群,个体数目一定,每个个体表示为染色体的基因编码; </li></ul><ul><li>( 2 ) 计算个体的适应度,并判断是否符合优化准则,若符合,输出最佳个体及其代表的最优解,并结束计算;否则转向第 3 步; </li></ul>
  73. 73. 交叉算子和变异算子 <ul><li>单点交叉: 交叉掩码以连续的 n 个 1 开始,后面跟随必要个数的 0 直至结束。 </li></ul><ul><li>两点交叉: 交叉掩码以 n 0 个 0 开始,后面跟随 n 1 个 1 ,再跟随必要数量的 0 结束。 </li></ul><ul><li>均匀交叉: 产生一个随机的位串,每一位的选区都是随机的并且独立于其他位。 </li></ul><ul><li>点变异: 某一点取反 </li></ul>
  74. 74. 基本遗传算法 <ul><li>基本遗传算法( Simple Genetic Algorithms ,简称 SGA ,又称简单遗传算法或标准遗传算法),是由 Goldberg 总结出的一种最基本的遗传算法,其遗传进化操作过程简单,容易理解,是其它一些遗传算法的雏形和基础。 </li></ul>
  75. 75. 基本遗传算法的组成 <ul><li>( 1 )编码(产生初始种群) </li></ul><ul><li>( 2 )适应度函数 </li></ul><ul><li>( 3 )遗传算子(选择、交叉、变异) </li></ul><ul><li>( 4 )运行参数 </li></ul>
  76. 76. 编码 <ul><li>GA 是通过某种编码机制把对象抽象为由特定符号按一定顺序排成的串。正如研究生物遗传是从染色体着手,而染色体则是由基因排成的串。 SGA 使用二进制串进行编码。 </li></ul>
  77. 77. 函数优化示例 <ul><li>求下列一元函数的最大值 : </li></ul><ul><li>x∈[-1,2] ,求解结果精确到 6 位小数。 </li></ul>
  78. 78. SGA 对于本例的编码 <ul><li>由于区间长度为 3 ,求解结果精确到 6 位小数,因此可将自变量定义区间划分为 3 × 10 6 等份。又因为 2 21 < 3 × 10 6 < 2 22 ,所以本例的二进制编码长度至少需要 22 位,本例的编码过程实质上是将区间 [-1 , 2] 内对应的实数值转化为一个二进制串( b21b20…b0 )。 </li></ul>
  79. 79. 几个术语 <ul><li>基因型: 1000101110110101000111 </li></ul>表现型: 0.637197 <ul><li>编码 </li></ul><ul><li>解码 </li></ul><ul><li>个体(染色体) </li></ul><ul><li>基因 </li></ul>
  80. 80. 初始种群 <ul><li>SGA 采用随机方法生成若干个个体的集合,该集合称为初始种群。初始种群中个体的数量称为种群规模。 </li></ul>
  81. 81. 适应度函数 <ul><li>遗传算法对一个个体(解)的好坏用适应度函数值来评价,适应度函数值越大,解的质量越好。适应度函数是遗传算法进化过程的驱动力,也是进行自然选择的唯一标准,它的设计应结合求解问题本身的要求而定。 </li></ul>
  82. 82. 选择算子 <ul><li>遗传算法使用选择运算来实现对群体中的个体进行优胜劣汰操作:适应度高的个体被遗传到下一代群体中的概率大;适应度低的个体,被遗传到下一代群体中的概率小。选择操作的任务就是按某种方法从父代群体中选取一些个体,遗传到下一代群体。 SGA 中选择算子采用轮盘赌选择方法。 </li></ul>
  83. 83. 轮盘赌选择方法 <ul><li>轮盘赌选择又称比例选择算子,它的基本思想是:各个个体被选中的概率与其适应度函数值大小成正比。设群体大小为 n ,个体 i 的适应度为 F i ,则个体 i 被选中遗传到下一代群体的概率为: </li></ul>
  84. 84. 轮盘赌选择方法的实现步骤 <ul><li>( 1 ) 计算群体中所有个体的适应度函数值(需要解码); </li></ul><ul><li>( 2 ) 利用比例选择算子的公式,计算每个个体被选中遗传到下一代群体的概率; </li></ul><ul><li>( 3 ) 采用模拟赌盘操作(即生成 0 到 1 之间的随机数与每个个体遗传到下一代群体的概率进行匹配)来确定各个个体是否遗传到下一代群体中。 </li></ul>
  85. 85. 交叉算子 <ul><li>所谓交叉运算,是指对两个相互配对的染色体依据交叉概率 P c 按某种方式相互交换其部分基因,从而形成两个新的个体。交叉运算是遗传算法区别于其他进化算法的重要特征,它在遗传算法中起关键作用,是产生新个体的主要方法。 SGA 中交叉算子采用单点交叉算子。 </li></ul>
  86. 86. 单点交叉运算 <ul><li>交叉前: </li></ul><ul><li>00000|01110000000010000 </li></ul><ul><li>11100|00000111111000101 </li></ul><ul><li>交叉后: </li></ul><ul><li>00000|00000111111000101 </li></ul><ul><li>11100|01110000000010000 </li></ul><ul><li>交叉点 </li></ul>
  87. 87. 变异算子 <ul><li>所谓变异运算,是指依据变异概率 P m 将个体编码串中的某些基因值用其它基因值来替换,从而形成一个新的个体。遗传算法中的变异运算是产生新个体的辅助方法,它决定了遗传算法的局部搜索能力,同时保持种群的多样性。交叉运算和变异运算的相互配合,共同完成对搜索空间的全局搜索和局部搜索。 SGA 中变异算子采用基本位变异算子。 </li></ul>
  88. 88. 基本位变异算子 <ul><li>基本位变异算子是指对个体编码串随机指定的某一位或某几位基因作变异运算。对于基本遗传算法中用二进制编码符号串所表示的个体,若需要进行变异操作的某一基因座上的原有基因值为 0 ,则变异操作将其变为 1 ;反之,若原有基因值为 1 ,则变异操作将其变为 0 。 </li></ul>
  89. 89. 基本位变异算子的执行过程 <ul><li>变异前: </li></ul><ul><li>00000111000 0 000010000 </li></ul><ul><li>变异后: </li></ul><ul><li>00000111000 1 000010000 </li></ul><ul><li>变异点 </li></ul>
  90. 90. 运行参数 <ul><li>( 1 ) M : 种群规模 </li></ul><ul><li>( 2 ) T : 遗传运算的终止进化代数 </li></ul><ul><li>( 3 ) P c : 交叉概率 </li></ul><ul><li>( 4 ) P m : 变异概率 </li></ul>
  91. 91. SGA 的框图 <ul><li>产生初始群体 </li></ul><ul><li>是否满足停止准则 </li></ul><ul><li>是 </li></ul><ul><li>输出结果并结束 </li></ul><ul><li>计算个体适应度值 </li></ul><ul><li>比例选择运算 </li></ul><ul><li>单点交叉运算 </li></ul><ul><li>基本位变异运算 </li></ul><ul><li>否 </li></ul><ul><li>产生新一代群体 </li></ul><ul><li>执行 M/2 次 </li></ul>
  92. 92. 大纲 <ul><li>学习主体 </li></ul><ul><li>ANN </li></ul><ul><li>遗传算法 </li></ul><ul><li>群体智能 </li></ul><ul><li>粒子群优化算法 </li></ul>
  93. 93. Swarm Intelligence <ul><li>Swarm Intelligence (SI) 的概念最早由 Beni 、 Hackwood 和在分子自动机系统中提出。分子自动机中的主体在一维或二维网格空间中与相邻个体相互作用,从而实现自组织。 1999 年, Bonabeau 、 Dorigo 和 Theraulaz 在他们的著作《 Swarm Intelligence: From Natural to Artificial Systems 中对群智能进行了详细的论述和分析,给出了群智能的一种不严格定义:任何一种由昆虫群体或其它动物社会行为机制而激发设计出的算法或分布式解决问题的策略均属于群智能。 </li></ul>
  94. 94. Swarm Intelligence( 续 ) <ul><li>Swarm 可被描述为一些相互作用相邻个体的集合体,蜂群、蚁群、鸟群都是 Swarm 的典型例子。鱼聚集成群可以有效地逃避捕食者,因为任何一只鱼发现异常都可带动整个鱼群逃避。蚂蚁成群则有利于寻找食物,因为任一只蚂蚁发现食物都可带领蚁群来共同搬运和进食。一只蜜蜂或蚂蚁的行为能力非常有限,它几乎不可能独立存在于自然世界中,而多个蜜蜂或蚂蚁形成的 Swarm 则具有非常强的生存能力,且这种能力不是通过多个个体之间能力简单叠加所获得的。社会性动物群体所拥有的这种特性能帮助个体很好地适应环境,个体所能获得的信息远比它通过自身感觉器官所取得的多,其根本原因在于个体之间存在着信息交互能力。 </li></ul>
  95. 95. Swarm Intelligence( 续 ) <ul><li>信息的交互过程不仅仅在群体内传播了信息,而且群内个体还能处理信息,并根据所获得的信息(包括环境信息和附近其它个体的信息)改变自身的一些行为模式和规范,这样就使得群体涌现出一些单个个体所不具备的能力和特性,尤其是对环境的适应能力。这种对环境变化所具有适应的能力可以被认为是一种智能(关于适应性与智能之间的关系存在着一些争议, Fogel 认为智能就是具备适应的能力),也就是说动物个体通过聚集成群而涌现出了智能。因此, Bonabeau 将 SI 的定义进一步推广为:无智能或简单智能的主体通过任何形式的聚集协同而表现出智能行为的特性。这里我们关心的不是个体之间的竞争,而是它们之间的协同。 </li></ul>
  96. 96. Swarm Intelligence( 续 ) <ul><li>James Kennedy 和 Russell C.Eberhart 在 2001 年出版了《 Swarm Intelligence 》,是群智能发展的一个重要历程碑,因为此时已有一些群智能理论和方法得到了应用。他们不反对 Bonabeau 关于 SI 定义,赞同其定义的基本精神,但反对定义中使用“主体”一词。其理由是“主体”所带有自治性和特殊性是许多 Swarm 的个体所不具备和拥有的,这将大大限制 Swarm 的定义范围。他们认为暂时无法给出合适的定义,赞同由 Mark Millonas ( 1994 )提出的构建一个 SI 系统所应满足的五条基本原则: </li></ul>
  97. 97. Swarm Intelligence( 续 ) <ul><li>[1] Proximity Principle: 群内个体具有能执行简单的时间或空间上的评估和计算的能力。 </li></ul><ul><li>[2] Quality Principle: 群内个体能对环境(包括群内其它个体)的关键性因素的变化做出响应。 </li></ul><ul><li>[3] Principle of Diverse Response: 群内不同个体对环境中的某一变化所表现出的响应行为具有多样性。 </li></ul><ul><li>[4] Stability Principle: 不是每次环境的变化都会导致整个群体的行为模式的改变。 </li></ul><ul><li>[5] Adaptability Principle: 环境所发生的变化中,若出现群体值得付出代价的改变机遇,群体必须能够改变其行为模式。 </li></ul>
  98. 98. Swarm Intelligence( 续 ) <ul><li>《 Swarm Intelligence 》最重要的观点是: Mind is social ,也就是认为人的智能是源于社会性的相互作用,文化和认知是人类社会性不可分割的重要部分,这一观点成为了群智能发展的基石。群智能已成为有别于传统人工智能中连接主义和符号主义的一种新的关于智能的描述方法。 </li></ul><ul><li>群智能的思路,为在没有集中控制且不提供全局模型的前提下寻找复杂的分布式问题求解方案提供了基础。在计算智能领域已取得成功的两种基于 SI 的优化算法是蚁群算法和粒子群算法。 </li></ul>
  99. 99. Swarm Intelligence( 续 ) <ul><li>目前,已有的基于 SI 的优化算法都是源于对动物社会通过协作解决问题行为的模拟,它主要强调对社会系统中个体之间相互协同作用的模拟。这一点与 EC 不同, EC 是对生物演化中适者生存的模拟。与 EC 一样的是, SI 的目的并不是为了忠实地模拟自然现象,而是利用他们的某些特点去解决实际问题。另一个与 EC 的相同点是 , 基于 SI 的优化算法也是概率搜索算法。 </li></ul>
  100. 100. Swarm Intelligence( 续 ) <ul><li>目前,已有的群智能理论和应用研究证明群智能方法是一种能够有效解决大多数优化问题的新方法,更重要是 , 群智能潜在的并行性和分布式特点为处理大量的以数据库形式存在的数据提供了技术保证。无论是从理论研究还是应用研究的角度分析 , 群智能理论及应用研究都是具有重要学术意义和现实价值的。 </li></ul>
  101. 101. Swarm Intelligence( 续 ) <ul><li>由于 SI 的理论依据是源于对生物群落社会性的模拟,因此其相关数学分析还比较薄弱,这就导致了现有研究还存在一些问题。首先,群智能算法的数学理论基础相对薄弱,缺乏具备普遍意义的理论性分析,算法中涉及的各种参数设置一直没有确切的理论依据,通常都是按照经验型方法确定,对具体问题和应用环境的依赖性比较大。其次,同其它的自适应问题处理方法一样,群智能也不具备绝对的可信性,当处理突发事件时 , 系统的反应可能是不可测的 , 这在一定程度上增加了其应用风险。另外 , 群智能与其它各种先进技术 ( 如 : 神经网络、模糊逻辑、禁忌搜索和支持向量机等 ) 的融合还不足。 </li></ul>
  102. 102. 蚁群算法 <ul><li>蚁群算法( Ant Colony Optimization, ACO )由 Colorni , Dorigo 和 Maniezzo 在 1991 年提出,它是通过模拟自然界蚂蚁社会的寻找食物的方式而得出的一种仿生优化算法。自然界种蚁群寻找食物时会派出一些蚂蚁分头在四周游荡,如果一只蚂蚁找到食物,它就返回巢中通知同伴并沿途留下“信息素”( pheromone ) 作为蚁群前往食物所在地的标记。 信息素会逐渐挥发,如果两只蚂蚁同时找到同一食物,又采取不同路线回到巢中,那么比较绕弯的一条路上信息素的气味会比较淡,蚁群将倾向于沿另一条更近的路线前往食物所在地。 </li></ul>
  103. 103. 蚁群算法 ( 续 ) <ul><li>ACO 算法设计虚拟的“蚂蚁”,让它们摸索不同路线,并留下会随时间逐渐消失的虚拟“信息素”。根据“信息素较浓的路线更近”的原则,即可选择出最佳路线。 </li></ul><ul><li>目前, ACO 算法已被广泛应用于组合优化问题中,在图着色问题、车间流问题、车辆调度问题、机器人路径规划问题、路由算法设计等领域均取得了良好的效果。也有研究者尝试将 ACO 算法应用于连续问题的优化中。由于 ACO 算法具有广泛实用价值,成为了群智能领域第一个取得成功的实例,曾一度成为群智能的代名词,相应理论研究及改进算法近年来层出不穷。 </li></ul>
  104. 104. 蚁群算法 ( 续 )
  105. 105. 大纲 <ul><li>学习主体 </li></ul><ul><li>ANN </li></ul><ul><li>遗传算法 </li></ul><ul><li>群体智能 </li></ul><ul><li>粒子群优化算法 </li></ul>
  106. 106. <ul><li>粒子群算法 (particle swarm optimization , PSO) 由 Kennedy 和 Eberhart 在 1995 年提出,该算法模拟鸟集群飞行觅食的行为,鸟之间通过集体的协作使群体达到最优目的,是一种基于 Swarm Intelligence 的优化方法。同遗传算法类似,也是一种基于群体叠代的,但并没有遗传算法用的交叉以及变异,而是粒子在解空间追随最优的粒子进行搜索。 PSO 的优势在于简单容易实现同时又有深刻的智能背景,既适合科学研究,又特别适合工程应用,并且没有许多参数需要调整。 </li></ul>PSO 算法简介
  107. 107. PSO 产生背景之一: 复杂适应系统 <ul><li>CAS 理论的最基本的思想可以概述如下 : </li></ul><ul><li>我们把系统中的成员称为具有适应性的主体 (Adaptive Agent) ,简称为主体。所谓具有适应性,就是指它能够与环境以及其它主体进行 交流 ,在这种交流的过程中“学习”或“积累经验”,并且根据学到的经验改变自身的结构和行为方式。整个系统的演变或进化,包括新层次的产生,分化和多样性的出现,新的、聚合而成的、更大的主体的出现等等,都是在这个基础上出现的。 </li></ul>
  108. 108. 复杂适应系统( CAS )续 <ul><li>CAS 的四个基本特点: </li></ul><ul><li>首先, 主体 (Adaptive Agent) 是主动的、活的实体; </li></ul><ul><li>其次, 个体与环境 ( 包括个体之间 ) 的相互影响,相互作用,是系统演变和进化的主要动力; </li></ul><ul><li>再次, 这种方法不象许多其他的方法那样,把宏观和微观截然分开,而是把它们有机地联系起来; </li></ul><ul><li>最后, 这种建模方法还引进了随机因素的作用,使它具有更强的描述和表达能力。 </li></ul>
  109. 109. PSO 产生背景之二 : 人工生命 <ul><li>人工生命“是来研究具有某些生命基本特征的人工系统。人工生命包括两方面的内容: </li></ul><ul><li>① 研究如何利用计算技术研究生物现象; </li></ul><ul><li>② 研究如何利用生物技术研究计算问题 (Nature Computation) 。 </li></ul><ul><li>我们现在关注的是第二部分的内容。现在已经有很多源于生物现象的计算技巧,例如 , 人工神经网络是简化的大脑模型 . 遗传算法是模拟基因进化过程的。现在我们讨论另一种生物系统:社会系统,更确切地说,是由简单个体组成的群落与环境以及个体之间的互动行为,也可称做 &quot; 群智能 &quot; 。 </li></ul>
  110. 110. 基本 PSO 算法 <ul><li>粒子群优化算法源于 1987 年 Reynolds 对鸟群社会系统 boids 的仿真研究, boids 是一个 CAS 。在 boids 中,一群鸟在空中飞行,每个鸟遵守以下三条规则: </li></ul><ul><li>1 )避免与相邻的鸟发生碰撞冲突; </li></ul><ul><li>2 )尽量与自己周围的鸟在速度上保持协调和一致; </li></ul><ul><li>3 )尽量试图向自己所认为的群体中靠近。 </li></ul><ul><li>仅通过使用这三条规则, boids 系统就出现非常逼真的群体聚集行为,鸟成群地在空中飞行,当遇到障碍时它们会分开绕行而过,随后又会重新形成群体。 </li></ul>
  111. 111. 基本 PSO 算法(续) <ul><li>Reynolds 仅仅将其作为 CAS 的一个实例作仿真研究,而并未将它用于优化计算中 。 </li></ul><ul><li>Kennedy 和 Eberhart 在中加入了一个特定点,定义为食物,鸟根据周围鸟的觅食行为来寻找食物。他们的初衷是希望通过这种模型来模拟鸟群寻找食源的现象,然而实验结果却揭示这个仿真模型中蕴涵着很强的优化能力,尤其是在多维空间寻优中。 </li></ul>
  112. 112. 基本 PSO 算法 ( 续 ) <ul><li>PSO 中,每个优化问题的解都是搜索空间中的一只鸟。称之为“粒子 (Particle)” 。所有的粒子都有一个由被优化的函数决定的适应值,每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索 . </li></ul><ul><li>PSO 初始化为一群随机粒子。然后通过叠代找到最优解。在每一次叠代中,粒子通过跟踪两个 &quot; 极值 &quot; 来更新自己。第一个就是粒子本身所找到的最优解。这个解叫做个体极值 pBest . 另一个极值是整个种群目前找到的最优解。这个极值是全局极值 gBest 。另外 , 也可以不用整个种群而只是用其中一部分的邻居。 </li></ul>
  113. 113. 基本 PSO 算法 ( 续 ) <ul><li>PSO 算法数学表示如下: </li></ul><ul><li>设搜索空间为 D 维,总粒子数为 n 。第 i 个粒子位置表示为向量 X i = ( x i1 , x i2 ,…, x iD ) ;第 i 个粒子 “飞行”历史中的过去最优位置(即该位置对应解最优)为 P i = ( p i1 ,p i2 ,…,p iD ) ,其中第 g 个粒子的过去最优位置 P g 为所有 P i ( i=1, …,n ) 中的最优;第 i 个粒子的位置变化率(速度)为向量 V i = ( v i1 , v i2 ,…, v iD ) 。每个粒子的位置按如下公式进行变化(“飞行”): </li></ul>
  114. 114. 基本 PSO 算法 ( 续 ) <ul><li>( 1 ) </li></ul><ul><li>( 2 ) </li></ul><ul><li>其中, C 1,C2 为正常数,称为加速因子; rand ( ) 为 [0 , 1] 之间的随机数; w 称惯性因子, w 较大适于对解空间进行大范围探查 (exploration) , w 较小适于进行小范围开挖 (exploitation) 。第 d ( 1 ≤d≤ D )维的位置变化范围为 [-XMAXd , XMAXd] ,速度变化范围为 [-VMAXd , VMAXd] ,迭代中若位置和速度超过边界范围则取边界值。 </li></ul>
  115. 115. 基本 PSO 算法 ( 续 ) <ul><li>粒子群初始位置和速度随机产生,然后按公式 (1)(2) 进行迭代,直至找到满意的解。目前,常用的粒子群算法将全体粒子群 (Global) 分成若干个有部分粒子重叠的相邻子群,每个粒子根据子群 (Local) 内历史最优 P l 调整位置,即公式 (2) 中 P gd 换为 P ld 。 </li></ul>
  116. 116. PSO 与 EC 的异同 <ul><li>首先, PSO 和 EC 所模拟的自然随机系统不一样。 EC 是模拟生物系统进化过程,其最基本单位是基因,它在生物体的每一代之间传播;而 PSO 模拟的是社会系统的变化,其最基本单位是“敏因”( Meme ),这一词由 Dawkin 在《 The Selfish Gene 》一书中提出,它是指思想文化传播中的基本单位,个体在社会中会根据环境来改变自身的思想, Meme 的传播途径是在个体与个体之间,在实际人类社会中它还可以在人脑与书本之间、人脑与计算机、计算机与计算机之间传播。 </li></ul>
  117. 117. PSO 与 EC 的异同(续) <ul><li>其次, EC 中强调“适者生存”,不好的个体在竞争中被淘汰; PSO 强调“协同合作”,不好的个体通过学习向好的方向转变,不好的个体被保留还可以增强群体的多样性。 EC 中最好的个体通过产生更多的后代来传播自己的基因,而 PSO 中的最佳个体通过吸引其它个体向它靠近来传播自己的敏因。 </li></ul>
  118. 118. PSO 与 EC 的异同(续) <ul><li>再次, EC 中的上一代到下一代转移概率只与上一代的状态相关,而与历史无关,它的个体只包含当前信息,其群体的信息变化过程是一个 Markov 链过程;而 PSO 中的个体除了有着位置和速度外,还有着过去的历史信息( pBest 、 gBest ),也就是具有记忆能力,上一代到下一代转移概率不仅与上一代的状态相关,而且与过去的历史相关,如果仅从群体的位置及速度信息来看,群体的信息变化过程不是一个 Markov 链过程。 </li></ul>
  119. 119. PSO 与 EC 的异同(续) <ul><li>最后, EC 的迭代由选择、变异和交叉重组操作组成,而 PSO 的迭代中的操作是“飞行”。在某种程度上看, PSO 的操作中隐含了选择、变异和交叉重组操作, gBest 和 pBest 的更新可以类似一种弱选择;而粒子位置更新则类似于 3 个父代: Xi 、 gBest 和 pBest 的之间重组,其中还包含了变异的成分。 PSO 中所隐含的变异是有偏好的,而并非通常的完全随机变异,这与最近对实际生物系统变异行为的新研究成果相符。 </li></ul>
  120. 120. PSO 与 EC 的异同(续) <ul><li>EC 和 PSO 所分别模拟的两个伟大的自然随机系统: Evolution 和 Mind 之间存在着显著的差异,尽管它们都是基于群体的,都是由其中的随机成分带来创新,但其本质是不同的,因此不能将 PSO 简单地归类于 EC 中。 </li></ul>
  121. 121. 本章—完

×