基于克隆选择算法的模式识别

(整期优先)网络出版时间:2019-03-01
/ 2
摘 要 该文在人工免疫系统和克隆选择原理的基础上,给出了CLONALG算法,并对该算法的实现原理、参数选择等进行了详细研究;给出了利用该算法进行数字识别的实例。

关键词 克隆选择;人工免疫系统;数字识别


1 引言

生物免疫系统是一个高度进化的生物系统,它旨在区分外部有害抗原和自身组织,从而清除抗原并保持有机体的稳定。从计算的角度来看,生物免疫系统是一个高度并行、分布、自适应和自组织的系统,具有很强的学习、识别、记忆和特征提取的能力。人们希望从生物免疫系统的运行机制中获取灵感,开发出面向应用的免疫系统模型——人工免疫系统(Artificial Immune System, AIS),用于解决实际问题。目前,AIS已发展成为计算智能研究的一个崭新的分支。其应用领域逐渐扩展到了信息安全、模式识别、智能优化、机器学习、数据挖掘、自动控制、故障诊断等诸多领域,显示出AIS强大的信息处理和问题求解能力以及广阔的研究前景。

克隆选择是一种常用的AIS算法。本文主要探讨该算法在数字识别中的应用。

克隆选择原理最先由Jerne提出,后由Burnet给予完整阐述。其大致内容为:当淋巴细胞实现对抗原的识别(即抗体和抗原的亲和度超过一定阀值)后,B细胞被激活并增殖复制产生B细胞克隆,随后克隆细胞经历变异过程,产生对抗原具有特异性的抗体。克隆选择理论描述了获得性免疫的基本特性,并且声明只有成功识别抗原的免疫细胞才得以增殖。经历变异后的免疫细胞分化为效应细胞(抗体)和记忆细胞两种。

克隆选择的主要特征是免疫细胞在抗原刺激下产生克隆增殖,随后通过遗传变异分化为多样性效应细胞(抗体细胞)和记忆细胞。克隆选择对应着一个亲合度成熟(affinity maturation)的过程,即对抗原亲合度较低的个体在克隆选择机制的作用下,经历增殖复制和变异操作后,其亲合度逐步提高而“成熟”的过程。因此亲合度成熟本质上是一个达尔文式的选择和变异的过程,克隆选择原理是通过采用交叉、变异等遗传算子和相应的群体控制机制实现的。

根据克隆选择原理,DeCastro提出了克隆选择算法(CLONALG算法)模型,并在模式识别、组合优化和多峰值函数优化中得到了验证。其算法的核心在于增殖复制算子和变异算子,前者与个体亲合度成正比,保证群体亲合度逐步增大,后者与个体的亲合度成反比例关系,保留最佳个体并改进较差个体。

2 CLONALG算法

CLONALG算法是根据克隆选择原理设计的免疫算法。解决问题时,一般把问题定义为抗原,而问题的解就是抗体集合。在特定的形态空间中,随机产生的抗体试图与抗原发生匹配,即尝试解决问题。匹配度高的抗体有可能产生更好的解,被赋予更大的克隆概率参与下一次匹配。

抗体和抗原之间的距离D采用汉明距离,如式(1)所示。

153602514.jpg

抗体和抗原之间的亲和力Aff与它们的距离成反比,即Aff=1/D。

免疫算法的实现步骤如下:

步骤1 初始化抗体集合,随机产生N个抗体。

步骤2 计算抗体集合Ab中所有抗体与抗原Ag的亲和力。

步骤3 选择n个亲和力最高的抗体,组成一个新的抗体集合。并将这n个抗体按照亲和力升序排列。

步骤4 将选中的n个抗体按照对应的亲和力进行克隆,产生新的集合C,亲和力越高的抗体,克隆的数量就越多,总的数量计算公式如式(2)。

1536084.jpg

Nc是总的克隆数,式(2)右边是一个和式,其中第i项代表抗体Abi产生的克隆数, 是预设的参数因子,N是抗体集合包含的元素个数。

步骤5 新的集合C按照基因重组概率进行基因重组,产生成熟的克隆集合C*。

步骤6 计算成熟克隆集合的亲和力。

步骤7 从成熟克隆集合中选择n个亲和力最高的抗体作为记忆抗体的候选,亲和力超过现有记忆抗体的候选抗体称为新的记忆抗体。

步骤8 替换掉亲和力最低的d个抗体,并用新的随机抗体补充。

步骤9 如果抗体集合没有达到匹配精度要求且进化代数小于最大进化代数,则转到步骤2,否则算法结束。

3 应用CLONALG算法识别数字

模式识别技术是根据研究对象的特征和属性,利用一定的分析算法,确定研究对象的归属和类别,并使结果尽可能符合真实。一般模式识别系统都包括问题描述、系统训练和模式识别几个部分。

本系统要解决的问题是识别0到9这十个数字。每个字符都用一个长度L=120的二进制串表示(每一个像素用一个二进制数表示)。原始字符(待识别的字符)(抗原)如图1所示。

153609424.jpg

图1 待识别的字符(抗原)


抗体指令集由10个抗体组成,即取N=10。每次选中5个亲和力最高的抗体进行克隆,即n=5。参数 =5。变异率初始值pm=0.05,并根据进化情况进行变化。最大进化代数gen=100,匹配精度取0,即要求完全匹配。

10个抗原(待识别数字)都达到了完全匹配,具体匹配情况如表1所示。


表1 数字0-9的完全匹配代数

抗原(待识别字符)

0

1

2

3

4

5

6

7

8

9

完全匹配代数

36

42

54

47

47

53

49

42

40

53


从表1可以看出,该算法的收敛速度是很快的。

由于篇幅所限,下面仅以数字“3”为例,观察一下算法的实现过程。

153614627.jpg

图2 识别数字“3”的过程


图2中,第一排按照从左向右的次序:第1幅图是原始字符,第2幅图是随机产生的抗体集,第3幅图和第4幅图分别是进化到第10代和第20代的抗体集。第二排按照从左向右的次序:第1幅图,第2幅图分别是进化到第30代,第40代的抗体集。最后一幅图是进化到第47代的抗体集。进化过程中抗体与抗原的距离变化情况如表2所示。


表2 识别“3”时抗体与抗原的距离D的变化

进化代数

5

10

15

20

25

30

35

40

45

47

抗体与抗原的距离D

30

19

12

8

5

3

1

1

1

0


从表2可以看出,实际上进化到35代时,抗体与抗原的距离D=1,在大多数应用中,这已经可以很好地满足要求了。

4 总结

从上面的讨论可以看出,CLONALG算法是一种高效、快速收敛的算法,非常适合应用于模式识别。

参考文献

[1] 阎平凡等著,人工神经网络与模拟进化计算,清华大学出版社,2000

[2] 陈慰峰著,医学免疫学,人民出版社,2001

[3] 李涛著,计算机免疫学,电子工业出版社,2004