107
知知知知 知知知知 ) 知知知知 知知知 中中中中中中中中中中中中 知知知知 Evolutionary Computatio

知识发现(数据挖掘 ) 第十二章

  • Upload
    afram

  • View
    141

  • Download
    0

Embed Size (px)

DESCRIPTION

知识发现(数据挖掘 ) 第十二章. 进化计算 Ev o lutionary Computation. 史忠植 中国科学院计算技术研究所. 内 容. 1 3.1 概述 1 3.2 进化系统理论的形式模型 1 3.3 达尔文进化算法 1 3.4 遗传算法 1 3.5 遗传算法的理论基础 1 3.6 遗传算法的改进 1 3.7 遗传机器学习—分类器系统 1 3.8 桶链算法 1 3.9 规则发现系统 1 3.10 进化策略 1 3.11 进化规划. 1 3.1 概 述. - PowerPoint PPT Presentation

Citation preview

Page 1: 知识发现(数据挖掘 ) 第十二章

知识发现(数据挖掘 )第十二章

史忠植 中国科学院计算技术研究所

进化计算 Evolutionary Computation

Page 2: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 2

内 容13.1 概述13.2 进化系统理论的形式模型13.3 达尔文进化算法13.4 遗传算法13.5 遗传算法的理论基础13.6 遗传算法的改进13.7 遗传机器学习—分类器系统13.8 桶链算法13.9 规则发现系统13.10 进化策略13.11 进化规划

Page 3: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 3

13.1 概 述 进化计算是通过模拟自然界中生物进化机制进行搜索的一种算法。

Page 4: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 4

发展历史 进化计算的研究起源于 20 世纪 50 年代。 1965 年, Holland 首次提出了人工遗传操作的重要性,并把这些应用于自然系统和人工系统中。 大约在同一时期: Rechenberg和 Schwefel 提出了进化策略。 Fogel 提出了进化规划。

Page 5: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 5

发展历史 1967 年, Bagley 在他的论文中首次提出了遗传算法这一术语,并讨论了遗传算法在自动博弈中的应用。 1970 年, Cavicchio 把遗传算法应用于模式识别中。第一个把遗传算法应用于函数优化的是 Hollstien。

Page 6: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 6

发展历史• 1975 年是遗传算法研究的历史上十分重要的一年。这一年, Holland 出版了他的著名专著《自然系统和人工系统的适应性》该书系统地阐述了遗传算法的基本理论和方法,并提出了对遗传算法的理论研究和发展极为重要的模式理论( schemata theory),该理论首次确认了结构重组遗传操作对于获得隐并行性的重要性。• 同年, DeJong完成了他的重要论文《遗传自适应系统的行为分析》。他在该论文中所做的研究工作可看作是遗传算法发展过程中的一个里程碑,这是因为他把 Holland的模式理论与他的计算使用结合起来。

Page 7: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 7

发展历史• 1989 Goldberg对遗传算法从理论上,方法上和应用上作了系统的总结。• 1990 年, Koza 提出了遗传规划( Genetic

Programming )的概念。(用于搜索解决特定问题的最适计算机程序)

Page 8: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 8

遗传算法与自然进化的比较自然界染色体基因等位基因 (allele)染色体位置 (locus)基因型 (genotype)表型 (phenotype)

遗传算法字符串字符 , 特征特征值字符串位置结构参数集 , 译码结构

Page 9: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 9

新达尔文进化理论的主要论点1) 个体是基本的选择目标 ;2) 随机过程在进化中起重大作用 , 遗传变异大部分是偶然现象 ;3) 基因型变异大部分是重组的产物 , 特别是突变 ;4) 逐渐进化可能与表型不连续有关 ;5) 不是所有表型变化都是自然选择的必然结果 ;6) 进化是在适应中变化的 , 形式多样 , 不仅是基因的变化 ;7) 选择是概率型的 , 而不是决定型的。

Page 10: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 10

进化计算的三大主流板块 Holland 提出的遗传算法 (Genetic Algorithm)。 Rechenberg和 Schwefel 提出的进化策略

(Evolutionary Strategies)。 Fogel 提出的进化规划 (Evolutionary

Programming) ,又称为进化程序设计。 本章将着重介绍遗传算法,对进化策略和进化规划只作简单介绍。

Page 11: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 11

13.2 进化系统理论的形式模型 进化在个体群体中起作用。瓦铤顿 (Waddington)指出基因型和表型之间关系的重要性 (Waddington 1974) 。群体禁止异构环境。但是“后生环境”是多维空间。表型是基因型和环境的产物。然后表型通过异构“选择环境 " 发生作用。注意,这种多维选择环境与后生环境空间是不同的。现在,适应性是表型空间和选择环境空间的产物。它经常被取作一维,表示多少子孙对下一代作出贡献。 基于这种想法,莫楞贝 (Muhlenbein) 和肯德曼(Kindermann)提出了一种称为进化系统理论的形式模型 (Muhlenbein 1989) 。

Page 12: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 12

进化系统理论的形式模型进化的主要过程

后生环境遗传操作符 选择环境g p

Page 13: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 13

进化系统理论的形式模型}),,...,({ 1 iin AaaagGS 基因型空间:

}),,...,({ 1 IRppppPS im 表型空间:

其中, g 是基因型 p 是表型。 基因 gi 的可能值称为等位基因。在门德尔 (Mendel) 遗传学中,假设每个基因有有限数的等位基因。

Page 14: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 14

进化系统理论的形式模型},...,{ 1 kEPEPEP 后生环境:

),( EPgfpPSEPGSf

:变换函数:

IRtESpq i ),,(质量函数:

这个变换函数给出了模型,说明表型的发展是通过基因与环境的交互作用。变换过程是高度非线性的。

Page 15: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 15

进化系统理论的形式模型 IRtESpq i ),,(质量函数:

质量函数 q给出了具体选择环境 ESi下表型的质量,其定义如下:

质量定义适应度,用于达尔文选择。至今已有三种具体范例的通用模型,即  门德尔遗传学  遗传生态学  进化配子

Page 16: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 16

门德尔遗传学在门德尔遗传学中,基因型被详细模型化,而表型和环境几乎被忽略。在遗传生态学中恰好相反。进化配子论是从社会生物学导出的模型。 首先让我们讨论门德尔遗传学的选择模型。为了简单起见,我们假设一个基因具有 n 等位基因 a1,…,an 。 二倍基因型以元组 (ai,aj) 为特征。 我们定义pi,j 为总群体中基因型 (ai,aj) 的频度。假设基因型与表型相等。质量函数给每个表型赋值。 q(ai,aj) = qi,j qi,j 可以被解释为出生率减去死亡率

Page 17: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 17

门德尔遗传学 假设 p’i,j是下一代表型 (ai,aj) 的频度。然后达尔文选择根据选择方程调整表型的分布 :

Qq

pp jijiji

,,,'

jiji

ji pqQ ,,

,

是群体的平均适应度。Q

Page 18: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 18

门德尔遗传学设 pi 是群体中等位基因的频率。如果 pi,j = pi pj

那么,我们得到在 GS 中的一个选择方程为 QQpp iii '

jj

jii pqQ ,

Page 19: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 19

门德尔遗传学这个离散的选择方程可以用连续方程近似 :

QQQpdtdp

iii /)(

如果 qi,j = qj,i, 那么

)( QQpdtdp

iii

Page 20: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 20

门德尔遗传学这个方程很容易被证明 :

0)(2))((222 QVarQQE

dtQd

这个结果称作菲希尔 (Fisher)基本定理。它说明平均适应度随适应度的差别呈正比例增加。实际上,全部可能的基因型仅有一部分实现。这就是遗传操纵子探索基因型空间的任务,其个体数目相当小。这些操纵子是群体遗传变异性的来源。最重要的操纵子是突变和重组。

Page 21: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 21

13.3 达尔文进化算法根据定量遗传学,达尔文进化算法采用简单的突变 /选择动力学。达尔文算法的一般形式可以描述如下:

)/(),/(

是一代的双亲数目, 为子孙数目。整数 称作“混杂”数。如果两个双亲混合他们的基因,则 = 2 。仅 是最好的个体才允许产生子孙。逗号表示双亲们没有选择,加号表示双亲有选择。

Page 22: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 22

13.3 达尔文进化算法1) 建立原始种体。2) 通过突变建立子孙。

3) 选择:4) 返回到步骤 (1) 。

11' sgs

111 '' Zsxx …

sgs '

Zsxx ''

)}'({max)(1

xQxQi

Page 23: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 23

遗传算法思想来源于生物进化过程 , 它是基于进化过程中的信息遗传机制和优胜劣汰的自然选择原则的搜索算法 (以字符串表示状态空间 ) 。遗传算法用概率搜索过程在该状态空间中搜索,产生新的样本。

13.4 遗传算法

Page 24: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 24

遗传算法的特点特点: 通用 鲁棒 次优解、满意解遗传算法能解决的问题: 优化 NP完全 NP难 高度复杂的非线性问题

Page 25: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 25

遗传算法 遗传算法先将搜索结构编码为字符串形式 , 每个字符串结构被称为个体。 然后对一组字符串结构 ( 被称为一个群体 ) 进行循环操作。每次循环被称作一代 ,包括一个保存字符串中较优结构的过程和一个有结构的、随机的字符串间的信息交换过程。 类似于自然进化,遗传算法通过作用于染色体上的基因寻找好的染色体来求解问题。

Page 26: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 26

遗传算法 与自然界相似,遗传算法对求解问题的本身一无所知,它所需要的仅是对算法所产生的每个染色体进行评价,并基于适应值来选择染色体,使适应性好的染色体有更多的繁殖机会。 在遗传算法中,位字符串扮演染色体的作用,单个位扮演了基因的作用,随机产生一个体字符串的初始群体,每个个体给予一个数值评价,称为适应度,取消低适应度的个体,选择高适应度的个体参加操作。 常用的遗传算子有复制、杂交、变异和反转。

Page 27: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 27

遗传算法与传统优化算法的主要不同1) 遗传算法不是直接作用在参变量集上 , 而是利用参变量集的某种编码 ;2) 遗传算法不是从单个点 , 而是在群体中从一个点开始搜索 ;3) 遗传算法利用适应值信息 , 无需导数或其它辅助信息 ;4) 遗传算法利用概率转移规则 , 而非确定性规则。

Page 28: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 28

遗传算法的准备工作1)确定表示方案 ;

2)确定适应值的度量 ;

3)确定控制该算法的参数和变量 ;

4)确定怎样指定结果及程序运行结束的标准。

Page 29: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 29

基本遗传算法基本遗传算法 (Simple Genetic Algorithm:SGA) 又称为简单遗传算法,只使用选择算子、交叉算子和变异算子这三种基本的遗传算子。其遗传操作简单、容易理解,是其它遗传算法的雏形和基础。基本遗传算法的构成要素:1、染色体编码方法:首先必须对问题的解空间进行编码,使之能用遗传算法进行操作。较常用的是二进制编码方法,现在使用非二进制编码的也逐渐增多。2、适应度函数( fitness function ,又称为适应值/适值函数)用来评价一个染色体的好坏。

Page 30: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 30

基本遗传算法的构成要素3、遗传算子• 选择算子 (selection) :又称为复制算子。按照某种策略从父代中挑选个体进入下一代,如使用比例选择、轮盘式选择。• 交叉算子 (crossover) :又称为杂交算子。将从群体中选择的两个个体,按照某种策略使两个个体相互交换部分染色体,从而形成两个新的个体。如使用单点一致交叉。• 变异算子 (mutation) :按照一定的概率(一般较小),改变染色体中某些基因的值。

Page 31: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 31

杂交操作举例),( tCv j

1

0

2

2

0

2

0

1[No Offspring]

Pt. of interchange[Crossover]

jC[Parents]

jC[Offspring]

1110###0#

1##0111##

0001##11#

010##1000

#00####11

0#01##10#

###100100

100##0111

6

17

1

1110##11#

0001###0#

0001##11#

#00####11

#00####11

0#01##10#

000##0111

1#01##10#

Page 32: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 32

变异操作简单的变异操作过程如下 : 每个位置的字符变量都有一个变异概率 , 各位置互相独立。通过随机过程选择发生变异的位置:

产生一个新结构 , 其中 是从对应位置 的字符变量的值域中随机选择的一个取值。 可以同样得到。

lxxx ,...,, 21

txxxxxx ssssssssa ...'...'...' 11111 222111

1'xs 1x

kxx ss ',...,'2

Page 33: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 33

反转操作简单反转操作的步骤如下 :1)从当前群体中随机选择一个结构2)从中随机选择两个数 i’和 j’, 并定义 i = min{i',j'}, j=max{i',j'};3)颠倒 a 中位置 i、 j 之间的部分 , 产生新的

结构

lsssa ...21

ljijji ssssssss ......... 12121

Page 34: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 34

基本遗传算法的构成要素4、运行参数N :群体大小,即群体中包含的个体的数量。T :遗传算法终止的进化代数。Pc :交叉概率,一般取为 0.4~ 0.99 。Pm :变异概率,一般取为 0.0001~ 0.1 。

Page 35: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 35

基本遗传算法1. 随机产生一个由固定长度字符串组成的初始群体 ;2. 对于字符串群体,迭代地执行下述步骤,直到选种标准被满足为止:

1) 计算群体中的每个个体字符串的适应值 ;2) 应用下述三种操作 (至少前两种 )来产生新的群体 :

• 复制 : 把现有的个体字符串复制到新的群体中。• 杂交 : 通过遗传重组随机选择两个现有的子字符串 ,

产生新的字符串。• 变异 : 将现有字符串中某一位的字符随机变异。

3. 把在后代中出现的最高适应值的个体字符串指定为遗传算法运行的结果。这一结果可以是问题的解 (或近似解 ) 。

Page 36: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 36

基本遗传算法流程图GEN=0

概率地选择遗传操作

随机创建初始群体

计算群体中每个个体的适应值i:=0

显示结果结束

GEN:=GEN+1是

是否

(转下页)i=N?

GEN=M?

1

Page 37: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 37

概率地选择遗传操作

根据适应值选择一个个体

完成交叉

i:=i+1

i:=i+1复制个体

p(r) 选择(接上页)

基于适应值选择两个个体

把新的两个孩子加到群体中

p(c)交叉 变异 p(m)

把新的孩子加入到群体中

完成变异

根据适应值选择一个个体

把变异后个体加入到群体中

1

Page 38: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 38

轮盘式选择 首先计算每个个体 i 被选中的概率

然后根据概率的大小将将圆盘分为 n 个扇形,每个扇形的大小为 。选择时转动轮盘,参考点 r落到扇形 i 则选择个体 i 。

n

j

i

jf

ifp

1

)(

)(

.

..

.. .

p1

p2

pi

r

ip2

Page 39: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 39

单点一致交叉 首先以概率 pc从种群中随机地选择两个个体 p1、 p2 。在内随机选择一个数 , 作为交叉的位置,称为交叉点。然后将两个个体交叉点后面的部分交换。

例如: 0110 101100 0110 011001 1100 011001 1100 101100

Page 40: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 40

一致变异 以概率对种群中所有个体的每一位进行变异。 对于个体 pi 的第 j 位,在 [0,1] 的范围内随机地

生成一个数 r, 如果 r < , 则对第 j 位取反,否则保持第 j 位不变。

Page 41: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 41

遗传算法举例问题:求( 1 )编码: 此时取均长为 5 ,每个染色体( 2 )初始群体生成:群体大小视情况而定,此处设

置为 4 ,随机产生四个个体: 编码: 01101 , 11000 , 01000 , 10011 解码: 13 24 8 19 适应度: 169 576 64 361( 3 )适应度评价:

]31,0[,)( 2 xxxfMax11111~00000x

5}1,0{

2)( xxfitness

Page 42: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 42

( 4 )选择:选择概率 个体: 01101 , 11000 , 01000 , 10011 适应度: 169 576 64 361 选择概率: 0.14 0.49 0.06 0.31选择结果: 01101 , 11000 , 11000 , 10011( 5 )交叉操作:发生交叉的概率较大 哪两个个体配对交叉是随机的 交叉点位置的选取是随机的(单点交叉) 0110 1 01100 11 000 11 011 1100 0 11001 10 011 10 000

ffP ii / 1170f

...9.0,8.0cP

遗传算法举例

Page 43: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 43

( 6 )变异:发生变异的概率很小( 7 )新群体的产生: 保留上一代最优个体,一般为 10%左右,至少 1 个 用新个体取代旧个体,随机取代或择优取代。 11000 , 11011 , 11001 , 10011( 8 )重复上述操作:说明: GA 的终止条件一般人为设置; GA 只能求次优解或满意解。分析:按第二代新群体进行遗传操作,若无变异,永远也找不到最优解——择优取代有问题。 若随机的将个体 01101 选入新群体中,有可能找到最优解。

0001.0mP

遗传算法举例

Page 44: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 44

13.5 遗传算法的理论基础13.5.1 模式的定义 遗传算法的理论基础是遗传算法的二进制表达式及模式的含义。模式是能对染色体之间的相似性进行解释的模板。 [ 定义 1] 设 GA 的个体 ,记集合 则称 为一个模式,其中*是通配符。 即模式 (schema) 是含有通配符 (*)的一类字符串的通式表达。每个“ *” 可以取“ 1”或者“ 0” 。

lBp lS ,*}1,0{Ss

Page 45: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 45

模式举例 模式 *10101110 与以下两个字符串匹配: 010101110 110101110 而模式 *1010* 110 与以下四个字符串匹配: 010100110 010101110 110100110 110101110

Page 46: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 46

模式的定义 [ 定义 2] 一个模式 s 的阶是出现在模式中的“ 0” 和“ 1” 的数目,记为 o(s)。 如:模式“ 0****” 的阶为 1 ,模式“ 10*1*” 的阶为3。 [ 定义 3] 一个模式 s 的长度是出现在模式中第一个确定位置和最后一个确定位置之间的距离,记为 。 如:模式“ 01***” 的长度为 1 ,模式“ 0***1” 的长度为 3。 )(s

Page 47: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 47

模式定理 假定在给定的时间步 t, 一个特定的模式 s 在群体 P(t) 中包含由m 个代表串,记为

m=m(s,t) 。首先,我们暂不考虑交叉和变异操作。每个串根据适应值的大小获得不同的复制概率。串 i 的复制概率为:

n

j

i

jf

ifp

1

)(

)( ( 1)

Page 48: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 48

模式定理 则在群体 P(t+1) 中,模式 s 的代表串的数量的期望值为:

n

j

jf

sfntsmtsmE

1

)(

)(),()1,(

• 其中, 表示模式 s在 t 时刻的所有代表串的适应值的均值,称为模式 s 的适应值。)(sf

( 2)

Page 49: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 49

模式定理若记 P(t) 中所有个体的适应值的平均值为:

n

jff

n

j 1

)(

( 3 )• 则 (2) 式可以表示为:

fsftsmtsmE )(),()1,(

Page 50: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 50

模式定理 (3) 式表明,模式 s 的代表串的数目随时间增长的幅度正比于模式 s 的适应值与群体平均适应值的比值。即:适应值高于群体平均值的模式在下一代的代表串数目将会增加,而适应值低于群体平均值的模式在下一代的代表串数目将会减少。 假设模式的适应值为 , 其中 c 是一个常数,则 (3) 式可写为: fc)1(

Page 51: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 51

模式定理

( 4)• 上式表明,在平均适应值之上(之下)的模式,将会按指数增长(衰减)的方式被复制。

1)1()0,()1(),(

)1(),()1,(

tcsmctsm

ffctsmtsmE

Page 52: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 52

模式定理• 复制的结果并没有生成新的模式。因而,为了探索搜索空间中的未搜索部分,需要利用交叉和变异操作。• 下面先探索交叉对模式的影响。 模式 s1=“*1****0”和 s2=“***10**” 交叉会改变模式的一部分,模式的长度越长,被破坏的概率越大。

Page 53: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 53

模式定理• 假定模式 s 在交叉后不被破坏的概率为

ps ,则:

• 若交叉概率为 pc,则 s 不被破坏的概率为1)(1

lsps

1)(1

lspp cs

Page 54: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 54

模式定理( 5)

• 所以,再考虑交叉时, (3) 式可表示为

• 最后,考虑变异算子对模式的影响。变异算子以概率 pm 随机地改变个体某一位的值。只有当 o(s) 个确定位的值不被破坏时,模式 s才不被破坏。

1)(1)(),()1,(

lsp

fsftsmtsmE c

Page 55: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 55

模式定理• 模式 s 在变异后不被破坏的概率:

• Pm<<1, 可近似地表示为 )(1 so

ms pp

)(1 sopp ms

Page 56: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 56

模式定理

( 6)

• 因此,考虑交叉和变异时, (3) 式可表示为

mc

mcmc

psolsp

fsftsm

psolsppso

lsp

fsftsmtsmE

)(1)(1)(),(

)(1)()(

1)(1

)(),()1,(

Page 57: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 57

模式定理由 (6)我们得到一个重要的定理。 [ 定理 1] 模式定理 (Schema Theorem) 适应值在群体适应值之上的、长度较短的、低阶的模式在 GA 的迭代中将按指数增长方式被复制。

Page 58: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 58

积木块假设Holland和 Goldberg 在模式定理的基础上提出了“积木块假设” (Building Block

Hypothesis):低阶、长度较短、高于平均适应度的模式 (积木块 ) 在遗传算子的作用下,相互结合,能生成高阶、长度较长、适应度较高的模式,并得到全局最优解。

Page 59: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 59

遗传算法的收敛性分析 算法的收敛性可以定义如下: 定义: 若算法在 t 时刻的种群满足

则称算法收敛到。 关于遗传算法的收敛性, Michalewicz证明了基于压缩原理的收敛性定理。而 Rudolph证明了基于

Markov 链的收敛性定理。

Xxxxtt

00lim

Page 60: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 60

遗传算法的改进遗传算法的局限性:遗传算法得到了广泛应用,但也暴露了一些问题,如:遗传算法在解决某些问题时速度较慢;遗传算法对编码方案的依赖性较强,算法的鲁棒性不够好等。这些问题主要归结为:( 1 )上位 (epistasis)效应上位效应包括两个方面:多基因性和基因多效性。

Page 61: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 61

遗传算法的改进( 2 )编码方案最初使用最多的是二进制位串,但此类编码并不适合一些实际问题。现在人们已经探索了许多其它方案,如浮点表示、树形表示等等。( 3 )积木块假设积木块假设是否成立,是否一定存在短的、低阶的、高适应值的积木块?若构成问题最优解的所有低阶模式的适应值都较低,这是 GA很难收敛到最优解,此类问题称为“欺骗问题”。

Page 62: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 62

遗传算法的改进( 4 )早熟收敛即 GA收敛到一个局部最优解。Schraudolph和 Belew 提出“动态参数编码”方案来解决早熟收敛问题。关于遗传算法的一些改进措施,有兴趣的同学可查找相关资料。

Page 63: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 63

遗传机器学习-分类器系统 机器学习是人工智能的一个重要研究领域,也是人工智能的一个重要的应用领域。 遗传机器学习 (Genetics Based Machine Learning,

GBML) 时将遗传算法与机器学习系统相结合的产物。

Page 64: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 64

遗传机器学习系统的一般框架任务子系统

学习子系统

任务检测器 …1d

md…

1e

me任务效应器

执行效应器执行检测器

Page 65: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 65

匹兹堡方法和密西根方法 遗传机器学习有两种重要的实现方法: 一种是由匹兹堡 (Pittsburgh) 大学的 De Jong和他的学生 Smith 提出的。该方法用整个规则集合表示一个个体, GAs 维护一个包含一定数目的候选规则集的种群。这种方法称为匹兹堡方法。

Page 66: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 66

匹兹堡方法和密西根方法另一种方法是由密西根 (Michigan) 大学的

Holland 和他的学生 Reitman 提出的。该方法每个个体表示一条规则,而整个种群就是规则集。这种方法称为密西根方法。Holland 提出的分类器系统采用的是密西根方法。

Page 67: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 67

分类器系统Holland 和他的同事提出了一种分类器系统的认知模型 ,其中的规则不是规则集 , 而是遗传算法操纵的内部实体。图 11.3 给出了分类器系统的一般结构 , 从分类器系统看学习 , 它由三层动作构成 ,即执行子系统、信用赋值子系统和发现子系统。

Page 68: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 68

分类器系统发现

[ 遗传算法 ]信用赋值[ 桶链 ]

执行[ 分类器系统 ]

消息来自输入接口

支付

消息送出输出接口

(目标)来自内部监控器的消息图 11.3 分类器系统的一般结构

Page 69: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 69

分类器系统 执行子系统处在最低层 , 直接与环境进行交互。它与专家系统相同 ,由产生式规则构成。但是 , 它们是消息传送 ,高度平行。这类规则称作分类器。  分类器系统中的学习 , 要求环境提供反馈 , 确认所希望的状态是否达到。系统将评价这些规则的有效性 , 这些活动常常称作信用赋值。有些特定算法专门用来实现信用赋值 , 例如 , 桶链算法。  最后一层是发现子系统 , 该系统必须产生新的规则 , 取代当前用处不大的规则。通过系统累积的经验产生规则。系统根据适应值 , 使用遗传算法选择、重组和取代规则。

Page 70: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 70

分类器系统 分类器系统是平行执行、消息传递和基于规则的系统。在简单的方案中 ,消息采用规定的字母 , 全部为固定长度。全部规则采用条件 /动作形式。每个条件规定必须满足的信息 , 每个动作规定当条件满足时所发送的消息。 为了方便 , 假设消息采用长度为的二进制字符串记录 , 字符采用子集 {1, 0, #} 。

Page 71: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 71

规则与消息产生式规则: IF <条件 > THEN < 动作 >约定:条件的长度是固定的,用二进制数表示。定义:

kimmmmmessage ik ,...,1},1,0{,,...,,:: 21

为通配符#,,...,1},#,1,0{,,...,,:: 21 kisssscondition ik

messageconditionclassifier /::

If sj = 1 or sj = 0, then mj = sj If sj = #, then mj can be either 1 or 0.

Page 72: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 72

规则与消息 满足要求的全部消息构成子集 , 即每个子集是在消息空间的一个超平面。分类器系统是由一组分类器 {C1, C2,…, CN}、一个消息表、输入接口、输出接口构成。每部分的主要功能如下 :  (1) 输入接口将当前环境状态翻译成标准消息。 (2) 分类器根据规则 , 规定系统处理消息的过程。 (3) 消息表包含当前全部消息。 (4) 输出接口将结果消息翻译成效应器动作 , 修改环境状态。

Page 73: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 73

分类器系统的基本结构分类器

消息表(a)全部消息进行条件测试

条件 消息规约

输出接口

送到环境

输入接口

来自环境

(a)

(b)

(b) 选中分类器产生新消息

Page 74: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 74

分类器基本算法1) 将输入接口全部消息放入消息表。2) 将消息表中的全部消息与全部分类器所有条件比较 , 记录所有匹配。3) 满足分类器条件部分的每组匹配 , 将其动作部分所规定的消息送到新的消息表。4) 用新的消息表取代消息表中的全部消息。5) 将消息表中的消息翻译成输出接口的要求 , 产生系统当前的输出。6) 返回到步骤 (1) 。

Page 75: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 75

简单的视觉分类器系统视觉向量 视野 运动向量

对象

检测器

1 1 1 10…

消息

1d2d

3d4d

Page 76: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 76

性质检测器规定的值1d

1 ,如果移动对象0 ,其它

),( 32 dd(0,0) ,如果对象在视野的中间(1,0) ,如果对象在中心的左边(0,1) ,如果对象在中心的右边

4d1 ,如果系统是对象的近邻0 ,其它

5d1 ,如果对象很大0 ,其它

6d1 ,如果对象是狭长的0 ,其它

Page 77: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 77

规则表示规则:IF 如果有“捕食 (prey)”(small, moving,nonstriped object),

处于视野中间 (centered), 非邻近 (nonadjacent),THEN 迅速移向对象 (ALIGN), (FAST).

可以表示为:00#########000001 / 0100000000000000, ALIGN, FAST.

Page 78: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 78

网络图[MOVING]

11 d[SMALL]

05 d[NOT STRIPED]

06 d[NEAR]

010 d[FAR]

110 d

01001[ALERT]

10001[TARGET]

11001[PORSUE]

11010[APPROACH]

11011[FLEE]

11100[FREEZE]

10010[DANGER]

Page 79: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 79

网络图的规则表示MOVING和 ALERT 之间的箭头:00#############1/01001###########SMALL, NOT STRIPED and ALERT到

TARGET 的箭头:00########00#### , 01001###########/10001###########

Page 80: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 80

学习机制分类器系统使用两个学习机制,• 桶链 (bucket brigade) 算法。基于对系统的贡献 , 对现有规则分配一个信用值。• 规则发现算法。这包括遗传算法,该算法可产生新规则,用于改善系统的知识库。

Page 81: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 81

桶链算法 桶链 (bucket brigade) 算法基于对系统的贡献 , 对现有规则分配一个信用值。主要解决多条规则同时要求被激活时的竞争问题。 例如:下面的情况下应该选择哪条规则。

0111→01# # : 0000→# #00 : 0001→00# 0 : 1100

Page 82: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 82

主要问题引入信用值后的两个问题: 当多条规则同时要求被激活时,如何解决竞争问题 对一规则被激活产生过作用的那些规则如何分配信用

Page 83: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 83

桶链算法为解决上述两个问题,引入拍卖行和票据交易所: 当有多个分类器获得匹配时,每个分类器要出一个与其强度成正比的叫价 B 叫价高的分类器被激活并允许发送消息,同时通过票据交易所 , 将其叫价 B 提供给激活的分类器。 如此继续下去,一条规则可通过消费者获利(增加了强度),通过规则的不断激活形成一条消费者链,直至最终消费者(达到目标)直接从环境中得到补偿。 若链中一条规则导致错误结论,则序列上该规则的强度将减弱,并且沿着序列回溯,从而产生新的消费者链

Page 84: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 84

举 例环境 0111 ,强度为 0 ,叫价系数为 0.1 。索引号 分类器 强度 1 01# # : 0000 200 2 00# 0 : 1000 200 3 11# # : 1000 200 4 # #00 : 0001 200

Page 85: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 85

第一步分类器 强度 消息 匹配 叫价01# # : 0000 200 E 2000# 0 : 1000 20011# # : 1000 200# #00 : 0001 200

Page 86: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 86

第二步分类器 强度 消息 匹配 叫价01# # : 0000 180 000000# 0 : 1000 200 1 2011# # : 1000 200# #00 : 0001 200 1 20

两条规则同时激活

Page 87: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 87

第三步分类器 强度 消息 匹配 叫价01# # : 0000 22000# 0 : 1000 180 110011# # : 1000 200 2 20# #00 : 0001 180 0001 2 18

Page 88: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 88

第四步分类器 强度 消息 匹配 叫价01# # : 0000 22000# 0 : 1000 21811# # : 1000 180 1000# #00 : 0001 162 3 16

Page 89: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 89

第五步分类器 强度 消息 匹配 叫价 强度01# # : 0000 220 22000# 0 : 1000 218 21811# # : 1000 196 196# #00 : 0001 146 0001 206规则 4 达到目标获得补偿 60 。

Page 90: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 90

投标改变分类器的强度

在时间 t满足 C送去消息的分类器

),(),(),()1( 3211 tCBtCBtCBCV

1C

1C

1C

),( 1 tCB

),( 2 tCB

),( 3 tCB

对在 t-1 作用的分类器投标在时间 t 对分类器 C 的支持

Page 91: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 91

分类器中的遗传算法遗传算法可产生新规则,用于改善系统的知识库。可以在三种情况下应用 GA:1)引入一个参数 T (时间间隔),用于控制何时使用 GA。2) 特殊情况时(如消息的条件都不能匹配)使用 GA。3) 系统的性能太差。

Page 92: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 92

算法步骤1) t=0 ,随机生成集合 Bt, |Bt|=M (大小);2) 计算 Bt 中全体分类器的平均强度 Vt ,对每个分类器赋予一个标准强度 St(Cj)/Vt;3) 给 Bt 中的每个分类器 Cj赋予一个与其标准强度成正比的概率,并根据 Bt 中的概率分布,从 Bt中选取 n 个分类器, n<<M;4) 对每个分类器应用交叉算子,生成 2n 个分类器;5) 将 Bt 中的 2n 个强度最低的分类器用新生成的 2n个取代;6) t=t+1 ,转 (2) 。

Page 93: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 93

算法说明1) 算法中 S0(Cj) 是预知的;2)实现时考虑结束条件;3)该算法是经典 GA 的变种,其中没有变异算子;4)新分类器的强度是由旧分类器的强度决定的。

Page 94: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 94

分类器强度调整算法1) 将与所选动作相同的分类器形成子集 [M] ,称作动作集

[A] 。将不在 [M] 中的其它分类器放在集合 NOT[A] 中。2) 在 [A] 中的全部分类器强度减少一个分数 e。3) 如果系统决策正确,则将赢利量 R 分配给 [A] 的强度 ;4) 如果系统决策错误,则将赢利量 R'( 其中 0≤R'≤R) 分配给

[A] 的强度,从 [A] 的强度减少一个分数 p 。至少 R'和 p中的一个为 0 。

5) 从 NOT[A] 中的强度减去一个分数 t。

Page 95: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 95

规则发现系统 在规则发现系统中 , 学习经常是首先评价系统现有的规则质量 , 然后进行修改。 Grefenstette 研制了一种规则发现系统RUDI 。问题求解级由简化的分类器系统组成。学习级是对知识结构群体进行遗传算法操作 , 每一个表示为一组规则表。知识结构的整个行为控制这些结构的复制。 在 RUDI 中 , 信用赋值方法赢利共享规划 (Profit-Sharing Plan, 简称 PSP) 和桶链算法 (BBA) 对每个规则提供互补的效用信息。根据期望的外部奖励 , PSP-强度对规则效用提供更精确的评估。当问题求解时它被用作冲突消解。与此相反 , BBA-强度表示规则之间的动态相关性 , 规则点火依次会聚到相似水平。这种测度可以用作一组协作规则的聚类。

Page 96: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 96

规则发现系统 Grefenstette 提出一种强度修改方案称作嬴利共享规划PSP。在这种方案中问题求解划分成情节 , 按所接受的外部奖励区分。如果任何步情节在投标竞争中获胜 , 则认为该规则在该情节活动。在情节 t, PSP 修改每个活动规则 Ri 的强度 Si(t) 如下 : )1()()0()1()(

1

ipbibSbtS

itt

ii

ti

Si(t + 1) = Si(t) -bSi(t) + bp(t),

其中 , p(t) 称作在情节结束时所获得的外部奖励 , 即当获得外部奖励 ,从每个活动规则搜集投标 , 每个活动规则给出一部分外部奖励。考虑 PSP 对给定规则 Ri 的影响 , 它按照方程得到 :

Page 97: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 97

规则发现系统

其中 , t 的范围是在该情节规则 Ri 是活动的 , 即 Si(t) 基本上外部奖励的权值平均 p(t), (1 - b) 作为指数衰减 因子。如果 b 足够小 , 那么 S(t) 具有 p(t) 的平均

值。如果外部奖励 p(t)是常数 ,p*, 那么 Si 收敛到一个平衡值 Si*:

)1()()0()1()(1

ipbibSbtS

itt

ii

ti

**

1

* ])()0()1[(lim ppbibSbSitt

ii

tti

Page 98: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 98

规则发现系统在常数赢利下 , PSP 将以下列速率减少误差 Ei(t) = p* - Si(t)

)())((

)1()()()1(

*

tbEtSpb

tStStEtEE

i

i

ii

iii

强度每次改变 , 以因子 b减少当前强度与平衡强度之差。

Page 99: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 99

规则发现系统我们看出 , 奖励相当是常数情况下 , 在 PSP下每个规则强度很快收敛到一个平衡强度 , 可以预测情节结束时将接收的奖励水平。PSP的一种可能的限制是它取决于这种前提 , 成功外部奖励区分的情节所对应的合适区间 , 在这个区间里进行信用赋值。情节的选择非常重要。

Page 100: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 100

规则发现系统在桶链算法 BBA中 , 是基于规则之间单独处理的 , 可以避免有关情

节的假设。假设规则 Ri 在 tau 步点火 , 规则 Rj 在 tau + 1点火 , 那么 BBA 按照下面公式修改规则 Ri 的强度 Si:

)()()()1( jiii bSbSSS

第一个改变意味 BBA 在给定的情节修改规则强度多于一次。第二个改变导致 PSP与 BBA 基本的不同。 PSP强度预测所期望的情节结束获得的外部奖励是在规则点火 , BBA 的强度预测所期望的内部奖励是在规则的下一步。

Page 101: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 101

规则发现系统RUDI 的控制结构

问题求解

BBA/PSP

遗传算法

任务 执行强度

新规则 信用 奖励

Page 102: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 102

PSP与 BBA 比较A

1RC

3RE

6RH

B

2RD

4RF

6RI

5RG

7RJ

奖励: 1000 0 300

初始状态

结束状态

Page 103: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 103

不同的强度修改方案规则 PSP强度 BBA强度

1R

3R

6R

2R

4R5R

7R

1000 648

299 567

1000 645

4 644

300 300

999 531

300 300

Page 104: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 104

进化策略进化策略模仿自然进化原理作为一种求解参数优化问题的方法。最简单的实现方法如下 :

(1) 定义的问题是寻找 n 维的实数向量 x, 它使函数(2) 双亲向量的初始群体从每维可行范围内随机选择。(3) 子孙向量的创建是从每个双亲向量加上零均方差高斯随

机变量。(4) 根据最小误差选择向量为下一代新的双亲。(5) 向量的标准偏差保持不变 , 或者没有可用的计算方法 , 那么处理结束。

RRxF n :)(

Page 105: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 105

进化规划 进化规划 (evolutionary programming ,又译为

进化程序设计 ) 的过程 , 可理解为从所有可能的计算机程序形成的空间中 , 搜索有高的适应值的计算机程序个体,在进化程序设计中,几百或几千个计算机程序参与遗传进化。

Page 106: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 106

进化规划步骤1. 产生出初始群体 , 它由关于问题 ( 计算机程序 ) 的函数随机组合而成。2. 迭代完成下述子步骤,直至满足选种标准为止 :

1) 执行群体中的每个程序,根据它解决问题的能力,给它指定一个适应值2) 应用变异等操作创造新的计算机程序群体。基于适应值根据概率从群体中选出一个计算机程序个体,然后用合适的操作作用于该计算机程序个体。 把现有的计算机程序复制到新的群体中。通过遗传随机重组两个现有的程序 , 创造出新的计算机程序个体。

3. 在后代中适应值最高的计算机程序个体被指定为进化程序设计的结果。这一结果可能是问题的解或近似解。

Page 107: 知识发现(数据挖掘 ) 第十二章

23/4/22 史忠植 高级人工智能 107

www.intsci.ac.cn/shizz/

Questions?!Questions?!