DNA编码的学习—-笔记1
虽然一万个不想学这个东西,但还是要先了解一些。书名《DNA编码序列的设计与优化》
第一章 DNA的计算
主要讲了DNA计算相关的内容。
首先说了DNA为什么出现,分子水平的研究成熟,数学上很多NP-hard问题传统计算机难以有效解决,1994年,Adleman教授用脱氧核糖核苷酸分子为计算介质,以现代分子生物技术为手段,解决了7个定点的有向哈密顿路。总结来说就是以生化反应来解决数学问题。算法大概如下:
step1:组建图中所有可能存在的路径集合。
step2:筛选出以Vin开头、Vout结尾的途径。
step3:筛选出共经历n个顶点的路径。
step4:筛选出经历了每个顶点的路径。
step5:经过上述3次筛选,考察有否路径存在,即回答了哈密顿路径问题。
接着是DNA的发展,大部分都是沿着Adleman教授的思路继续往下走,做实验,解决问题。其中,Lipton提出对DNA序列进行布尔矢量编码,使得DNA分子能够模仿数字电子的逻辑门电路做出“是非”判断。
将DNA计算模型划分为两类:
生物操作基础上的模型。在实验室操作。
形式上的模型。将生物操作技术抽象为算子,在算子上建模。
然后是DNA计算的实现方式。试管方式、表面方式、芯片方式。
然后是DNA计算的基本思想。
最后是DNA计算研究面临的问题,DNA编码问题(就是接下来要看的部分,心好累)、解空间的检测问题、免错和纠错问题。
第二章 与DNA计算相关的分子生物学基础
为什么我要重拾已放下多年的生物啊!我除了觉得生物老师帅之外,并不喜欢生物啊。
2.1 DNA的基本介绍
DNA,又称“脱氧核糖核苷酸”,也称“遗传微粒”。化学组成如下:
C、H、O、N、P,P的含量较稳定,P含量可代表核酸量。
DNA水解后得到核苷酸,核苷酸水解后得到核苷和磷酸,核苷进一步水解得到蔗糖和含氮碱。
因此,DNA由含氮碱、蔗糖和磷酸组成。含氮碱简称碱基,DNA中碱基成分是腺嘌呤(A),鸟嘌呤(G),胞嘧啶(C),胸腺嘧啶(T),其中各成分含量,A=T,G=C。嘌呤数等于嘧啶数。
DNA一级结构和二级结构。
一级结构:DNA由很多单核苷酸聚合行成的多聚核苷酸,DNA的一级结构是指四种核苷酸(dAMP、dCMP、dGMP、dTMP)按照一定的排列顺序,通过磷酸二酯键连接形成的多核苷酸。由于核酸之间的差异仅仅在于碱基的不同,所以又称碱基顺序。
二级结构:DNA双螺旋结构。两股DNA围绕一个假象的共同周鑫形成右手螺旋结构,链的骨架由交替出现的、亲水的脱氧核糖基和磷酸基组成,居双螺旋外侧;碱基位于双螺旋的内侧,两链碱基互补配对,A与T,形成两个氢键,G与C形成3个氢键。两股链走向反平行。
DNA结构的特点:
多态性:DNA结构是动态的,有多种螺旋结构。
不均一性:A、T、C、G分布不均匀。重复序列、富含A/T的序列、嘌呤和嘧啶的排列顺序对双螺旋结构稳定性的影响。
DNA的变性与复性:DNA变性指DNA分子由稳定的双螺旋结构松解为无故则线性结构的现象。DNA复性是指变性DNA在适当条件下,两条互补链全部或部分恢复到天然双螺旋结构的现象。它是变性的逆转过程,热变性DNA一般经缓慢冷却后即可复性,此过程称为退火。
2.2 DNA杂交反应的热力学基础
这一部分完全不想看,几个参数△G,△H,△S,△Cp之间的关系。后面如果用到再看吧,过。
第三章 DNA计算中的编码问题
在DNA计算中,主要有两种方法来确保计算的进行:一是通过编码优化DNA计算中的每个信息元;二是提高生化操作的可靠性和精度。
3.1 DNA计算中的编码问题
DNA编码序列设计是DNA特异性杂交的物质保证,DNA编码合理与否直接关系到模型能否成功地被生化实验所验证。但是DNA编码需要满足分子生物学约束条件。
两种非特异性杂交形式:
假阳性:不完全互补的DNA分子在适当的条件下杂交形成双链分子,这主要是由于杂交的两个DNA分子序列有足够的“相似度”造成的。
假阴性:完全互补的DNA分子在反应过程中没有杂交,这主要是由于反应条件及操作本身的失误造成的。
DNA编码问题的定义:2004年提出,系统地将一个算法问题的实例映射为特殊的DNA分子序列,这些DNA分子序列应能够确保随后所进行的生化反应不出现任何错误,而且生化反应后的产物中必须包含有足够多的、稳定可靠的、能够被成功提取的原始问题的解。用形式化语言表述为:在DNA分子的4个碱基A、T、G、C上,有一个长度为m的DNA分子的编码集合S,显然,|S|=4的m次方。求S的一个子集C,使得对于全部的si,sj∈C,满足τ(si,sj)≥k,这里,k为正整数,是编码性质的评价准则,如汉明距离,GC含量,移位距离,最小相同子序列数目等物理约束。
DNA编码的符号定义:定义一个字母表X是一个有限非空的符号集合。记DNA字母表△={A,T,G,C}。一个字符表上的字符串u是由该字母表中符号组成的序列,|u|是u的长度,即组成u的符号的数目。语言是由字母表X按照某种方式产生的非空字符串集合,记为X,非空的语言记为X*。为表示方便,DNA字母表△上的字表示为5’->3’方向的DNA串。记u~为u的互补序列。例如,u=5’-AAAAGG-3’,则u~=5’-CCTTTT-3’。定义3’-TTTGG-3’与5’-GGTTTT-3’是同一编码。为记录方便,用字符串a1a2a3…an(n>=0)表示从5’->3’方向的单串5’-a1a2…ab-3’。
在DNA计算中,DNA单串的有限字符串集合K∈△*对输入信息进行编码,称为编码字符串。一个DNA编码字符就是由DNA字母表中的字母组成的有限长度的字。
首先说明,存在DNA编码的非规范几何结构:
一个编码字符串通过DNA分子内杂交连接到其自身,即编码uv∈K*,u,v∈△*,v~是u的子串,或者u~是v的子串,使得其形成一个发夹结构。
两个编码字符串通过DNA分子内杂交连接到一起,即u,v∈K,且v~是u的子串。
一个编码字符串可以通过分子内杂交与其他两个编码并置连接:u1,u2,v∈K,且v~是u1u2的子串。
为了避免上述三种情形,定义规范几何结构。
定义一:K包含于△*被称为DNA编码规范的(相应地,DNA前规范或DNA后规范的),当且仅当xv~y=u,u与v∈K→x=y=1(相应地,v~y=u→y=1或yv~=u→y=1)。其中1为空串。
定义二:设两个编码x=x1x2…xn和w=w1w2…wn的汉明距离记为H(x,w),表示两个编码中使得wi≠xi的不同的位置i的个数,即:H(x,y)=∑h(xj,wj),其中,如果xj=wj,则h(xj,wj)=0,否则,h(xj,wj)=1。显然,汉明距离函数H(x,w)是V(n,4)XV(n,4)→N的映射,其中N是全体非负整数集。记h(x)是x的汉明势,即x中非零分量的个数。
三个限制,汉明限制、逆-补限制、逆限制。
3.2 DNA编码的分子生物学约束
分为物理约束和热力学约束。
其中物理约束如下:
- 汉明距离约束:用于限制y的补链和x之间产生非特异性杂交。
- 逆补约束:用于限制y和x的逆之间产生非特异性杂交。
- 自补约束:用于限制y与自身产生非特异性杂交。
- 移位汉明距离约束:进一步加强对y的补链与x之间产生非特异性杂交的限制。
- 移动逆补约束:进一步加强对y和x的逆之间产生非特异性杂交的限制。
- 移动自补约束:进一步加强对y于自身之间产生非特异性杂交的限制。
- 连续匹配约束:任意两个编码序列,移动y个位置后,连续匹配的最大数目必须小于d1,以减少部分非特异性杂交。
- DNA编码字母表:编码序列中包含的碱基必须在给定的编码字母表{A,C,G,T}中,或仅采用三个字符{A,C,T}编码以消除潜在的GC配对,避免可能产生的DNA二级结构。
- GC含量约束:因为GC之间有三个氢键,AT之间有两个氢键,所以,GC含量较高的DNA分子其分子结构越稳定。但有研究表明,在DNA双链中,GT之间也能像AT一样稳定配对,在DNA分子中的碱基G的含量较大时将可能出现错误杂交。因为,适当的GC含量对保持DNA分子的化学稳定性非常重要,再者,相同的GC含量能够保证DNA分子具有相似的解链温度。
- 禁止或要求的子序列。
- 连续碱基约束:如果编码序列中连续出现相同碱基,DNA结构就会不稳定,容易配对错位,杂交反应不能得以较好控制。
热力学约束如下,分为解链温度Tm和自由能△G:
解链温度Tm:是决定反应效率的重要参数,为了有效地降低不完全匹配双链产生的概率,要求参加反应的DNA分子的Tm值基本一致。结论一:不仅相关的胞嘧啶和鸟嘌呤的含量决定DNA的热变性,而且Tm实验值的大小与DNA序列中核苷的排列顺序密切相关。
自由能△G:指进行一个反应所需要(释放)的能量,是决定杂交反应的一个重要的热力学参数,应满足以下条件:
- 完全匹配自由能:任一序列与其补序列的自由能必须在一个给定范围内。
- 序列与其他补序列错配自由能:任一序列与另外一个序列的补序列的自由能必须在一给定范围内。
- 补序列间的错配自由能:补序列与补序列之间的自由能必须在一给定范围内。
- 序列间的错配自由能:一堆序列之间的自由能必须在一给定范围内。
3.3 DNA编码问题的研究现状
首先,早期DNA计算都是对随机的DNA序列进行布尔分矢量编码,即事先假定可以用足够长的随机子序列来对分量值进行编码,但这种随机定长编码方案显然不可行。
然后,96年,提出将遗传算法应用于DNA计算中的编码搜索,通过控制杂交反应温度来避免假阳性现象的出现,并给出确保有效计算的可编码的图的顶点个数的汉明距离。同年,建议在编码时对DNA序列设定一些约束条件,并描述了满足这里约束条件的最大子序列集合。
97年,首次给出编码问题的定义,提出类似汉明矩阵的新矩阵来进行DNA计算实验的错误分析,该标准后来演变为汉明距离标准。同年,Frutos提出模板映射策略(Template-Map Strategy)的DNA编码方法。
下面具体介绍一下模板映射策略。
其主要思想是通过一个二进制序列的模板(Temlpate)集合T和另外一个二进制序列的映射(Map)集合M生成生成满足要求的DNA序列集合:TxM→S,其生成规则为:1x1→T,1x0→A,0x1→G,0x0→C。例如,ti=11001001,mi=10100101,则si=TAGCAGCT。
模板方法的数学基础是当模板ti、tj或映射mi、mj具有某种性质时,其生成的两个DNA序列si、sj也具有此性质。
当然,需要符合几点要求:
- DNA序列的长度n=4k(k=1,2,3,…)
- GC含量为50%(模板集合T中的0、1含量相等即可,同样,映射集合M也应如此)
- H(si,sj)≥d(d=2k)
- Hrc(si,sj)≥d(d=2k)
在模板方法中,任意一个DNA序列s及其互补序列sc和反序列st是由以下规则产生:
- txm→s(5’→3’)
- txmc→sc(3’→5’)
- txmt→st(3’→5’)
以上规则2和规则3可以得出,当一个模板序列t为对称序列t=tt时,同时又两个映射序列mi,mj满足mit=mjc,即mi的反序列为mj的互补序列,则由它们生成的DNA序列si和sj互补。因此,可将模板集合划分为两个独立的子集Tn和Ts,T=Tn∪Ts,其中,Tn为非对称模板序列集合,Ts为对称模板集合。相应的,将与它们对应的映射集合称为Mn和Ms。
由此,可得到以下结论:
结论1:当模板集合Tn满足汉明距离以及汉明反补距离时,映射集合Mn只需要满足汉明距离,由Tn和Mn生成的序列集合Sn满足汉明距离和汉明反补距离。
结论2:当模板集合Ts满足汉明距离,映射集合Ms同时满足汉明距离以及汉明反补距离时,由Ts和Ms生成的序列集合Ss满足汉明距离和汉明反补距离。
结论3:当模板集合Tn和Ts满足汉明距离时,S=Sn∪Ss同时满足汉明距离和汉明反补距离。
因此,模板方法的实质是将DNA{ATGC}上的编码问题转化为{01}编码问题,即在二进制超立方体空间中求满足条件的最大模板集合和最大映射集合,使得由它们生成的DNA编码序列的集合最大。
但这是个NP-Hard问题。
于是,刘文斌对上述方法做了改进,将移位距离应用于模板集合的优化,采用随机搜索算法来求模板集合T和映射集合M。
求解模板集合T:
- 产生0,1含量相等的二进制串的集合B;
- 将集合B划分为对称子集Bs和非对称子集Bn;
- 对于x∈Bn,删除Bn中所有Hrc(x,x)<d的二进制串;
- 在Bn中,随机选择一个二进制串x将其放入模板集Tn,并删除Bn中所有与Tn汉明距离小于d的二进制串;
- 重复步骤(4)直到Bn成为空集为止,得到模板集合Tn;
- 删除Bs中所有与Tn汉明距离小于d的二进制串;
- 在Bs中,随机选择一个二进制串x将其放入模板集Ts,并删除Bs中所有与Ts汉明距离小于d的二进制串;
- 重复步骤(7)直到Bs成为空集,得到模板集合Ts。
求解映射集合M:
- 在B中,随机选择一个二进制串x将其放入模板集Mn,并删除B中所有与Mn汉明距离小于d的二进制串;
- 重复步骤(1)直到B成为空集为止,得到映射集合Mn;
- 对于x∈B,删除B中所有Hrc(x,x)<d的二进制串;
- 在B中,随机选择一个二进制串x将其放入模板集Ms,并删除B中所有与Ms汉明距离小于d的二进制串;
- 重复步骤(4)直到B成为空集为止,得到映射集合Mn;
接着前面说的DNA编码问题的研究,后来又对DNA信息编码形式对计算的作用做了研究,如单碱基编码、单词编码等。
将遗传算法应用于DNA编码搜索。
提出基于DNA的进化算法来解决DNA计算中的编码问题。
提出一种最小长度子串评价方法。
此外还有:穷举搜索、随机搜索、模板映射策略、图论方法、统计方法、动态规划、生物启发式方法和进化算法。
以上,DNA编码的基础知识已经了解完毕,现在开启具体的DNA编码序列的设计。
目前计划看三章内容,
第四章 基于随机产生实时过滤算法的DNA编码序列设计
第五章 基于组合权重的DNA编码序列集合评价模型
第六章 基于改进Hopfield网络算法的DNA编码序列设计
其中,第四、五章只是为了了解DNA编码序列设计,第六章重点看,看是否对神经网络有什么应用优化,以期用在深度学习模型中。
第四章 基于随机产生实时过滤算法的DNA编码序列设计
前面第三章总结,进行DNA编码序列设计可以采用3种策略实现:
- 搜索策略:包括穷举搜索和随机搜索。
- 模板映射策略。
- 演化策略:即随机产生一组DNA序列,通过设计相应演化策略,最终产生符合相关约束的DNA编码序列。
本章采用随机搜索策略。
4.1 设计思想
首先给出定义:定义n为待评价的序列数目,m为每个序列的长度,X是由长度为m的n个序列所组成的数据池,即:X={xi|i=1,2,…,n},xi~是xi的互补链,xi~和xi可通过Waston-Crick互补关系取其逆序而相互得到。对于任意的DNA序列x,用i,i+1,i+2等分别表示其第i,i+1,i+2个碱基(从5’端算起)。
本章总体设计思想如下:
以目标对象是单链还是双链将各自约束条件划分为两类:(Ⅰ)类和(Ⅱ)类,以各约束条件的计算时间复杂度和约束的强弱程度依次排序。
随机产生第一条设定长度的单链DNA序列及其补序列,判断其是否满足(Ⅰ)类约束条件。若满足,则将这两个序列分别放入集合X和X~中;否则,重新生成,直至产生第一条满足(Ⅰ)类约束条件的DNA序列及其补序列。
重复第(2)步工作,产生满足(Ⅰ)类约束条件的第二条DNA序列及其补序列,与集合中已存在的DNA序列做比较(比较规则随后详述),判断其是否满足(Ⅱ)类约束条件。若满足,则将这两个序列放入集合X和X~中;否则,重复第(3)步工作,直至产生同时满足(Ⅰ)类和(Ⅱ)类约束条件的第二条DNA序列及其补序列。
重复执行第(3)步操作,直至在集合中产生满足计算所需数目(假定为n)的单链DNA序列及其补序列(数目同样为n)。
目前,看到这里,自我感觉主要存在两个重点:
- 类的约束条件是什么,如何设定,是指物理约束和热力学约束吗?以各约束条件的计算时间复杂度和约束的强弱程度排序,这句话又有什么作用呢
- DNA序列的比较规则是什么,是前几章说的汉明距离什么的吗?
好,接下来带着两点疑惑继续看。
4.2 DNA编码序列设计
首先是前面说的(Ⅰ)类约束条件,是以单链DNA序列的生物物理属性和热力学参数为基础建立起来的,目的是尽量过滤到可能形成二级结构和造成非特异性杂交的DNA单链序列。
热力学约束:
解链温度Tm约束:是决定反应效率的重要参数,为有效地降低不完全匹配双链产生的概率,要求参加反应的DNA分子的Tm基本一致。有一个计算公式,时间复杂度为O(m)。
自由能△Gsh约束:表示随机产生的DNA序列与其补序列发生特异性杂交反应时所释放的能量。为满足编码序列定义,要求依次产生的DNA单链序列的|△Gsh|尽量大。可自定义一个|△Gsh|,若|△Gsh|≥|△Gsh|,保留该序列;否则舍弃。时间复杂度为O(m)。
组分约束:即GC含量约束,一般要求在40%~60%之间,这里要求50%,计算时间复杂度为O(m)。
构象约束:包括一级结构和二级结构。
一级结构约束:当随机产生一个给定长度的DNA单链序列时,其一级结构应满足:
序列的3’端不应超过3个连续的G或C,否则可能使引物在GC富集序列区错误引发。
序列中不能练出出现相同碱基,容易发生错位配对。
序列中不能出现重复结构。
二级结构约束:由于这本书只讨论线性分子,即假定集合中所有元素只包含一级结构,因此,问题转化为随机产生的满足上述约束的DNA单链序列的二级结构预测。书中说了很多类别的很多方法,最终重点介绍最小自由能算法。
现在,介绍最小自由能算法。但是先给几个定义。
对于DNA序列x,规定以下,称序列x为二级结构:
- 若i与j匹配,用(i,j)表示碱基对。
- 如果k
4.3 结果与讨论
随后,作者做了个实验,根据各项指标,包括:连续性、二级结构、汉明距离、解链温度、△G0、△Gmin(non-sh)。与另外三个文献的方法产生的DNA编码序列作比较。得出结论,RGRF产生的DNA编码序列在物理属性方面的总体评价效果高于另外三个。
第五章 基于组合权重的DNA编码序列集合评价模型
当采用不同(或相同)的方法产生多组DNA编码序列集合后,接着面临的问题就是如何对其进行合理客观的评价,进而从中选取能确保计算进程顺利进行的编码序列用于后续计算。所以,建立一套DNA编码序列系统评价模型非常实用。
于是,作者就开始说以前的方法有缺点,然后趁机提出自己的方法,说是什么,依据DNA编码序列约束条件间的制约关系,提出了一种基于统计学原理的、无需试验即可确定各评价指标权重系数的方法–组合权重法。
5.1 系统评价
如何设计系统评价,有一个具体的流程。然后核心是指标体系的建立与评价方法的选取。一般用指标值和其权重组合的方式进行评价。
先说评价指标体系。
- 先是初选指标体系:有综合法、层次分析法、交叉法、指标属性分组法。
- 然后检验指标体系:单项指标检验和整体指标检验,可定量或定性检验。
- 最后简化和优化指标体系。
然后是权重。权重体现了单项指标在评价指标体系中的重要性。
常用的求解权重的方法有:直接构权法、集值迭代法、目标驱动型构权法、逼近理想点法、熵值法、均方差法、极差法。
5.2 DNA编码评价指标的建立
主要是针对前面的约束条件作了一个评价标准。
- 距离约束评价标准fHd
- 组分越是评价标准:连续碱基评价函数fcon和GC含量约束评价fGC。
- Tm值约束的评价标准fTm。
- 自由能约束的评价标准fFE。
5.3 DNA编码序列集合评价模型
首先确定了5个评价指标,{fDd,fTm,fcon,fGC,fFE},然后判断约束条件之间的相关性,发现,fTm和fGC之间高度相关,合并二者,得{fDd,fTm,fcon,fFE}。
然后是确定权重系数。
5.4 结果与讨论
用本章的方法对一个文献中的四种编码序列集合做了评价,分析结果完全一致。
好了,这一章基本就是说了些有的没的,暂时感觉不重要,终于来到第六章了。
第六章 基于改进Hopfield网络算法的DNA编码序列设计
本章针对DNA计算中的编码问题,通过将DNA编码序列设计的最大编码问题(MNCP)映射为求解图的最大团问(MCP)题,进而尝试使用Hopfield网络进行DNA编码序列设计。
6.1 MNCP是NP-hard问题
图的最大团问题默认都知道。
那如何将MNCP映射为MCP,首先,只考虑3个约束条件:一级结构、解链温度、自由能。
一级结构:用Pi表示任意一个DNA序列si的一级结构属性,定义:
Pi={1,如果si∈{ⅰ}∩{ⅱ}∩{ⅲ}∩{ⅳ};
0,其他}
解链温度:用Tij表示任意两个DNA序列si和sj的解链温度差,定义:
Tij={1,如果|Tm(si)-Tm(sj)|≤5;
0,其他}
自由能:△Gsh定义为:
△Gsh={1,|△Gsh|≥20
0,其他}
在图的最大团问题中:构造一个无环、无重边的有限无向简单图G,该图由顶点集V={vi|i=1,2,…,n}和边集E={aij|i=1,2,…,n}所组成。当vi和vj之间有边相连时,aij=1,否则,aij=0.
在最大编码问题中:对于随机产生的包含n个DNA序列的集合S={si|i=1,2,…,n}。
如果令图G中的n个顶点对应于集合S中的n个DNA序列,顶点vi和vj之间的边对应于DNA序列si和sj之间满足上述3个约束条件,则有:
aij=Tij·Pi·△Gsh=1
至此,完成了由求解MNCP到求解图的MCP的映射。
可以采用一些并不一定可以求得最优解的算法(即启发式算法)。
6.2 Hopfield网络
Hopfield网络是一个循环神经网络,当有输入后,可求得网络的输出,这个输出反馈到输入后从而产生新的输出,反馈过程一直进行下去,直至网络达到某种状态,所以关键是稳定状态下的权值系数。
反馈神经网络由于其输出端有反馈到其输入端;所以,Hopfield网络在输入的激励下,会产生不断的状态变化。当有输入之后,可以求取出Hopfield的输出,这个输出反馈到输入从而产生新的输出,这个反馈过程一直进行下去。如果Hopfield网络是一个能收敛的稳定网络,则这个反馈与迭代的计算过程所产生的变化越来越小,一旦到达了稳定平衡状态;那么Hopfield网络就会输出一个稳定的恒值。对于一个Hopfield网络来说,关键是在于确定它在稳定条件下的权系数。
应该指出:反馈网络有稳定的,也有不稳定的。对于Hopfield网络来说,还存在如何判别它是稳定网络,亦或是不稳定的问题;而判别依据是什么,也是需要确定的。
这个网络分为离散型和连续型两种。
书中的介绍很简单,看的云里雾里的。
6.2.1 离散型Hopfield网络
采用的神经元是二值神经元,所输出的离散值0和1分别代表神经元处于抑制和激活状态。
第0层仅仅是作为网络的输人,它不是实际神经元,所以无计算功能;而第一层是实际神经元,故而执行对输入信息和权系数乘积求累加和,并由非线性函数f处理后产生输出信息。f是一个简单的阀值函效,如果神经元的输出信息大于阀值θ,那么,神经元的输出就取值为1;小于阀值θ,则神经元的输出就取值为0。
对于一个离散的Hopfield网络,其网络状态是输出神经元信息的集合。对于一个输出层是n个神经元的网络,则其t时刻的状态为一个n维向量。
故而,网络状态有2的n次方个状态,故n维向量Y(t)有2的n次方种状态,即是网络状态。
对于三个神经元的离散Hopfield网络,它的输出层就是三位二进制数;每一个三位二进制数就是一种网络状态,从而共有8个网络状态。在图中,立方体的每一个顶角表示一种网络状态。同理,对于n个神经元的输出层,它有2n个网络状态,也和一个n维超立方体的顶角相对应。
如果Hopfield网络是一个稳定网络,那么在网络的输入端加入一个输入向量,则网络的状态会产生变化,也就是从超立方体的一个顶角转移向另一个顶角,并且最终稳定于一个特定的顶角。
然后定义了一个能量函数,而且这个函数的变化量是恒小于等于0的,这就意味着,能量函数总是随着神经元状态的变化而下降的。
6.2.2 连续型Hopfield网络
连续Hopfield网络的拓朴结构和离散Hopfield网络的结构相同。这种拓朴结构和生物的神经系统中大量存在的神经反馈回路是相一致的。在连续Hopfield网络中,和离散Hopfield网络一样,其稳定条件也要求Wij=Wji。
连续Hopfield网络和离散Hopfield网络不同的地方在于其函数g不是阶跃函数,而是S形的连续函数。
也定义了一个能量函数,而且其变化量也是恒小于等于0的。因此,随着年龄的增长,神经网络在状态空间中的解轨迹总是向能量函数减少的方向变化,切网络的稳定点就是能量函数的极小点。
当Hopfield网络的神经元传递函数g是连续且有界的,例如Sigmoid函数,并且网络的权系数矩阵对称,则这个连续Hopfield网络是稳定的。在实际应用中,任何一个系统,如果其优化问题可以用能量函数E(t)作为目标函数,那么,总可以用连续Hopfield网络对其进行求解。由于引入能量函数E(t),Hopfield使神经网络和问题优化直接对应;这种工作是具开拓性的。利用神经网络进行优化计算,就是在神经网络这一动力系统给出初始的估计点,即初始条件;然后随网络的运动传递而找到相应极小点。这样,大量的优化问题都可以用连续的Hopfield网来求解。这也是Hopfield网络用于神经计算的基本原因。
Hopfield网络主要有两种功能:联想记忆和优化计算,这两种功能是对偶的。
目前这个网络先了解到这里,接下来看如何和DNA编码序列结合。
6.3 DNA编码序列设计
根据其动态方程可以导出:
dxi/dt=∑wijyj+θi(公式1)
有两种方法可以更新神经元的状态:
与时间无关:xi(t+1)=dxi(t)/dt(公式2)
与时间有关:xi(t+1)=xi(t)+dxi(t)/dt(公式3)
神经元的输入xi使用称作神经元模型的非线性函数更新神经元的输出yi。然后由两种用于优化问题的神经元模型。
- McCulloch-Pitts模型:yi=1,xi≥0;yi=0,其他。(公式4)
- Sigmoid函数:yi=1/(1+exp(-xi/T))(公式5)
在与时间无关的神经元更新模型中,如果使用McCulloch-Pitts模型,则当网络能量达到最小,不管是局部还是全部,网络都会停止,容易陷入局部极小中。
在与时间无关的神经元更新模型中,如果使用Sigmoid函数,网络不能总收敛到稳态。
在与时间相关的神经元更新模型中,网络容易陷入第一个局部极小并停止更新。而且会根据这个公式无条件更新,网络会收敛的很慢,状态很难改变,难以得到高质量解。
然后是对神经元电位更新模式的改进。
一种新的神经元更新模式来有效增加神经元之间的信息交换,允许能量函数暂时增加以避免陷入局部极小。即,
xi(t+1)=ai(yi,t)·xi(t)+dxi(t)/dt,其中0≤ai(yi,t)≤1(公式6)
随着0≤ai(yi,t)≤1,从0到1,神经元状态从类似时间无关更新模式趋向时间相关更新模式。
用sigmoid函数来更新神经元。
定义ai(yi,t)=1-exp(-(0.5-yi(t))^2·t/(ε·λ))(公式7)
其中,yi是第i个神经元的状态,t是迭代更新次数,ε和λ分别决定神经元成长速度和网络收敛速度的常数。
最后,就是基于改进Hopfield网络算法的MCP求解。
要求解MCP,需要建立一个有n个神经元的Hopfield网络,并根据其目标函数和约束条件写出能量函数的表达式,使其能量函数的最小值对应于问题的最优解。
在一个合理的能量函数表达式里应包含两部分:目标函数部分应实现团的顶点数目最大;约束条件部分应满足团中每对顶点间有边相连。
目标函数:J=-∑yi→min(公式8)
约束条件:
约束为使网络的稳态输出Y=(y1,y2,…,yn)对应于图G的任一团C。考虑到图的顶点在团内和团外的各种情况,有:
- 如果vi,vj∈C,即vi=1,vj=1,则顶点vi和vj之间必有边相连,即aij=1.
- 如果vi∉C,vj∈C,即vi=1,vj=0,则顶点vi和vj之间可能有边相连,也可能无边相连,即aij=1或aij=0.
- 如果,vi,vj∉C,即vi=0,vj=0,则顶点vi和vj之间可能有边相连,也可能无边相连,即aij=1或aij=0.
所以,综合1,2,3,对于网络的稳态输出Y,若要求它对应于图G的一个团,则Y满足:
yiyj(1-aij)=0,其中i,j=1,2,…,n,i≠j(公式9)
所以,可以构造能量函数为:
E=A∑∑(1-aij)yiyj-B∑yi(公式10)
其中,A和B为能量函数中目标函数和约束条件的加权系数,由实验决定。
修改这个式子为标准的Hopfield网络能量函数
E=-0.5·∑∑wijyiyj-∑θiyi(公式11)
这里,网络的连接权值wij和阈值θi分别为:
wij=-2A(1-aij)(1-δij),θi=B,,如果i=j,则δij=1,否则为0。(公式12)
最后,进行算法实现。
- 设置常数A,B,T,ε和λ,并设置迭代次数t=1;
- 随机初始化xi(i=1,2,…,n)的内电位;
- 使用Sigmoid函数(公式4)更新神经元yi(i=1,2,…,n)的状态;
- 设置loop_time=1;
循环直到loop_time≥n,这里n是顶点个数;
- a:随机选择一个神经元第i个神经元xi;
- b:使用使用公式7和公式6来更新第i个神经元xi的内电位;
- c:使用公式4更新神经元状态yi;
- d:loop_time+1;
t+1;
- 如果系统达到平衡状态,执行8,否则执行4;
- 使用网络的稳态计算最大团。
6.4 结果与讨论
作者进行了两类图的实验对比,得到新方法的使用时间更少。
然后又选取了各包含50个序列的两组随机产生的DNA集合,来显示仿真结果。
并不懂,为什么,“具体到编码设计问题,限于篇幅”,什么??不就是为了讲DNA编码的吗,怎么就说了这句话就没了呢,手动微笑脸。
以上。