人工免疫
Posted 12qw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了人工免疫相关的知识,希望对你有一定的参考价值。
人工免疫算法(Immune Algorithm)是一种具有生成+检测 (generate and test)的迭代过程的群智能搜索算法。从理论上分析,迭代过程中,在保留上一代最佳个体的前提下,免疫算法是全局收敛的。
基本步骤
- 抗原识别:输入目标函数和各种约束作为免疫算法的抗原。
- 初始抗体生成:随机生成初始抗体种群。
- 亲和力计算:计算抗体的适应值。抗原和抗体之间、抗体和抗体之间的匹配程 度可以用亲和性描述。
- 免疫处理:免疫处理包括免疫选择、克隆、变异和抑制。
(1)免疫选择:根据抗体的亲和力选出亲和度较高的抗体。
(2)克隆:对选出的亲和力较高的抗体进行复制。
(3)变异:对克隆得到的个体进行交叉、变异操作,使其亲和力发生改变。
(4)抑制:对变异的抗体进行选择,保留亲和度较高的抗体。
- 群体刷新。将免疫选择的抗体和免疫抑制后的抗体组成一个集合,保留其中亲和度较高的抗体,使这些抗体进入新的种群。新的种群中不足的部分随机生成,以增加多样性。
流程图如下:
常见的免疫算法
- 克隆选择算法(CSA:Clone Selection Algorithm)
由于免疫系统本身的复杂性,有关算法机理的描述还不多见,相关算子还比较少。Castro L. D.、Kim J.、杜海峰、焦李成等基于抗体克隆选择机理相继提出了克隆选择算法。Nohara等基于抗体单元的功能提出了一种非网络的人工免疫系统模型。而目前两个比较有影响的人工免疫网络模型是Timmis等基于人工识别球(Artificial Recognition Ball, AR概念提出的资源受限人工免疫系统(Resource Limited Artificial Immune System, RLAIS)和Leandro等模拟免疫网络响应抗原刺激过程提出的aiNet算法。
2.免疫遗传算法(IGA:Immune Genetic Algorithm)
免疫遗传算法可以看作一种新型融合算法,是一种改进的遗传算法,是具有免疫功能的遗传算法。
3.阴性选择算法(NSA:Negative Selection Algorithm)
阴性选择算法基于生物免疫系统的特异性,借鉴生物免疫系统胸腺T细胞生成时的“阴性选择”(Negative Selection)过程。通过Forrest研究一种用于检测变数据变化的阴性选择算法,用于解决计算机安全领域的问题。该算法通过系统对异常变化的成功监测而使免疫系统发挥作用,而监测成功的关键是系统能够分清自己和非己的信息;随机产生检测器,删除那些测到自己的检测器,以使那些测到非己的检测器保留下来。
4.B细胞网络算法(B—cell Algorthm)
以独特型网络理论和克隆选择理论为基础。Hunt等人模拟生物免疫系统的自学习、自组织机理提出一种人工免疫网络模型——B细胞网络及其算法。
算法将未知问题的解看作抗原,认为只要找到能产生最高亲和度的抗体的B细胞,也就找到了未知问题的解。每一个成员都被视为一个独立的整体,在群体中,没有相关作用,每个B细胞都是一个Hamming空间内的L维向量。B细胞算法判断停止的条件是判断距离。
实验结果证明,该算法具有较强的寻优能力并保持网络中多种模式和谐并存,有比人工神经网络更快更好的模式识别能力。
人工免疫系统和人工神经网络
Dasgupta系统分析了人工免疫系统和人工神经网络的异同,认为在组成单元及数目、交互作用、模式识别、任务执行、记忆学习、系统鲁棒性等方面是相似的,而在系统分布、组成单元间的通信、系统控制等方面是不同。
word2vec
word2vec是Google在2013年开源的一个工具,核心思想是将词表征映
射为对应的实数向量。它可以在百万数量级的词典和上亿的数据集上进行高效地训练;其次,该工具得到的训练结果——词向量(word embedding),可以很好地度量词与词之间的相似性。
词向量就是用来将语言中的词进行数学化的一种方式,也就是把一个词表示成一个向量。词向量有一下两种:One-hot Representation和Distributional Representation。
One-hot Representation的思想是向量的长度为词典的大小,向量的分量只有一个1,其他全为 0,1的位置对应该词在词典中的位置。它如果使用稀疏方式存储,非常简洁,实现时就可以用0,1,2,3,...来表示词语进行计算。但是容易受维数灾难的困扰,尤其是将其用于 Deep Learning 的一些算法时,而且任何两个词都是孤立的,存在语义鸿沟词(任意两个词之间都是孤立的,不能体现词和词之间的关系)。
Distributional Representation最早是 Hinton 于 1986 年提出的,可以克服 one-hot representation的缺点,解决“词汇鸿沟”问题,可以通过计算向量之间的距离(欧式距离、余弦距离等)来体现词与词的相似性。其基本想法是直接用一个普通的向量表示一个词。但是训练有难度,没有直接的模型可训练得到。所以采用通过训练语言模型的同时,得到词向量 。
word2vec目前采用的模型有两种:CBOW(Continuous Bag-Of-Words,即连续的词袋模型)和Skip-Gram。CBOW模型的训练输入是某一个特征词的上下文相关的词对应的词向量,而输出就是这特定的一个词的词向量。Skip-Gram模型和CBOW的思路是反着来的,即输入是特定的一个词的词向量,而输出是特定词对应的上下文词向量。
DeepWalk
DeepWalk将随机游走得到的节点序列当做句子,从截断的随机游走序列中得到网络的局部信息,再通过局部信息来学习节点的潜在表示。可扩展、可并行、可处理稀疏网络,可对网络进行全局观察:DeepWalk将一个图作为输入,并产生一个潜在表示(将图中的每个节点表示为一个向量)作为输出。
该算法要求适应性、社区意识、低维和连续性。适应性是指社交网络是不断变化的,当网络发生变化时,可对对整个网络新进行计算;社区意识是指节点在潜在表示的维度空间中的距离,应该表示网络中对应的成员的相似度,以此保证网络的同质性;低维是指当被标记的成员很少时,低维的模型一般表现的更好,并且收敛和推理速度更快;连续性是指需要通过图的潜在表示来对连续空间中的部分社区成员进行建模。除了提供对社区成员资格的细微视图之外,连续表示还可以使社区之间的决策界限平滑,从而实现更强大的分类。
该算法思想就是先随机游走,再通过语言模型向量化。随机游走是一种从图中提取序列的技术,随机游走得到的序列中包含了网络的局部结构信息。语言建模的目标是估计出现在语料库中的特定序列的可能性。
免疫算法简介及应用 - Rogn - 博客园 https://www.cnblogs.com/lfri/p/12242443.html
人工免疫相关算法 - YJ-20 - 博客园 https://www.cnblogs.com/zjh225901/p/6537343.html
人工免疫算法 - Hand&Head - 博客园 https://www.cnblogs.com/Hand-Head/articles/5159172.html
论文阅读:DeepWalk - lavi - 博客园 https://www.cnblogs.com/lavi/p/4323691.html
word2vec前世今生 - 公子天 - 博客园 https://www.cnblogs.com/iloveai/p/word2vec.html
word2vec 入门基础(一) - smile_tina - 博客园 https://www.cnblogs.com/tina-smile/p/5176441.html
word2vec原理(一) CBOW与Skip-Gram模型基础 - 刘建平Pinard - 博客园 https://www.cnblogs.com/pinard/p/7160330.html
以上是关于人工免疫的主要内容,如果未能解决你的问题,请参考以下文章