遗传算法及其在图像分割中的应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0000000000 (0)到11111111111111111111 (1048575)之间的二进 制编码。
2016/4/27
21 / 16
21
实例:遗传算法求函数极值
(2)确定解码方法:解码时需要将 20位长的二进制编码转换为对应的十进制整数, 分别记为y。 依据个体编码方法和对定义域的离散化方法可知,将代码y转换为变量x的解码 公式为例如,对个体
假如用长度为 20 位的二进制编码串来表示决策变量 x 。 20 位
二进制编码串可以表示从 0 到 1048575 之间的 1048576 个不同Hale Waihona Puke Baidu数,
故将x的定义域离散化为1048576个均等的区域,包括两个端点在 内共有1048576个不同的离散点。
从 离 散 点 -1 到 离 散 点 2 , 分 别 对 应 于 从 0000000000
若只有选择和交叉,而没有变异,则无法在初始基因组合以外的空间进行
搜索,使进化过程在早期就陷入局部解而进入终止过程,从而影响解的质量。 为了在尽可能大的空间中获得质量较高的优化解,必须采用变异操作。
2016/4/27
17 / 16
17
变异算子
基本位变异算子是最简单和最基本的变异操作算子。
对于基本遗传算法中用二进制编码符号串所表示的个体,若需要进行变异操 作的某一基因座上的原有基因值为0,则变异操作将该基因值变为1,反之,若 原有基因值为1,则变异操作将其变为0。
2016/4/27
13 / 16
13
轮盘选择示例
上述轮盘选择过程,可描述如下: Ⅰ. 顺序累计群体内各个体的适应度,得相应的累计值Si,最后一个累计值 为Sn; Ⅱ. 在[0, Sn]区间内产生均匀分布的随机数r; Ⅲ. 依次用Si与r比较,第一个出现Si大于或等于r的个体j被选为复制对象;
Ⅳ. 重复 Ⅲ、Ⅳ 项,直至新群体的个体数目等于父代群体的规模。
(4)设计遗传算子:选择运算使用比例选择算子,交叉运算使用单点交 叉算子,变异运算使用基本位变异算子。 (5)确定遗传算法的运行参数:群体大小 M=40,终止进化代数 G=25,选 择概率真Ps=0.90,交叉概率Pc=0.70,变异概率Pm=0.01。
2016/4/27
23 / 16
23
实例:遗传算法求函数极值
2016/4/27
26 / 16
26
图像分割简介
下一代群体中的机会多少。
2016/4/27
5 / 16
5
(3)
遗传算子 基本遗传算法使用下述三种遗传算子: • • • 选择运算:使用比例选择算子; 交叉运算:使用单点交叉算子; 变异运算:使用基本位变异算子。
(4)
基本遗传算法的运行参数
基本遗传算法有下述4个运行参数需要提前设定:
• M:群体大小,即群体中所含个体的数量,一般取为20 ~ 100。 • T:遗传运算的终止进化代数,一般取为100 ~ 500
A : 101100 1110 101100 0101
B : 001010 0101 001010 1110
2016/4/27
16 / 16
16
变异算子
变异运算用来模拟生物在自然的遗传环境中由于各种偶然因素引起的基因突 变,它以很小的概率随机地改变遗传基因(表示染色体的符号串的某一位)的值。 在染色体以二进制编码的系统中,它随机地将染色体的某一个基因由 1变为0,或 由0变为1。
漫长而绝妙的进化过程。借鉴 Darwin 的物竞天择、优胜劣汰、适者生存的自然选
择和自然遗传的机理。 其本质是一种求解问题的高效并行全局搜索方法,它能在搜索过程中自动获取 和积累有关搜索空间的知识,并自适应地控制搜索过程以求得最优解。
2016/4/27
3 / 16
3
遗传算法基本思想
从初始化的群体出发, 通过随机选择(复制)(使群体中优秀的个体有更多 的机会传给下一代),交叉(体现了自然界中群体内个体之间的信息交换), 和变异(在群体中引入新的变种确保群体中信息的多样性)等遗传操作,使最 具有生存能力的染色体以最大可能生存, 群体一代一代地进化到搜索空间中越
一般情况下,根据目标函数值来进行种群中个体适应度值的计算。
(1) 当优化目标是求函数最大值,并且目标函数总取正值时,可以直接设定 个体的适应度F(X)就等于相应的目标函数值f(X),即: F(X)=f(X) (2) 对于求目标函数最小值的优化问题,理论上只需简单地对其增加一个负 号就 可将其转化为求目标函数最大值的优化问题,即: min f(X)=max ( - f(X))
Ⅱ. 每一对相互配对的个体,随机设置某一基因座之后的位置为交叉点。 若染色体的长度为l ,则共有(l-1)个可能的交叉点位置。 Ⅲ. 对每一对相互配对的个体,依设定的交叉概率pc在其交叉点处相互交换两个 个体的部分染色体,从而产生出两个新的个体。
2016/4/27
15 / 16
15
交叉算子
单点交叉
• pc:交叉概率,一般取为0.4 ~ 0.99
• pm:变异概率,一般取为 0.0001 ~ 0.1
2016/4/27
6 / 16
6
基本遗传算法的形式化定义
基本遗传算法可定义为一个7元组: GA= (M, F, s, c, m, pc, pm )
M——群体大小; F——个体适应度评价函数; s——选择操作算于; c——交叉操作算子: m——变异操作算于; pc——交叉概率; pm——变异概率;
N
计算群体中各个体适应度 从左至右依次执行遗传算子
pm
j=0
pc
j=0 根据适应度选择复制个体 执行复制 将复制的个体添入 新群体中 j = j+1
j=0 选择两个交叉个体 执行交叉 将交叉后的两个新个体 添入新群体中 j = j+2
选择个体变异点
执行变异 将变异后的个体添入 新群体中 j = j+1
采用上述方法进行仿真,经过迭代,最佳样本为
Best S [ 1 0 0 0 1 0 1 0 1 0 1 0 0 0 1111 0 1]
即当
x 1.8505
时,函数具有
极大值,极大值为3.8503。
2016/4/27
24 / 16
24
实例:遗传算法求函数极值
最后一代个体分布 每代最优个体分布
2016/4/27
8 / 16
8
基本遗传算法的实现
根据上面对基本遗传算法构成要素的分析和算法描述,我们可以很方便地 用计算机语言来实现这个基本遗传算法。 现对具体实现过程中的问题作以下说明:
一) 编码与解码
(1) 编码
假设某一参数的取值范围是[umin , umax],用长度为l的二进制编码符
号串来表示该参数,则它总共能够产生 2l种不同的编码,参数编码时的对应关
轮盘法的基本精神是:个体被选中的概率取决于个体的相对适应度:
pi = fi / fi 式中 ( i=1,2,…,M )
pi——个体i被选中的概率;
fi——个体i的适应度;
fi——群体的累加适应度。
2016/4/27
12 / 16
12
选择算子
轮盘赌选择
特点:每次选择一个个体。 若要选择n个个体,则要单独运行n次。
来越好的区域.
2016/4/27
4 / 16
4
基本遗传算法的构成要素
(1)染色体编码方法
基本遗传算法使用固定长度的二进制符号串来表示群体中的个体,其等位基因 由二值符号集{0,1}组成。 初始群体中各个个体的基因值用均匀分布的随机数来生成。如:x; 100111001000101101就可表示一个个体,该个体的染色体长度是 l=18。 (2)个体适应度评价 基本遗传算法按与个体适应度成正比的概率来决定当前群体中每个个体遗传到
2016/4/27
25 / 16
25
图像分割
图像分割是自动目标识别的关键和首要步骤,其目的是将目标和背景 分离,为计算机视觉的后续处理提供依据。 通常图像分割包括阈值法、边缘检测法和区域跟踪法。其中阈值法 是图像分割的常用方法。 目前,已有众多的阈值分割方法,如最小误差阈值法、最大类别方 差法(Otsu 法) 及最佳直方图熵法。 Kapur 等人所提出的最佳熵阈值方法 (简称为KSW熵法) ,不需要 先验知识,而且对于非理想双峰直方图的图像也可以进行分割。但在确 定阈值时,尤其是确定多阈值时,计算量很大。 遗传算法是一具有鲁棒性、并行性的优化算法,因此利用遗传算法实 现KSW最佳熵阈值确定法,可以缩短寻找阈值的时间,从而有利于计算 机视觉的后续处理。
系如下: 00000000…00000000=0 00000000…00000001=1 00000000…00000010=2 …… 11111111…11111111=2l–1
2016/4/27
9 / 16
umin umin + umin + 2 umax
9
其中, 为二进制编码的编码精度,其公式为:
2016/4/27
11 / 16
11
三)选择算子
(1) 选择算子或复制算子的作用:
从当前代群体中选择出一些比较优良的个体,并将其复制到下一代群体中。 比例选择算子。
(2) 最常用和最基本的选择算子:
(3) 比例选择算子:
指个体被选中并遗传到下一代群体中的概率与该个体的适应度大小成正比。
(4)
执行比例选择的手段是轮盘选择。
遗传算法及其在图像分割中的应用
目录
遗传算法简介 图像分割简介 一维最大熵阈值分割 二维最大熵阈值分割
2016/4/27
2 / 16
2
遗传算法
遗传算法简称 GA ( Genetic Algorithms )遗传算法是 20 世纪 60~70 年代主要由
美国John Holland 教授提出。 其内涵哲理启迪于自然界生物从低级、简单到高级、复杂,乃至人类这样一个
x : 0000110111 1101110001
yi xi 3 1 1048575
x -0.8363
2016/4/27
22 / 16
22
实例:遗传算法求函数极值
(3)确定个体评价方法:由于优化目标是求函数的最大值,故可将个体的适应度 直接取为对应的目标函数值,即
F ( x) f ( x)
N
j = M? Y
N
j = pc· M? Y
Gen=Gen+1
N
j = pm · L· M? Y
实例:遗传算法求函数极值
利用遗传算法求函数的极大值
f ( x) x sin( 10x) 2 1 x 2
2016/4/27
20 / 16
20
实例:遗传算法求函数极值
(1)编码方案
=
(2) 解码
假设某一个体的编码是:
U max U min 2 1
x b b 1b 2
则对应的解码公式为:
b2b1
i 1
x U min
2016/4/27
10 / 16
U max U min ( bi 2 ) 2 1 i 1
10
二)个体适应度评价
2016/4/27
14 / 16
14
交叉算子
(1) 交叉算子作用
通过交叉,子代的基因值不同于父代。交换是遗传算法产生新个体的主要手 段。正是有了交换操作,群体的性态才多种多样。
(2) 最常用和最基本——单点交叉算子。 (3) 单点交叉算子的具体计算过程如下:
Ⅰ. 对群体中的个体进行两两随机配对。
若群体大小为M,则共有 [ M/2 ]对相互配对的个体组。
2016/4/27
7 / 16
7
基本遗传算法描述
Procedure GA Begin initialize P(0); t=0; while (t<=T) do for i=1 to M do Evaluate fitness of P(t); end for for i=1 to M do Select operation to P(t); end for for i=1 to M/2 do Crossover operation to P(t); end for for i=1 to M do Mutation operation to P(t); end for for i=1 to M do P(t+1) = P(t); end for t=t+1 end while end
基本位变异因子的具体执行过程是:
Ⅰ. 对个体的每一个基因座,依变异概率pm指定其为变异点。 Ⅱ. 对每一个指定的变异点,对其基因值做取反运算或用其它等位基因值来代替,
从而产生出一个新的个体。
2016/4/27
18 / 16
18
开始 Gen=0 编码 随机产生M个初始个体 满足终止条件?
Y
输出结果
终止
2016/4/27
21 / 16
21
实例:遗传算法求函数极值
(2)确定解码方法:解码时需要将 20位长的二进制编码转换为对应的十进制整数, 分别记为y。 依据个体编码方法和对定义域的离散化方法可知,将代码y转换为变量x的解码 公式为例如,对个体
假如用长度为 20 位的二进制编码串来表示决策变量 x 。 20 位
二进制编码串可以表示从 0 到 1048575 之间的 1048576 个不同Hale Waihona Puke Baidu数,
故将x的定义域离散化为1048576个均等的区域,包括两个端点在 内共有1048576个不同的离散点。
从 离 散 点 -1 到 离 散 点 2 , 分 别 对 应 于 从 0000000000
若只有选择和交叉,而没有变异,则无法在初始基因组合以外的空间进行
搜索,使进化过程在早期就陷入局部解而进入终止过程,从而影响解的质量。 为了在尽可能大的空间中获得质量较高的优化解,必须采用变异操作。
2016/4/27
17 / 16
17
变异算子
基本位变异算子是最简单和最基本的变异操作算子。
对于基本遗传算法中用二进制编码符号串所表示的个体,若需要进行变异操 作的某一基因座上的原有基因值为0,则变异操作将该基因值变为1,反之,若 原有基因值为1,则变异操作将其变为0。
2016/4/27
13 / 16
13
轮盘选择示例
上述轮盘选择过程,可描述如下: Ⅰ. 顺序累计群体内各个体的适应度,得相应的累计值Si,最后一个累计值 为Sn; Ⅱ. 在[0, Sn]区间内产生均匀分布的随机数r; Ⅲ. 依次用Si与r比较,第一个出现Si大于或等于r的个体j被选为复制对象;
Ⅳ. 重复 Ⅲ、Ⅳ 项,直至新群体的个体数目等于父代群体的规模。
(4)设计遗传算子:选择运算使用比例选择算子,交叉运算使用单点交 叉算子,变异运算使用基本位变异算子。 (5)确定遗传算法的运行参数:群体大小 M=40,终止进化代数 G=25,选 择概率真Ps=0.90,交叉概率Pc=0.70,变异概率Pm=0.01。
2016/4/27
23 / 16
23
实例:遗传算法求函数极值
2016/4/27
26 / 16
26
图像分割简介
下一代群体中的机会多少。
2016/4/27
5 / 16
5
(3)
遗传算子 基本遗传算法使用下述三种遗传算子: • • • 选择运算:使用比例选择算子; 交叉运算:使用单点交叉算子; 变异运算:使用基本位变异算子。
(4)
基本遗传算法的运行参数
基本遗传算法有下述4个运行参数需要提前设定:
• M:群体大小,即群体中所含个体的数量,一般取为20 ~ 100。 • T:遗传运算的终止进化代数,一般取为100 ~ 500
A : 101100 1110 101100 0101
B : 001010 0101 001010 1110
2016/4/27
16 / 16
16
变异算子
变异运算用来模拟生物在自然的遗传环境中由于各种偶然因素引起的基因突 变,它以很小的概率随机地改变遗传基因(表示染色体的符号串的某一位)的值。 在染色体以二进制编码的系统中,它随机地将染色体的某一个基因由 1变为0,或 由0变为1。
漫长而绝妙的进化过程。借鉴 Darwin 的物竞天择、优胜劣汰、适者生存的自然选
择和自然遗传的机理。 其本质是一种求解问题的高效并行全局搜索方法,它能在搜索过程中自动获取 和积累有关搜索空间的知识,并自适应地控制搜索过程以求得最优解。
2016/4/27
3 / 16
3
遗传算法基本思想
从初始化的群体出发, 通过随机选择(复制)(使群体中优秀的个体有更多 的机会传给下一代),交叉(体现了自然界中群体内个体之间的信息交换), 和变异(在群体中引入新的变种确保群体中信息的多样性)等遗传操作,使最 具有生存能力的染色体以最大可能生存, 群体一代一代地进化到搜索空间中越
一般情况下,根据目标函数值来进行种群中个体适应度值的计算。
(1) 当优化目标是求函数最大值,并且目标函数总取正值时,可以直接设定 个体的适应度F(X)就等于相应的目标函数值f(X),即: F(X)=f(X) (2) 对于求目标函数最小值的优化问题,理论上只需简单地对其增加一个负 号就 可将其转化为求目标函数最大值的优化问题,即: min f(X)=max ( - f(X))
Ⅱ. 每一对相互配对的个体,随机设置某一基因座之后的位置为交叉点。 若染色体的长度为l ,则共有(l-1)个可能的交叉点位置。 Ⅲ. 对每一对相互配对的个体,依设定的交叉概率pc在其交叉点处相互交换两个 个体的部分染色体,从而产生出两个新的个体。
2016/4/27
15 / 16
15
交叉算子
单点交叉
• pc:交叉概率,一般取为0.4 ~ 0.99
• pm:变异概率,一般取为 0.0001 ~ 0.1
2016/4/27
6 / 16
6
基本遗传算法的形式化定义
基本遗传算法可定义为一个7元组: GA= (M, F, s, c, m, pc, pm )
M——群体大小; F——个体适应度评价函数; s——选择操作算于; c——交叉操作算子: m——变异操作算于; pc——交叉概率; pm——变异概率;
N
计算群体中各个体适应度 从左至右依次执行遗传算子
pm
j=0
pc
j=0 根据适应度选择复制个体 执行复制 将复制的个体添入 新群体中 j = j+1
j=0 选择两个交叉个体 执行交叉 将交叉后的两个新个体 添入新群体中 j = j+2
选择个体变异点
执行变异 将变异后的个体添入 新群体中 j = j+1
采用上述方法进行仿真,经过迭代,最佳样本为
Best S [ 1 0 0 0 1 0 1 0 1 0 1 0 0 0 1111 0 1]
即当
x 1.8505
时,函数具有
极大值,极大值为3.8503。
2016/4/27
24 / 16
24
实例:遗传算法求函数极值
最后一代个体分布 每代最优个体分布
2016/4/27
8 / 16
8
基本遗传算法的实现
根据上面对基本遗传算法构成要素的分析和算法描述,我们可以很方便地 用计算机语言来实现这个基本遗传算法。 现对具体实现过程中的问题作以下说明:
一) 编码与解码
(1) 编码
假设某一参数的取值范围是[umin , umax],用长度为l的二进制编码符
号串来表示该参数,则它总共能够产生 2l种不同的编码,参数编码时的对应关
轮盘法的基本精神是:个体被选中的概率取决于个体的相对适应度:
pi = fi / fi 式中 ( i=1,2,…,M )
pi——个体i被选中的概率;
fi——个体i的适应度;
fi——群体的累加适应度。
2016/4/27
12 / 16
12
选择算子
轮盘赌选择
特点:每次选择一个个体。 若要选择n个个体,则要单独运行n次。
来越好的区域.
2016/4/27
4 / 16
4
基本遗传算法的构成要素
(1)染色体编码方法
基本遗传算法使用固定长度的二进制符号串来表示群体中的个体,其等位基因 由二值符号集{0,1}组成。 初始群体中各个个体的基因值用均匀分布的随机数来生成。如:x; 100111001000101101就可表示一个个体,该个体的染色体长度是 l=18。 (2)个体适应度评价 基本遗传算法按与个体适应度成正比的概率来决定当前群体中每个个体遗传到
2016/4/27
25 / 16
25
图像分割
图像分割是自动目标识别的关键和首要步骤,其目的是将目标和背景 分离,为计算机视觉的后续处理提供依据。 通常图像分割包括阈值法、边缘检测法和区域跟踪法。其中阈值法 是图像分割的常用方法。 目前,已有众多的阈值分割方法,如最小误差阈值法、最大类别方 差法(Otsu 法) 及最佳直方图熵法。 Kapur 等人所提出的最佳熵阈值方法 (简称为KSW熵法) ,不需要 先验知识,而且对于非理想双峰直方图的图像也可以进行分割。但在确 定阈值时,尤其是确定多阈值时,计算量很大。 遗传算法是一具有鲁棒性、并行性的优化算法,因此利用遗传算法实 现KSW最佳熵阈值确定法,可以缩短寻找阈值的时间,从而有利于计算 机视觉的后续处理。
系如下: 00000000…00000000=0 00000000…00000001=1 00000000…00000010=2 …… 11111111…11111111=2l–1
2016/4/27
9 / 16
umin umin + umin + 2 umax
9
其中, 为二进制编码的编码精度,其公式为:
2016/4/27
11 / 16
11
三)选择算子
(1) 选择算子或复制算子的作用:
从当前代群体中选择出一些比较优良的个体,并将其复制到下一代群体中。 比例选择算子。
(2) 最常用和最基本的选择算子:
(3) 比例选择算子:
指个体被选中并遗传到下一代群体中的概率与该个体的适应度大小成正比。
(4)
执行比例选择的手段是轮盘选择。
遗传算法及其在图像分割中的应用
目录
遗传算法简介 图像分割简介 一维最大熵阈值分割 二维最大熵阈值分割
2016/4/27
2 / 16
2
遗传算法
遗传算法简称 GA ( Genetic Algorithms )遗传算法是 20 世纪 60~70 年代主要由
美国John Holland 教授提出。 其内涵哲理启迪于自然界生物从低级、简单到高级、复杂,乃至人类这样一个
x : 0000110111 1101110001
yi xi 3 1 1048575
x -0.8363
2016/4/27
22 / 16
22
实例:遗传算法求函数极值
(3)确定个体评价方法:由于优化目标是求函数的最大值,故可将个体的适应度 直接取为对应的目标函数值,即
F ( x) f ( x)
N
j = M? Y
N
j = pc· M? Y
Gen=Gen+1
N
j = pm · L· M? Y
实例:遗传算法求函数极值
利用遗传算法求函数的极大值
f ( x) x sin( 10x) 2 1 x 2
2016/4/27
20 / 16
20
实例:遗传算法求函数极值
(1)编码方案
=
(2) 解码
假设某一个体的编码是:
U max U min 2 1
x b b 1b 2
则对应的解码公式为:
b2b1
i 1
x U min
2016/4/27
10 / 16
U max U min ( bi 2 ) 2 1 i 1
10
二)个体适应度评价
2016/4/27
14 / 16
14
交叉算子
(1) 交叉算子作用
通过交叉,子代的基因值不同于父代。交换是遗传算法产生新个体的主要手 段。正是有了交换操作,群体的性态才多种多样。
(2) 最常用和最基本——单点交叉算子。 (3) 单点交叉算子的具体计算过程如下:
Ⅰ. 对群体中的个体进行两两随机配对。
若群体大小为M,则共有 [ M/2 ]对相互配对的个体组。
2016/4/27
7 / 16
7
基本遗传算法描述
Procedure GA Begin initialize P(0); t=0; while (t<=T) do for i=1 to M do Evaluate fitness of P(t); end for for i=1 to M do Select operation to P(t); end for for i=1 to M/2 do Crossover operation to P(t); end for for i=1 to M do Mutation operation to P(t); end for for i=1 to M do P(t+1) = P(t); end for t=t+1 end while end
基本位变异因子的具体执行过程是:
Ⅰ. 对个体的每一个基因座,依变异概率pm指定其为变异点。 Ⅱ. 对每一个指定的变异点,对其基因值做取反运算或用其它等位基因值来代替,
从而产生出一个新的个体。
2016/4/27
18 / 16
18
开始 Gen=0 编码 随机产生M个初始个体 满足终止条件?
Y
输出结果
终止