特征值算法

2024-06-09

特征值算法(精选9篇)

特征值算法 篇1

0 引言

本文对现今很多KMP模式匹配改进算法进行了总结概述,并设计了一种文件内容快速匹配算法。该算法是在传统KMP模式匹配的基础上进行改良,针对现有的多处理器进行并行匹配运算,大大提高了病毒特征值匹配速度,有助于高效的进行病毒拦截,有很好的实际应用效果。

1 KMP算法介绍

模式匹配是指已知长度为n的文本字符T=t1t2…tn和长度为m(m<

KMP算法是串匹配算法中效率较高的。KMP模式算法的基本思想:当一次匹配过程中出现失败时,无需回溯主串指针,而是充分利用已经得到“部分匹配”的结果将模式串向右滑动,其特点是:消除了简单算法中的主串指针在相当多个字符串比较相等后,只要有一个字符比较不相等便需要回退的缺点。该算法时间复杂度为O(m+n)。

在KMP算法中引入模式串的next[j]函数:

设主串t,模式串p,t当前比较字符下标为i,p当前比较字符下标为j。当ti=pj是,i和j分别增1再继续比较;否则i不变,j改变为next[j]值后再继续比较。依次类推,直到出现下列两种情况之一:一是j退回到某个j=next[j]值时有ti=pj,则i和j分别增1后再继续比较;二是j退回到j=0,令主串和模式串下标各增1,随后比较ti+1和p1。这样一直循环到i大于等于t.length或者j大于等于p.length时为止,KMP算法相比简单模式匹配算法的核心是next数组的构造。

模式串P开头的任意个字符,把它称为前缀子串,如p0p1p2…pm-1。在P的第i位置的左边,取出k个字符,称为i位置的左子串,即pi-k+1...pi-2pi-1pi。求出最长的(最大的k)使得前缀子串与左子串相匹配称为在第i位的最长前缀串。第i位的最长前缀串的长度k就是模式串P在位置i上的特征数next[i]组成的向量称为该模式串的特征向量。

可以证明对于任意的模式串P=p0p1…pm-1,确实存在一个由模式串本身惟一确定的与目标串无关的数组next,计算方法为:

(1)求p0…pi-1中最大相同的前缀和后缀的长度k;

(2)next[i]=k;

作为特殊情况,当i=0时,令next[i]=-1;显然,对于任意i(0≤i

(1)next[0]=-1,对于i>0的next[i],假定已知前一位置的特征数next[i-1]=k;

(2)如果pi=pk,则next[i]=k+1;

(3)当pi≠pk且k≠0时,则令k=next[k-1];让(3)循环直到条件不满足;

(4)当pi≠pk且k=0时,则next[i]=0;

根据以上分析,可以得到next特征数组的计算方法,算法代码如下:

2 改进的KMP算法的研究

2.1 文献研究

翻阅查看了不少KMP改进算法,发现其改进仅限于两种方式,一种是对KMP本身继续改良,使得主串可以滑动更远进而加快匹配进度;另一种是在主串的首端和末端交替向中间进行匹配。

(1)对于第一种改进的模式匹配算法,查看文献[2]和文献[3],可以发现两篇论文几乎一模一样,不仅如此,两篇论文中提到的改进KMP算法存在错误,在文献[2]的第三部分“对KMP算法的改进”和文献[3]的第四部分“算法的基本思想”中提到的算法代码如下:

其中改进的地方是比KMP算法多了语句if if(i+j-k<=m&&t[j]!=s[i+j-k])i=i+j-k;也就是在遇到不匹配情况下主串可以继续向前滑动j-k,而不是简单的向前滑动一位。其中k=next[t],而t是未曾出现过的字符,根据文献中举例可以推断出,此处的t应该是j,也就是作者的意思是k=next[j]。同时可以举例证明该算法是错误的,主串T=”abaababaabc”和模式串P=”abaabc”,鉴于文献[2]和文献[3]中提出的算法,在i=5和j=5的时候不匹配,此时根据此算法k=next[5]=2,i+j-k=8,比较t[5]和s[8]可知不等,此时将i滑动至8,j=next[j]=next[5]=2;继续比较可知s[8]=t[2],继续向前比较s[9]和t[3]二者不等这样一直比较下去将会返回0得不到匹配。显然可以看出该主串是可以匹配模式串的返回值应该是6。由此分析可知文献[2]和文献[3]的算法是错误的。反例匹配过程如下:

根据算法此时k=next[5]=2,i=i+j-k=8,j=next[j]=2

根据算法此时i=9,j=3

根据算法此时k=next[3]=1,i=i+j-k=11,j=next[j]=1,i>n返回0

(2)对于第二种改进方式是将主串与模式串从前到后、从后到前交替进行字符比较。引入函数Q(r),在模式两端分别求Q(r)函数值,根据两端当前字符的Q(r)函数值,实模式交替向中间滑动尽可能远的一段距离后,继续匹配。根据该改进算法的思想,分析可知,当模式串与主串匹配成功的位置靠近左端或者中间的时候,本算法匹配的次数是简单KMP匹配算法的两倍;当成功匹配的位置靠近右端的时候,设本算法已经匹配了t次,用简单KMP匹配了要匹配n+m-t/2次(n为主串长度,m为模式串长度),当n>>m时,改进算法效率有明显提高。综合分析,改进的交替算法平均时间复杂度与简单KMP算法平均时间复杂度一样,在病毒特征码扫描技术中的应用性不强。

2.2 本文算法思想

(1)next数组的改进

传统的next数组计算方法仍然存在不必要的回溯问题。例如对于T=aaabaaaab,P=aaaa的模式匹配,使用传统的方法next值为-1,0,1,2。当T3=b与P3=a比较失败后,根据next值,T3需要与P2比较,但是可以看出P2=P3,因此这个比较是没有必要的。因此本文提出了一个next数组算法的改进,在本文提到的next数组算法代码中,把next[i]=j替换为以下代码:

(2)KMP算法的改进

本文提出了从主串T两头同时匹配的思想。使用并行计算或者多线程处理,可以使得匹配从主串两头同时进行。这里使用多线程实现作为例子,其中一个线程匹配成功后立即返回,另一个线程同时终止计算,也就是说模式串位于主串的任何位置,总是能够通过最少的匹配次数完成匹配。如果模式串位于主串的前半段,那么从首部开始匹配的线程很可能首先匹配成功然后终止匹配;如果模式串位于主串后半部分,那么从尾部开始匹配的线程很可能首先匹配成功,这样就解决了文献[4]中模式串位于主串前半部分带来的匹配次数增加的问题。

当然并不是说模式串位于主串的前(后)半段,那么从首(尾)部开始匹配的线程就一定首先匹配成功,但是不论如何总是用较少匹配次数就匹配成功的线程首先返回,也就是说使用本文提出的思想,匹配次数总是最少。

3 算法性能测试

评价一个模式匹配算法优劣程度的一个重要指标是字符的匹配次数。本文对传统的KMP算法和本文提出的KMP改进算法的匹配次数进行了实验比较。

首先使用一般文本串和模式串进行实验,结果如表1所示。

当模式串位于主串的前半部分,那么匹配次数小于等于传统KMP算法,而当模式串中有大量重复子串时匹配次数小于传统KMP算法;当模式串位于主串的后半部分,改进算法的匹配次数显然是小于传统KMP算法的。也就是说,改进算法的平均匹配次数是小于传统的KMP算法的,当主串很长时这种优势尤其明显。下面就来看看改进算法用在病毒特征值检测时的表现。

测试采用不同的病毒文件和不同的模式串对两种串匹配算法进行测试比较,测试程序有C++实现,具体结果如表2所示。

4 总结

本文在传统KMP模式匹配算法和一系列改进的模式匹配算法进行分析比对,结合现有改进算法,对KMP进一步改进,通过对算法的分析及实验证实,改进后的算法具有更高的匹配效率。因此将本文算法应用到病毒特征码扫描检测系统中,可以极大提高系统检测效率。

特征值算法 篇2

一组特征矩阵联合对角化算法的收敛性分析

先将一组特征矩阵联合对角化问题转化为一种代价函数的优化问题,再利用梯度下降方法求解代价函数的最优点.研究了一类代价函数的`一些基本性质和各种等价形式,分析了一组特征矩阵联合对角化算法的收敛性.分析结果表明一组特征矩阵联合对角化算法是一种不动点算法;在特征矩阵无误差情况下,这个算法单步迭代就收敛到理论解.

作 者:张海琴 于力 作者单位:西安电子科技大学,理学院,陕西,西安,710071刊 名:西安电子科技大学学报(自然科学版) ISTIC EI PKU英文刊名:JOURNAL OF XIDIAN UNIVERSITY年,卷(期):29(6)分类号:O211.2关键词:收敛性分析 特征矩阵 联合对角化 双正交性 代价函数

特征值算法 篇3

摘要:针对支持向量机在分类过程中的特征选择问题,提出了一种改进的遗传算法。在演化进程中运用Meteopolis准则通过合理选群来防止进化陷入局部极值区域。最后针对ucI数据库中的数据,通过将该算法与其他几种方法进行了比较,证明了本文算法具有较优的特征选择效果,并已成功应用在基于支持向量机的数字电路板故障诊断中。

关键词:支持向量机;互敏感度信息量;独立敏感度信息量;自适应变异率;Meteopolis准则

引言

支持向量机是一种在统计学习理论的基础上发展而来的机器学习方法,通过学习类别之间分界面附近的精确信息,可以自动寻找那些对分类有较好区分能力的支持向量,由此构造出的分类器可以使类与类之间的间隔最大化,因而有较好的泛化性能和较高的分类准确率。由于支持向量机具有小样本、非线性、高维数、避免局部最小点以及过学习现象等优点,所以被广泛运用于故障诊断、图像识别、回归预测等领域。但是如果缺少了对样本进行有效地特征选择,支持向量机在分类时往往会出现训练时间过长以及较低的分类准确率,这恰恰是由于支持向量机无法利用混乱的样本分类信息而引起的,因此特征选择是分类问题中的一个重要环节。特征选择的任务是从原始的特征集合中去除对分类无用的冗余特征以及那些具有相似分类信息的重复特征,因而可以有效降低特征维数,缩短训练时间,提高分类准确率。

目前特征选择的方法主要有主成分分析法、最大熵原理、粗糙集理论等。然而由于这些方法主要依据繁复的数学理论,在计算过程中可能存在求导和函数连续性等客观限定条件,在必要时还需要设定用来指导寻优搜索方向的搜索规则。遗传算法作为一种鲁棒性极强的智能识别方法,直接对寻优对象进行操作,不存在特定数学条件的限定,具有极好的全局寻优能力和并行性;而由于遗传算法采用概率化的寻优方法,所以在自动搜索的过程中可以自主获取与寻优有关的线索,并在加以学习之后可以自适应地调整搜索方向,不需要确定搜索的规则。因此遗传算法被广泛应用在知识发现、组合优化、机器学习、信号处理、自适应控制和人工生命等领域。

基于改进遗传算法的特征选择

遗传算法是一种新近发展起来的搜索最优化算法。遗传算法从任意一个的初始生物种群开始,通过随机的选择、交叉和变异操作,产生一群拥有更适应自然界的新个体的新一代种群,使得种群的进化趋势向着最,优的方向发展。图1中所示的是标准的遗传算法的流程框图。

传统的遗传算法存在早熟收敛、非全局收敛以及后期收敛速度慢的缺点,为此本文提出了一种能够在进化过程中自适应调节变异率,以及利用模拟退火防止早熟的改进遗传算法,同时该算法利用敏感度信息可以有效地控制遗传操作。图2是改进遗传算法的流程框图。

染色体编码和适应度函数

所谓编码是指将问题的解空间转换成遗传算法所能处理的搜索空间。在特征选择问题中,常常使用二进制的编码形式,使得每个二进制就是一个染色体,其位数长度等于特征的个数。每一位代表一个特征,每位上的1表示选中该特征,0则表示不选中。每一代种群都由若干个染色体组成。

适应度函数是整个遗传算法中极为重要的部分,好的适应度函数能使染色体进化到最优个体,它决定了在整个寻优过程中是否能够合理地协调好过早收敛和过慢结束这对矛盾。由于本文针对的是支持向量机的特征选择问题,所以考虑以分类正确率和未选择的特征个数这两个参数作为函数的自变量。将分类正确率作为主要衡量标准,未选择的特征个数为次要标准。由此建立以下的适应度函数:式中c为分类正确率。为未选择的特征个数,a是调节系数,用来平衡分类正确率和未选择的特征个数对适应度函数的影响程度,同时该系数也体现了用最少的特征得到较大分类正确率的原则,在本文中a取0.00077。由上式可知,分类正确率越高,未选的特征个数越多,染色体的适应度就越大。

选择操作

选择操作需要按照一定的规则从原有的种群中选择部分优秀个体用来交叉和变异。选择原则建立在对个体适应度进行评价的基础上,目的是避免基因损失,提高全局收敛性和计算效率。本文首先将整个种群中最优的前40%的个体保留下来,以确保有足够的优良个体进入下一代,对剩下的60%的个体采用轮盘算法进行选择,这样做可以弥补保留前40%个体而带来的局部最优解不易被淘汰的不利影响,有利于保持种群的多样性。

基于敏感度信息量的交叉、变异操作

独立敏感度信息量Q(i)指的是对在所有特征都被选中时计算所得到的适应度值Allfitness以及只有特征i未被选中时计算得到的适应度值Wfitness(i)按式(2)进行计算得到的数值。独立敏感度信息量刻画了适应度对特征是否被选择的敏感程度。

互敏感度信息量R(i,j)由(3)式可得,互敏感度信息量体现了特征与特征之间对适应度的近似影响程度。

交叉操作的作用是通过交换两个染色体之间的若干位从而生成含有部分原始优良基因的新个体。由式(3)可知互敏感度信息量可作为不同特征之间含有相似分类信息的一种度量,所以可以将互敏感度信息量代入式(4)计算出染色体在第一位发生交叉的几率β(j),在式(4)中i和j分别代表特征和特征j,是染色体的长度。β(i)是特征,相对于其他所有特征在互敏感度信息量上的归一量,反映了特征与其余特征在相似信息量上的总和。由此对应到染色体上,β(i)就可以认为是染色体的第i位与整个染色体在基因信息上的相关性,β(i)越小则说明相关性越大,第i位与整个染色体所含的基因信息越接近,此位为分裂点的几率越小。由于β(i)是归一化量,故可采用轮盘算法来选择一个交叉点。

变异操作是引入新物种的重要手段,可以有效地增加种群个体的多样性。本文中的变异率Pm采用相邻两代之间的最优适应度增幅比作为自变量进行自适应调节,如式(5)所示。当适应度增幅比正向增大时,较小的增幅比可以使变异率维持在中等水平,并且变异率随着增幅比的增大而缓慢降低,这样既能够拥有一定数量的新个体也可以抑制过多不良染色体的产生,保证优秀染色体的进化足够稳定;而当适应度增幅比反向增大时,由较小增幅比则可以获得较高的变异率。并且变异率也伴随增幅比同比缓慢升高,确保有足够的染色体发生变异,稳定地加快进化速度。式中dis指新生种群的最优适应度相对于原种群的最优适应度的增幅比,尚k均是区间(0,1)上的调节系数。文中的j与k分别取0.65和0.055。

独立敏感度信息量在一定程度上体现了单个特征所含有的分类信息量,如果独立敏感度信息量小,则说

明该特征所含信息大部分对分类没有帮助,即该基因位发生突变后对整个染色体的优异性影响不大,突变的概率也就相应减小。因此将独立敏感度信息量归一化后所得到的q(i)作为特征i被选为变异点的概率。变异点的具体选择方法为:针对一个染色体按照染色体的位数进行循环遍历,在该循环中由变异率Pm判定是否产生变异位。若需要产生变异位,则依据q(i)按照轮盘算法进行选择。

模拟退火选群

在每一轮进化完成后都需要决定进入下一轮进化的种群。如果过多地将较优种群作为父代,就会使算法过早收敛或搜索缓慢。文献中指出模拟退火算法能够以一定的概率接受劣解从而跳出局部极值区域并最终趋于全局最优解。因此可以将上文提到的最优适应度增幅比作为能量函数,运用模拟退火的Meteopolis准则来选择待进化的种群。为了使每个种群得到充分地进化,预防最优解的丢失,这里采用设置退火步长的策略来实现模拟退火选群。该策略具体为:使退火步长对同一种群作为父代的次数进行计数,一旦产生更优种群则退火步长就置零并重新计数。若退火步长累计超过一定的阈值时,就进入模拟退火选群阶段。退火步长累计到一定数量意味着原有种群的进化已经停滞,需要用模拟退火算法摆脱这种停滞状态。如果增幅比大于零,则说明新生种群优于原有种群。这时完全接受新种群进入下一轮进化:否则新生种群劣于原有种群,并以一定的概率p接受较劣的新生种群进入下一轮进化。接受概率lp由式(6)和式(7)共同决定,其中dis为增幅比,T(s)指温度参数,To和s分别是初始温度和迭代次数。

以上两式的参数要满足进化对接受概率的要求。即增幅比负增长越大,接受概率降低越迅速,但接受概率随迭代次数的增加应缓慢下降。这样做能够保证在有限的迭代次数内有一个适应度较优的新生种群进入下一轮进化,以达到减少计算量和优选待进化种群的目的。在本文中To=0.2,A=0.9,m=0.5。

实例的验证与分析

UCI数据库常用来比较各种方法的分类效果,因此可以用其验证本算法对支持向量机作用后的分类效果。文献㈨采用了UCI数据库中的German、Ionosphere和Sonar三种数据作为实验对象,为了便于与文献中所用的几种方法进行对比,本文也采用这三种数据进行实验,并按照文献中所述的比例将各类数据分成相应的训练样本和测试样本。

在种群规模为30,交叉率为0.8、起始变异率为0.1的条件下使用支持向量机作为分类器(惩罚参数为13.7,径向基核函数参数为10.6)对所选数据进行分类,表1中显示了本文算法与文献中几种算法在分类效果上的对比,表2给出了三种数据的最终选择结果。表1中共出现了四种方法:方法1:使用本文算法:方法2:使用NGA/PCA方法;方法3:使用PCA方法;方法4:使用简单遗传算法。

由于本文算法旨在用最少的特征个数最大化分类正确率,因此从表1中可以看出本文算法在特征选择个数和分类正确率上均比其他三种方法更具优势。由于NGA/PCA算法是针对简单遗传算法和主成分分析法的不足而做的改进,其性能优于简单遗传算法和主成分分析法,所以本文算法的分类效果优于NGA/PcA算法这一事实更能说明该算法可以较好地解决支持向基机的特征选择问题。

结语

通过与其他方法的比较,本文算法的分类效果得到了充分的验证,也说明了该算法具有极好的泛化能力以及在敏感度信息量地指导下遗传操作的有效性。

适应度函数的设计至关重要,它直接影响到最终结果的优劣以及算法的收敛性,所以在适应度函数的设计应考虑所解决问题的侧重点。

分类正确率的高低不仅取决于合理的特征选择,而且与支持向量机的参数优化有关。只有在合理的特征选择和参数优化的前提下,支持向量机分类器才能发挥出最佳的分类效果。

点特征提取算法探讨 篇4

1 Moravec兴趣算子

Moravec于1977年提出利用灰度方差提取点特征的算子。Moravec算子是在四个主要方向上, 选择具有最大-最小灰度方差的点作为特征点。

第一步, 计算各像元的兴趣值IV (in terestv alue) 。

第二步, 给定一经验阈值, 将兴趣值大于该阈值的点 (即兴趣值计算窗口的中心点) 作为候选点。阈值的选择应以候选点中包括所需要的特征点, 又不含过多的非特征点为原则。

第三步, 选取候选点中的极值点作为特征点。

除了以上方法, 还可以尝试首先利用边缘提取方法提取整个图象的边缘轮廓, 然后在此轮廓内利用以上特征点提取方法提取特征点。

2 Forstner兴趣算子

Forstner算子是从影像中提取点 (角点、圆点等) 特征的一种较为有效的算子。Forstner算子通过计算各像素的Robert梯度和以像素 (c, r) 为中心的一个窗口的灰度协方差矩阵, 在影像中寻找具有尽可能小而且接近圆的点作为特征点, 它通过计算各影像点的兴趣值并采用抑制局部极小点的方法提取特征点。

第一步:计算各像素的Robert梯度。

第二步:计算l×l窗口中灰度的协方差矩阵。

第三步:计算兴趣值q与w。

第四步:确定待选点。

第五步:选取极值点。

3 Moravec程序框图 (如图1)

4 基于Moravec算子的点特征提取效果图

灰度图像效果图如下:

可以看出特征算子对一些反差加大的地物边缘提取的效果较好, 而反差较小的边缘提取效果较差, 这是由阈值窗口大小的选取和算法本身所决定的。

5 结语

Moravec算子是点特征提取算子中的经典算子之一, 后来的很多点特征提取算子都是在它的基础上改进得来的, 掌握Moravec算子的原理和实现方法对理解其他的点特征算子的理解和应用有很大好处。

参考文献

[1]张祖勋, 张剑清.数字摄影测量学[M].武汉:武汉大学出版社, 2002.

特征值算法 篇5

矩阵特征值计算在科学研究和工程应用中具有重要的地位, 特别是在人工视觉、数字信号处理、电力电子、机械力学系统等众多领域发挥了核心作用[1]。对称矩阵的特征值计算更是众多算法的核心部分, 如主成分分析 (Principal Component Analysis) [2]、实时计算中的光学信息处理等。

Jacobi算法以其独特的旋转操作来求取矩阵的特征值[3]。目前, Jacobi算法的研究集中在对所有元素的并行计算上[4], 但是这种方法存在计算过程复杂、占用资源过多的问题。

本研究利用Jacobi算法对元素进行串行处理, 每次Jacobi旋转只需计算两行两列元素, 从而在速度不受影响的情况下, 减少面积。

1 Jacobi算法

给定一个n×n的对称矩阵A, Jacobi算法通过一系列矩阵相似变换[5]来减少矩阵非对角线元素的范数, 以此达到矩阵对角化的目的:

Ak=PkAk-1PTk, k=1, 2, … (1)

Γ (A) =i=1nj=1, jinaij2 (2)

在对角化过程中, 只要初始矩阵A0为对称矩阵, 则Ak (k=1, 2, …) 仍为对称矩阵。Pk被称作Jacobi矩阵或者旋转矩阵, 定义如下:

Ρk=[11cosθsinθ11-sinθcosθ11]pq

p q (3)

按照正交矩阵的定义[6], 容易验证PkTPk=E, 则旋转矩阵Pk为正交矩阵。

选取合理的角度θ可以使apq (k+1) 为零, 则完成一次Jacobi旋转。经过无穷多次Jacobi旋转, 矩阵的范数收敛于0[7]。当非对角线元素的范数小于某个接近于0的设定值, 可以认为矩阵已经被对角化。

t=tanθ=sign (τ) |τ|+1+τ2 (4)

其中:

τ=aqq (k) -app (k) 2apq (k) (5)

则有:

cosθ=11+t2sinθ=tcosθ (6)

2 CORDIC算法

由于Jacobi算法还涉及到开方、除法等运算, 这对硬件实现来讲有一定难度。CORDIC (Coordinate Rotation Digital Computer) 算法是J. Voider等人于1959年在美国航空导航控制系统的设计过程中提出来的[8], 它提供了一种适合于硬件实现的旋转方法[9], 将一个向量[x, y]旋转θ角度分解成连续的±arctan 2-i (i=0, 1, …b) 角度的旋转。这个过程只需进行移位和加法的迭代运算就能完成[10], 如下所示[11]:

xi+1=xi-di·yi·2-i (7)

yi+1=yi+di·xi·2-i (8)

τi+1=τi+di·arctan (2-i) (9)

其中:

di=sign (τi) (10)

经过b+1次迭代后, 最后结果还需要进行缩放, 比例因子Kb如下所示:

Κb=i=0b1/1+2-2i (11)

3 矩阵特征值计算的硬件实现

3.1 特征值计算过程

本设计采用Jacobi算法对元素进行串行处理, 每次只需计算两行两列元素, 使运算单元数目得以减少。

给定一个n×n对称矩阵A, 找出非对角线元素中绝对值最大的元素apq, 先后将第p行向量X1和第q行向量Y1、第p列向量X2和第q列向量Y2进行CORDIC旋转, 直到apq小于某个接近于0的设定值;然后将X1、Y1、X2、Y2以比例因子Kb缩放, 完成一次Jacobi旋转。重复上述过程, 直到矩阵的范数小于某个接近于0的设定值。

由于A是对称矩阵, 实际运算中只需计算上三角元素。因为每次CORDIC旋转包含了先后两次行变换和两次列变换, 根据式 (7) ~式 (9) 可得以下迭代公式:

app (k+1) =app (k) +d (k) ·2-k+1apq (k) +2-2kaqq (k) (12)

apq (k+1) =-d (k) ·2-kapp (k) + (1-2-2k) apq (k) +

d (k) ·2-kaqq (k) (13)

aqq (k+1) =aqq (k) -d (k) ·2-k+1apq (k) +2-2kapp (k) (14)

apj (k+1) =apj (k) +d (k) ·2-kajq (k) (15)

aiq (k+1) =aiq (k) +d (k) ·2-kapi (k) (16)

其中, d (k) =sign (apq (k) ) , ijpq

3.2 特征值计算硬件架构系统状态转换图如图1所示。

主要工作流程如下:

(1) 将矩阵A的上三角元素载入RAM中。

(2) 信号eigen_start为高时, 系统由状态Idle转换到状态findmax, 开始查找apq

(3) 查找结束后信号find_finish拉高, 进入状态judge, 根据范数和设定值判断是否进行Jacobi旋转。

(4) 如果范数小于设定值则进入状态finish, 否则进入状态load_to_reg, 将CORDIC旋转所需的元素载入寄存器。

(5) 载入结束后信号load_finish拉高, 进入状态compute, 开始CORDIC旋转。

(6) CORDIC旋转结束后信号compute_finish拉高, 进入状态refresh, 更新矩阵的元素。

(7) 更新结束后信号refresh_finish拉高, 进入状态findmax, 回到 (3) 。

(8) 进入状态finish后信号eigen_start拉低, 并进入状态idle。

系统硬件总体结构如图2所示。主要由以下几个模块组成:

(1) ControlUnit。根据输入信号, 获得系统状态转换的控制信号。

(2) Dual Port RAM。用于存储原始矩阵数据和每次Jacobi旋转之后的更新数据。A存储均参与行变换和列变换的3个元素appaqqapq, B存储其他元素。

(3) FindMax。查找apq, 获得该元素的值和所在的行、列以及矩阵的范数。

(4) CORDIC_D。进行对角线元素的CORDIC旋转。如果|apq|小于某个接近于0的设定值, 结束操作并通过总线Write bus A更新appaqqapq

(5) CORDIC_ND。进行非对角线元素的CORDIC旋转。当CORDIC_D结束操作时, 此模块也立即停止运算并通过总线Write bus B更新apjaiq

(6) Scale。完成每次Jacobi旋转后相关元素都要乘以比例因子Kb (appaqqapq均参与了行、列变换, 所以要以2倍的比例因子缩放) 。由式 (11) 可知, CORDIC迭代次数b与对应的kb值如表1所示。可以看到当CORDIC迭代次数b>5时, 比例因子趋近于0.607 3。所以在实现scale模块时, 本研究没有每次CORDIC迭代都缩放1/1+2-2i, 而是采用了查表的方法, 从而减小了计算量。

4 实验数据与分析

4.1 实验平台

系统用Verilog语言描述, 数据格式采用18 bit定点数格式, 仿真环境为ModelSim6.2, FPGA综合环境为Synplify Pro 8.1, 综合器件为Xilinx XC2V6000-6 Virtex-II FPGA。

4.2 实验数据分析与结果

本实验分别以4×4、6×6、8×8矩阵为例。通过实验, 系统能够稳定工作在70 MHz的时钟频率, 与文献[4]的设计在时钟频率上无明显差异。本设计对于8×8的矩阵特征值计算需要约400个时钟周期, 与文献[4]基本一致。文献[4]与本研究的设计在面积上的差异如表2所示。

由表2可知, 本研究的设计方案在速度不受影响的情况下, 和文献[4]相比, 所用面积得到减少。并且随着矩阵维数的增加, 文献[4]所提的结构在面积上呈明显的上升趋势, 而本研究的设计结果显示其只是缓慢地上升。

5 结束语

本研究采用Jacobi算法和CORDIC算法在FPGA上实现了对称矩阵的特征值计算, 对元素进行了串行处理, 减少了运算单元数目, 从而在系统速度基本不变的前提下, 减少了所占面积。

摘要:对称矩阵的特征值计算问题在数学和工程应用中都具有重要的实际意义, 针对对称矩阵特征值计算这一问题提出了一种新的FPGA实现方案, 并对该方案进行了验证和性能评估, 最后, 将它和目前已有的设计进行了速度与面积方面的对比。研究结果证实, 该方案在速度不受影响的前提下, 所占面积得到了减小。

关键词:对称矩阵,特征值计算,现场可编程门阵列,Jacobi算法,坐标施转数字计算机

参考文献

[1]BRAVO I, JIMENEZ P, MAZO M, et al.Implementation inFPGAs of Jacobi Method to Solve the Eigenvalue and Eigen-vector Problem[C]//Field Programmable Logic and Appli-cations, 2006.FPL’06.International Conference.Madrid:[s.n.], 2006:1-4.

[2]JOLLIFFE I T.Principal Component Analysis[M].2nd ed.New York:Springer Press, 2002.

[3]张贤达.矩阵分析与应用[M].北京:清华大学出版社, 2004.

[4]BOUGANIS C, CHEUNG P, LEONG P H, et al.HardwareEfficient Architectures for Eigenvalue Computation[C]//Proceedings of the conference on Design, automation andtest in Europe.Munich:European Design and AutomationAssociation, 2006:953-958.

[5]WILKINSON J H.The Algebraic Eigenvalue Problem[M].London:Oxford Science Publications, 1999.

[6]陈维新.线性代数[M].北京:科学出版社, 2000.

[7]GOTZE J, PAUL S, SAUER M.An efficient Jacobi-like al-gorithm for parallel eigenvalue computation[J].IEEETransactions on Computers, 1993, 42 (9) :1058-1065.

[8]王智霞, 王广生.CORDIC算法在FPGA中的实现[J].微处理机, 2007, 22 (3) :4-7.

[9]VALLS J, KUHLMANN M, PARHI K K.Evaluation ofCORDIC algorithms for FPGA design[J].Journal of VLSISignal Processing, 2002, 32 (3) :207-222.

[10]季中恒, 宋博.CORDIC算法及其硬件实现[J].弹箭与制导学报, 2005, 25 (3) :609-610, 627.

特征值算法 篇6

MUSIC算法[1]是一种高空间分辨力的DOA估计方法, 将其应用到基于麦克风阵列的声源定位可获得很好的性能。但该算法要对阵列输出数据的协方差矩阵进行特征值分解, 运算量很大, 在嵌入式系统中实现较困难。因此针对前人研究的一些子空间迭代算法, 如普通的幂迭代算法、逆幂迭代算法[2]、特征值平移幂迭代算法[3]和次分量分析 (MCA) 高效迭代算法[4]进行了研究, 其中MCA高效迭代算法适合神经网络实现。为了便于在嵌入式系统中实现, 主要考虑前3种方法进行分析比较。

在窄带系统的阵列信号处理中, 原则上需要使阵元间距为信号波长的一半[5,6], 由于声音信号的相对带宽极大, 按不同频率成分确定的信号波长大不相同[7,8]。仿真试验了若干选择阵元间距的方案, 并且结合使用子空间迭代算法进行了仿真分析。

1 基于子空间分解的阵列信号处理技术

M个阵元的均匀线性阵列有N个宽带信号入射到阵列上时, 阵列接收的信号可表示为:

X (k) =A (θ) S (k) +N (k) , (1)

式中, X (k) 为M×1维快拍数据矢量;N (k) 为M×1维噪声矢量;S (k) 为N×1维空间信号矢量;A (θ) 为M×N维阵列流型:

对式 (1) 进行傅里叶变换可得到阵列频域信号模型:

X (f) =A (f, θ) S (f) +N (f) 。 (2)

此时的阵列流型由信号的方向和频率决定, 每个频率点的方向向量不同。

A (fi, θ) =[a1 (fi, θ1) , a2 (fi, θ2) , , aΝ (fi, θΝ) ]。 (3)

式中方向向量为:

ai (fm, θk) =[exp (-j2πdsinθk/λm) exp (j2π (Μ-1) dsinθk/λm) ]

, (4)

称矢量ai (fm, θk) 是阵列对入射方向为θk的宽带信号在频点fm的响应向量。式中, d为阵元间距;λm为信号波长。阵列输出数据的协方差矩阵为:

R=E{XΗ (f) X (f) }, (5)

R进行特征值分解得到噪声子空间特征矢量矩阵UN

选定阵元间距后, 对应信号各频率成分可以获得其对应的方向向量, 从而计算出该频率处的空间谱;再根据信号功率在频域的分布对不同频率的空间谱求加权平均, 得到最终的空间谱:

Ρmusic (θ) =1Li=0Lwi1|A (θ) ×UΝ×UΝΗ×A (θ) Η|, (6)

式中, 加权系数wi=ΡiΡ, 而Pi是在第i段频谱中的信号功率。

2 基于子空间的幂迭代算法

作特征值分解的目的是为了得到阵列协方差矩阵的特征矢量, 再由其构成信号子空间与噪声子空间。因此, 减少运算量的其中一条途径便是由阵列协方差矩阵出发, 用子空间的迭代和更新改进特征子空间, 即用一些迭代的方法获得信号子空间或噪声子空间。其优点在于避免DOA估计中的特征分解, 又便于计算机实现。归纳出幂迭代算法的算法流程如下:

① 定初始值, 即选取nR0、u (0) 及k=0;② k=k+1;③令过渡矩阵Rtemp= (R0) nR (k) ;R (k+1) =Rtemptr{Rtemp};⑤ 确定一个搜索精度或条件, 收敛则转到第⑥步, 否则转到第②步;⑥ V=R (k+1) ·u (0) ;⑦ 按照式 (6) 进行谱峰搜索, 但算法中的信号子空间或噪声子空间用V来替代。

其中, 当算法中的R0=Rn=1时, 上述算法为普通的幂迭代算法;

当算法中的R0=R-1、n=1、u (0) =[1, 0, , 0]Τ时, 则MPI算法为逆幂迭代算法;

当R0=aI-R、n=1、u (0) =[1, 0, , 0]Τ时, 其中IM×M的单位矩阵, a=tr (R) 2为协方差矩阵Ρ的迹, 则MPI算法为特征值平移幂迭代算法。

3 选择阵元间距的方法

阵元间距的选择与信号频率及采样频率密切相关, 给定信号频率就可以确定采样速率fs;另一方面, 按空间采样定理阵元间距必须小于或等于波长的一半。

对于麦克风阵列接收的宽带声音信号, 频率范围为100~3 500 Hz, 包含大量频率成分, 按不同的频率选择阵元间距得到结果差别很大。需要综合考虑空间采样、阵列尺寸等因素, 至少有以下几种选取阵元间距的方案:① 按算术平均频率选取阵元间距:f1= (fmax+fmin) /2, λ1=c/f1, d1=λ1/2;② 按几何平均频率选取阵元间距:f2=fmin×fmax, λ2=c/f2, d2=λ2/2;③ 按最高频率选取阵元间距:λmin=c/fmax, d3=λmin/2;④ 按最低频率选取阵元间距:λmax=c/fmin, d4=λmax/2。

4 仿真实验

仿真条件如下:设均匀线阵阵元数目为7, 有2个来自不同方向的声音信号, 每个都是由多个谐波成分叠加组成。信号的最低频率fmin=100 Hz, 最高频率fmax=3 500 Hz, 再将其分为L点 (仿真中取L=10) , 则第k个频率点为fk=fmin+BW×k/L, 各个频率成分的幅值由0~1之间的随机数确定, 初相位由0~2π之间的随机数确定。2个声源到阵列中心的波达方向为θ1=60, θ2=100, 角度搜索范围为1~180°, 信噪比为10 dB, 经过100次统计平均后得出的4种阵元间距取值条件下的空间谱如图1所示。

从图1中可以看出, 只有当以最大频率选择阵元间距时才可以正确定位, 而以其他3种方法选择阵元间距时都出现许多虚峰, 影响定位效果。因此在下面仿真中采用最高频率得到的阵元间距。对3种幂迭代算法的比较如图2所示。图3为仿真分析比较特征值平移幂迭代算法与特征值分解算法的空间谱。

可以看出, 在相同的仿真条件下, 普通幂迭代法算法简单, 容易理解, 但是定位效果最差;逆幂迭代算法和特征值平移幂迭代算法的定位效果比较相似, 都能很好地进行定位, 但是逆幂迭代算法需要对信号协方差矩阵求逆, 在运算上有一定的复杂度;而特征值平移幂迭代算法则避免了矩阵求逆, 简化了运算, 且可以看出该方法的定位效果最好。因此选用特征值平移的幂迭代算法来代替特征值分解, 降低运算的复杂度。

由图3可以看出, 特征值平移幂迭代算法和特征值分解的算法可以达到相同的角度, 均可以很好地定位。但是由于特征值平移幂迭代算法只能近似得到噪声子空间, 因此特征值分解的算法分辨率要高于特征值平移幂迭代算法。

5结束语

为了解决MUSIC算法中特征值带来的运算量大的问题, 详细介绍了普通幂迭代法、逆幂迭代算法和特征值平移幂迭代算法, 分析了3种方法的优缺点, 仿真结果表明, 特征值平移幂迭代算法的定位效果最好。因此选用该方法来代替特征值分解, 降低运算的复杂度, 适于在嵌入式系统中实现。

参考文献

[1]SCHMIDTR O.Multiple emitterlocation and signal parameter estimation[J].IEEE Trans.on AP, 1986, 34 (3) :276-280.

[2]DURRANI T S, SHARMAN K C.Eigenfilter approaches to adaptive array processing[J].IEEE Proc, Pt.F, 1983, 130 (1) :22-28.

[3]张永军, 陈宗骘.特征值平移超分辨率算法[J].电子科学学刊, 1996, 18 (5) :449-454.

[4]崔皓, 李冬海, 钱艳艳.一种不需要特征值分解的MUSIC新算法[J].信息安全与通信保密, 2009 (1) :111-113.

[5]郭跃, 王宏远, 周陬.阵元间距对MUSIC算法的影响[J].电子学报.2007, 35 (9) :1675-1679.

[6]ZOLTOWSKI MD, MATHEWS C P.Real-time frequency and2-D angle estimation with sub-Nyquist spatiotemporal sampling[J].IEEE Trans, 1994, SP-42 (10) :2781-2794.

[7]王永良, 陈辉, 彭应宁, 等.空间谱估计理论与算法[M].北京:清华大学出版社, 2004:82-92, 15-230.

特征值算法 篇7

随着互联网的深入发展,互联网金融的发展非常迅速,甚至是已经发展到了校园中。随着互联网金融的发展,征信迫在眉睫。但是我国的信用评估体系并不完善。在过去的信用体系建设中,主要着重在企业和个人的信用评估方面,很少涉及到大学生这个特殊的群体。因此,建立一套适用于大学生的信用评估体系,选择合适的信用指标,对繁荣的互联网市场确定信用良好的学生等方面具有重要的意义。

在美国,每个人都有非常完善的个人资信档案。信用卡的每笔消费、透支、偿还等都非常详细的记录在了个人资信档案中。1943 年,Edward F Gee提出了现今大家所熟悉的5C原则,即品格、能力、资本、抵押品和周期形势。二十世纪七十年代,Paul H.Hunnm根据5C原则提出了5P原则,分别是借贷人、资金用途、还款来源、债权保障、授信展望等5 方面[1]。借鉴国外个人信用评估的指标,我国也在逐步建立适用于我国国情的信用指标体系。黄大玉等将每个人的资信评定分成品质体系和资本实力体系两个体系,并且采用“单独量化、分别评定、互相制约”的方法评分,以避免混淆品质和资本实力的目的[2]。王军等人根据年龄、学历、职业等设立了十五个指标用于全面评价个人资信,测算贷款人的还款能力、信用额度等。在以上的评估体系中,婚姻状况、职业与职务、住房情况、工作稳定性、月收入等都是影响个人信用的指标[3]。然而这些指标并不适用于大学生。研究高校学生的信用评估模型,选择适用于学生的信用指标是非常重要的。

本文利用在校学生的图书馆记录、消费记录、学习成绩等数据,使用特征分组和遗传算法相结合的方式作特征选择,选择出适用于学生信用模型的学生信用指标。

1 特征选择算法

在特征选择算法中,按照搜索特征子集的策略,可以分为完全搜索、启发式搜索、随机搜索三种方式。其中随机搜索是完全搜索和启发式搜索的折中,能够在相对较短的时间内找出接近全局最优的特征子集,是一种比较有效的特征选择方法。遗传算法是随机搜索算法中的一个典型算法,目前已经在机器学习、信号处理、经济预测等领域都取得了非常显著的成果。因此,在本文中也将选用遗传算法作为特征选择的方法。但是遗传算法对于特征多的大规模数据库的效率也比较低,本文提出了特征分组与遗传算法结合的方法。在本文中,特征选择的过程如图1 所示。

2 特征选择过程及结果

2.1 数据处理

随着学校信息化和数字化的发展,学校数据库里包含了大量与学生的生活、学习相关的数据。在国外,很多国家都已经把图书是否超期作为信用的一部分。学校的数据库中也详细记录了每个学生在图书馆借阅的情况,因此,本文中将利用图书馆的逾期记录进行建模。

从某高校的数据库中随机选择了4000 个学生数据,其中2000 个作为训练样本,另外2000 个作为测试样本。这些数据包括学生在学校中的图书馆借阅记录、图书馆门禁记录、消费记录及学习成绩等,如表1 所示。

根据表1 所得的数据,可以衍生出很多衍生变量。整合原始变量和衍生变量的到一张变量表,通过观察表中的数据内容,剔除对建模没有意义的变量,得到与原始变量相关的七十五个特征变量。本文将从得到的七十五个特征变量中选择出评价大学生信用的特征变量。

2.2 特征分组方法

本文使用变量聚类的方法进行特征分组。变量聚类是通过分析变量间的关系来对变量作出分类,以达到对变量进行归纳和整理的目的。变量聚类一般根据相关阵或协方差阵对变量进行分类聚类,类的选择则是根据主成分分析的思想,使每一类的第一主成分所解释的方差达到最大[4]。

在SAS软件中,可以使用proc varclus过程直接进行变量聚类过程,将变量分成指定的组数。本文中,利用proc vaclus将特征分为四组,每组有十几到二十几个变量。

2.3 遗传算法

2.3.1 编码及初始种群设计

遗传算法只能处理表示成由基因组成的个体的数据。在本次特征选择中,是否违约是一个二值问题,因此采用二进制编码的方法,每个染色体对应一个特征子集。设在特征组中有n个特征,则染色体十一个长度为n的{0,1} 字串,如果基因为1,表示该基因对应的特征被选中,如果为0 则表示该基因对应的特征没有被选中。随机产生k个长度为n的{0,1} 字符串作为初始种群。

2.3.2 适应度函数的设计

适应度函数是评价群体中每个个体适应度的函数。如果个体的适应度函数值比较大,说明它具有的优良基因比较多,那么它遗传到下一代的可能性就比较大;如果个体的适应度函数值比较小,说明它具有的优良基因比较少,那么它遗传到下一代的可能性就比较小。因此,适应度函数的设计非常重要。

本次特征选择的目的是找出与学生信用相关的特征变量,成功将学生根据信用好坏分类。因此,在本次适应度函数的设计中,根据分类准确率进行设计适应度函数。分类准确率高的特征子集遗传到下一代的可能性大。

逻辑回归在二值分类的预测中具有非常广泛的作用,而且稳定性非常好,在本次适应度函数的设计中,以分类的准确率作为适应度函数值。

在本文中,样本只有违约和没有违约两类,对于染色体个体,所选取的特征个数为n个。首先采用辑回归算法对个体选取的特征进行逻辑回归分析,得到参数估计中各个特征的系数,然后将得到的系数代入到线性回归函数中,根据线性函数值计算出大学生违约的概率,并且根据违约概率预测是否违约,最后根据实际情况与预测结果计算该模型的准确率。

2.3.3 遗传算子

(1)选择算子

在本次遗传算法进行的过程中,选用最佳个体保存方法。与其它选择方法相比,最佳个体保存方法可以保证进化中某一代的最优解不被交叉和变异。在本文中,选择算子的步骤是:在交叉或者变异生成的新个体与上一代个体放在一起,对分类准确率进行排序,根据种群中的个体数保留分类准确率高的个体。

(2)交叉算子

在本次遗传算法中,采用的是一点交叉的算法。一点交叉的步骤是,从上一代中随机选择两个个体,随机指定交叉点,生成两个新的个体。

由于采用特征分组的方法,所以在每组个体的特征大约为十几到二十左右,相对比较少。

而且一点交叉比较成熟,使用简单,更容易的生成新的个体。

(3)变异算子

在本次遗传算法的变异过程中,首先按照变异概率选择需要变异的个体,然后在选出的个体中随机选择变异的基因,从0 变成1 或者从1 变成0,实现基因的变异。

2.3.4 终止条件的设计

在随机搜索算法中,终止条件一般设为一定的循环次数。在本次遗传算法的试验过程中,为遗传过程设置一定的代数,当遗传进行到该代之后停止。

2.4 实验及结论

在特征分组及遗传算法选择之后,得到各组变量的优化子集。将各组子集整合到一个变量集中,然后所得到的特征变量集利用遗传算法进行最后的优化,得出最优子集,该子集中的特征可以用于高校学生中的信用评估体系建设,如表2 所示。

在训练样本中,根据特征子集进行信用评估后得到的结果的准确率为94.5%,将得出的特征子集应用到测试样本中进行测试,结果的准确率为93.5%。从这些数据可以看出,选择出的特征子集应用于训练样本和测试样本时的分类准确率相差不大,说明该特征子集的选择比较好。

3 总结

本文为顺应互联网金融在高校校园中的发展,通过分析高校学生的学习成绩、消费记录及图书馆相关记录,为判断高校学生的信用状况选择合适的特征子集。首先,进行数据预处理,形成原始特征空间。然后,使用变量聚类的方法给变量分组,通过遗传算法找出各组中的最优子集。最后,整合各组最优子集,再次使用遗传算法找出最优子集。

根据该特征子集,采用逻辑回归算法,对学生的信用状况进行分析,可以看出该特征子集具有一定的准确性,可以作为高校学生信用评估模型中的特征变量,为高校学生信用评估模型的建立提供了一定的参考价值。但是,选择出的特征变量也有一定的不足。学生的生活、学习中不止有本文中用到的数据,还有其他可能与信用强相关的数据。另外,本次分析只选用了一部分学生数据,学生数据是在不断更新的,所以特征子集也可能需要不断的调整。

摘要:随着互联网金融的发展,消费信贷已经走入高校学生的生活中。本文在高校学生消费信用数据缺失的情况下,根据学生在学校中的图书馆借阅记录、图书馆门禁记录、一卡通消费记录以及学习成绩等数据进行分析,为高校学生信用模型的建立筛选相关特征变量。本文中采用特征分组与遗传算法相结合的方法,筛选出了与学生信用相关性最大的特征变量,为高校学生征信提供了重要的参考价值。

关键词:相关分析,遗传算法,信用

参考文献

[1]李大伟,个人信用评分与信用卡风险控制研究[D].长春,吉林大学,2006

[2]黄大玉,王玉东.论建立中国的个人信用制度[J].金融论坛.2000,(3):27-31.

[3]康世瀛.个人信用评估及贷款决策研究[J].经济问题探索.2002,(9):108-112.

人脸识别特征提取算法研究 篇8

特征提取是人脸识别中一个非常重要的环节, 目的是为了降低人脸图像的维数。目前, 常用的基于统计的特征提取方法有主成分分析 (PCA) [1]和线性判别分析 (LDA) [2]等。独立元分析 (ICA) [3]是近年来发展起来的一种新的多维数字信号处理技术, 其基本思想是在最大程度保持信息量的前提下, 从高维数据空间中提取出低维数据的特征分量, 是一种基于人脸全局特征的识别方法。但ICA算法在获取独立分量的过程中需要获取人脸图像的先验知识, 这影响了识别的准确率。有效减少了后续工作的计算量, 取得了较高的识别率。

基于上述讨论, 本文将一个人脸图象矩阵视为一矢量, 通过引入模糊数学中的隶属度概念, 定义矢量隶属函数, 提出一种新的基于隶属度函数的独立成分分析特征抽取和识别方法。有效减少了后续工作的计算量, 取得了较高的识别率。本文称该方法为模糊ICA (Fuzzy ICA) 。

1、独立成分分析的基本理论

ICA最初是对盲信号的分离。利用独立成分分析 (ICA) 方法可以在不知道信号源和传输参数的情况下, 根据输入信号源的统计特性, 仅由观测信号恢复或提取源信号。独立成分分析已经成为盲信号处理中最主要的方法之一, 并在模式识别、数据压缩、图像分析等方面得到广泛的应用。

对于一组盲源信号S= (s1, s2, …sm) T, 有N路观测信号X= (x1, x2, …, xN) T, 每一路都是一维行向量的形式。存在系数 (混合) 矩阵A, 使得独立源信号S与观测信号X可以用线性关系来表示:

式中A∈RN×M, 称为混合矩阵。

存在分离矩阵W∈RM×N, 使其满足下式:

式中WA=I, I为单位阵, Y为统计独立的未知源信号S的最佳估计。

在独立成分分析中求解分离矩阵是关键。目前已提出很多求解分离矩阵的算法。本文采用FastICA方法来实现独立分量的提取【8】, 该方法是基于负熵的固定点算法, 是目前效率较高, 应用较广泛的一种ICA算法。该算法的具体描述为:

(1) 对数据进行中心化处理, 使其均值为零。

(2) 白化数据, 令白化后的数据为z。

(3) 初始化W (0) , 令其模为1, 置k=1;

(4) W (k) =E{zg (W (k-1) Tz) }-E{g′ (

W (k-1) Tz}W (k-1) ;

(5) W (k) =W (k) /||W (k) ||;

(6) 如果不收敛, 令k=k+1, 返回 (4) 继续, 否者输出W (k) 。

其中g (u) =uexp (-u2/2)

该算法最后得到的向量W, 其线性组合WTz给其中的一个独立分量。要计算n个独立分量就要重复上述算法n次, 但每提出一个分量后要从混合信号中减去这一分量。

2、基于Fuzzy ICA的特征提取和识别

2.1 算法设计的基本思想

自1965年Zadeh提出模糊概念以来, 模糊数学已被用于很多领域, 将其应用于模式识别, 形成了模糊模式识别。模糊模式识别方法是利用模糊数学中的概念、原理与方法解决分类识别问题。模糊模式识别将待识别类别、对象作为模糊集和其元素, 因此应根据实际问题需要进行特征提取或特征变换, 建立模糊集的隶属函数, 然后运用有关模糊数学的原理和方法进行分类识别。

2.2 特征提取和识别算法

ICA是PCA从二阶统计分析向高阶统计分析的拓展, 基于数据的高阶统计信息提取数据的独立特征, 能够更好的表示人脸的局部特征。具体算法为:

(1) 特征提取和变换

假设人脸图像训练集样本图像有n类人脸图像, α={α1, α2, …, αn}, 且第i类有Ni个人脸图像。

对人脸图像训练集样本图像α, 首先通过PCA算法对图像进行去二阶相关和降维处理, 然后通过ICA算法对图像进行处理, 获得由独立影像基构成的一个低维子空间:S={S1, S2, …, Sm} (m<n)

计算出此低维子空间的特征向量为:

假设Xj (j=1, 2, …, Ni) 为已知αi类人脸图像矩阵Aj (i) (j=1, 2, …, Ni) 的特征向量, Y为未知人脸图象矩阵C的特征向量, 计算Xj和Y在低维子空间中的投影向量, 即Zj=ST﹒Xj, φ=ST﹒Y。

(2) 建立矢量隶属函数。

模糊集合隶属函数的建立, 无论在理论上还是在应用上都是非常重要的。由于造成模糊不确定性的原因多种多样, 因而模糊集的种类是复杂的。实际应用中, 确定隶属函数的方法有不少, 如专家确定法、统计法、对比排序法等。

在本文中, 我们将模糊数学中建立隶属函数、隶属度的方法引入矢量空间中, 从而定义未知人脸图像矢量归属于αi类的模糊隶属度函数为:

其中, λj为任意实数, ‖﹒‖为向量范数, Zj和φ为 (1) 中得到的特征向量。

(3) 模糊结果处理及人脸分类识别。

使用模糊技术进行分类的结果不再是一个模式明确地属于某一类或不属于某一类, 而是以一定的隶属度属于各个类别。如果分类识别系统是多级的, 这样的结果有益于下一级的决策。如果这是最后一级决策, 而且要求一个明确的类别判决, 可以根据模式相对各类的隶属度或其他一些指标, 如贴近度等, 进行硬性分类。在本文中, 我们利用最大隶属度原则进行人脸分类识别, 即首先计算每个输入人脸图像 (测试样本) 对各类人脸图像的图像隶属度μai, 若, 则判别测试样本为αi类人脸图像。

3、试验结果及分析

试验中采用ORL标准人脸数据库验证该算法, 该数据库包括从1992年4月到1994年4月剑桥大学实验室拍摄的一系列人脸图像, 具体为40个人, 每个人有不同表情或不同视点的10幅图像, 共400幅图像所构成, 倾斜角度不超过20度, 这些人脸图像的分辨率为92×112, 人脸数据库中每个人的图像都是不同角度、不同时间且受一定光线和一些饰物 (如眼镜等) 影响。图1是ORL人脸数据库中部分图像:

本实验使用Matlab7.1在windows XP系统下, 为了更好地证明算法的有效性, 我们随机选取其中10个人, 每人前3幅 (共30幅) 图像作为训练样本, 其余的30幅图像作为测试样本的做法。如此重复10次试验, 最后结果取其平均值。分别采用传统的ICA方法、PCA方法和本文的Fuzzy ICA方法, 进行了人脸识别仿真实验

由图2可知, 识别率随着特征维数的增加而成上升的趋势, 本文的方法识别率高于传统PCA方法和ICA方法, 该方法识别率最高可达95.1%, 但当特征数接近100时, 识别率略有下降的趋势, 说明并不是所有的特征向量都是有效的投影空间, 有些刚好是与人脸本身无关的噪声因素干扰。

4、结束语

本文在研究采用ICA提取的具有局域特点的独立分量表示人脸基础上, 将基于模糊ICA的人脸图像特征提取和识别算法与传统的PCA和ICA人脸识别算法进行了比较, 对ORL标准人脸数据库的测试表明, 该算法的性能优越, 而且识别率较特征脸法更高。但是, 算法的计算量很大, 当样本数很多的时候, 训练时间是个问题。因此, 算法仍需进一步的改进和提高。

参考文献

[1]余晓梅, 徐丹。基于外观的子空间人脸识别方法研究[J], 计算机应用研究。2007, 24 (5) :10-12

[2]Belhumeur P N, Hespanha J P, Kriengman D J.FishedacesIRecognition using class specific linear projection[J].IEEETransaction on Pattern Analysis and MachineIntelligence.1997.19 (7) :771-720

[3]张贤达, 保铮。盲信号分离[J], 电子学报, 2001。29 (12) :1767-1771

[4]王展青, 刘小双等.基于PCA与ICA的人脸识别算法研究[J].华中师范大学学报, 2007, 41 (3) :373-376

[5]邢国。人脸识别中两种特征提取算法的性能比较[J].信息与电脑, 2011, 1 (6) :115-117

[6]龙际珍, 陈沅涛, 邓冬梅.基于模糊隶属度的人脸识别应用[J].计算机应用研究, 2011, 28 (7) :2789-2792

[7]Yuen PC, Lai JH.Face representation using independentcomponent analysis[J].Pattern Recognition, 2002, 35 (6) :1247-1257.

基于特征进化的混合遗传算法 篇9

遗传算法GA (Genetic Algorithms) 是近年来发展起来的一种具有普适性的进化算法, 对多种工程应用问题显示出较强的求解能力, 被成功地应用于诸多领域[1], 但GA仍存在收敛速度慢和早熟性收敛两方面问题。许多研究结果表明, 将GA与启发式算法结合能有效提高求解旅行商问题 (TSP) 的质量[2,3,4]。文献[5]认为, 早熟性收敛主要是由有效等位基因的缺失造成的, 而有效等位基因与种群多样性密切相关。种群多样性越好则有效等位基因越丰富, 可保证遗传算子产生更多的新个体, 这些新个体是维持丰富有效等位基因的有效手段之一。

由此, 提出了基于特征进化的混合遗传算法, 该算法一方面结合高效的启发式算法, 加快算法的收敛速度;另一方面采用新的基于特征进化算子对有效等位基因进行保护, 保持算法在进化过程中产生更多高适应度的新个体补充到种群中, 更好地抑制算法早熟性收敛, 并能收敛于规模小于2 000的TSP全局最优解。

1改进的遗传算法

1.1启发式算法的选择与优化

在TSP研究领域, 常用的启发式算法主要包括2-Opt、3-Opt和Lin-Kernighan (LK) 算法。大量的实验和研究成果表明, 虽然LK算法具有较2-Opt和3-Opt更高的复杂度, 但表现了更好的优化质量, 以Concorde[6]提供的链式LK (CLK) 算法为蓝本进行研究。CLK算法的主要参数包括:重复次数、参照优化边集、Kicks类型等。如何选择上述参数, 是提高CLK算法运行效率和求解质量的关键。其中, 重复次数和Kicks类型可通过重复随机实验建立, 而参照优化边集建立的方法较多, 难以对某种具体的建立方法进行评价。文献[10]指出, 建立更合理的参照优化边集 (ROE) , 在提高对任意给定一条路径的优化质量的同时, 与其它ROE初始化方法相比, 在其它参数相同的情况下前者运行时间得到明显缩短, 为此采用前期研究结果建立ROE[12]:随机初始化50条环路, 利用CLK算法进行优化得到优化后的50条环路, 取这些环路所有边的并集, 该并集高概率包含全局最优解的所有边。

1.2特征进化遗传算子的设计

根据GA的最小诱导模式机理, 最小诱导模式普遍存在于个体之中, 对这些诱导模式的保护, 有助于加速算法的收敛速度。同时, 对于个体中已包含的属于算法收敛优化解或全局最优解中的基因块——有效基因块, 由于遗传算子随机性过强, 不能充分利用个体中的有效信息进行重组, 对有效基因块不具有判断能力。如果交叉点或变异点选择在这些有效基因块中的某个基因座时, 有效基因块将遭到破坏, 这势必影响算法的收敛速度和效果, 这种情况在GA收敛后期尤为明显。因此, 保护最小诱导模式和有效基因块, 对加速GA的收敛起到很大作用。

设任意两条路径p1和p2, 两者之间的相似距离为:

d (p1, p2) =|E (p1) ∩E (p2) |/N

p*为全局最优解, 由于:[E (p1) ∩E (p2) ]∩E (p*) =[E (p1) ∩E (p*) ]∩[E (p2) ∩E (p*) ], 则有:[E (p1) ∩E (p2) ]∩E (p*) ≤min (E (p1) ∩E (p*) , E (p2) ∩E (p*) ) 成立。根据鸽巢原理, 若d (p1, p*) >0.5且d (p2, p*) >0.5同时成立, 则有:

|[E (p1) E (p2) ]E (p*) |Νmin[d (p1, p*) , d (p2, p*) ]-0.5

成立。由此有下式成立:

{|[E (p1) E (p2) ]E (p*) |Νmin[d (p1, p*) , d (p2, p*) ]-0.5|[E (p1) E (p2) ]E (p*) |Νmin[d (p1, p*) , d (p2, p*) ]

根据文献[3]结论:CLK算法解质量平均达到0.8, 即d¯=0.8, 表明[E (p1) E (p2) ]E (p*) ϕ, 又由于:

{[E (p1) E (p2) ]E (p*) }E (p*)

恒成立, 可得以下结论:

结论1 对于两条与全局最优解相似距离超过0.5的路径, 二者边的交集中包含全局最优解部分边。两条路径与全局最优解之间的相似距离越大, 交集中包含的属于全局最优解的边数量越多。

当两个个体执行交叉或变异时, 两个个体的边交集中包含有效基因块的概率将随着GA进化过程的推进逐渐升高, 这是由于个体逐步接近收敛优化解或全局最优解, 与优化解或全局最优解之间的海明距离逐渐缩小, 其距离越小两个个体中相同的有效基因块数量越多, 则得到保护的概率越大。同样, 对最小诱导模式具有相同的效果。文献[10]也得到如下结论:经过CLK算法优化的环路与全局最优解的相似度平均达到80%。由此建立以下基于特征的两点交叉算子 (CTCO) 和单点变异算法 (CSMO) 。

算法1CTCO

输入:父代个体X1和X2

输出:交叉操作后的新个体X1′和X2′

Begin

1) 初始化 (建立一个空的边集合, 记为A) ;

2) 取AX1与X2的边集的差集;

3) 若A中边的数量少于两个 , 则:

(1) 从所有的基因座中随机选择两个交叉点;

否则

(1) 随机从A中选取两条边;

(2) 根据所选取的边确定两个交叉点;

(3) 执行交叉, 形成两个新个体X1′和X2′

End

算法2CSMO

输入:父代的一个个体X1和参照变异个体X2

输出:变异操作后的一个新个体X1′

Begin

1) 初始化 (建立一个空的等位基因集合, 记为A) ;

2) 取AX1的边集与和X2边集的差集;

3) 若A中的边数为0, 则:

(1) 从所有的基因座中随机选择一个变异点;

否则

(1) 随机从A中选取一条边;

(2) 根据所选取的边确定变异点;

(3) 执行变异, 形成新个体X1′

End

算法二中参照变异个体X2的选择可根据具体情况进行选择, 如果希望种群更快向最小诱导模式进化, 则可以选择种群中适应度最高个体;如果希望扩大种群的多样性, 可随机选择一个个体或选择种群中适应度最低的个体。

2基于特征进化的混合遗传算法

由于采用文献[12]方法建立的问题初始边集, 需要产生50条随机路径, 而GA中的种群初始化亦采取相同过程, 本文设计的GA的种群规模设置为50, 可用一个功能模块完成CLK参照优化边集的建立和GA种群初始化。

算法3 基于特征进化的混合遗传算法

输入:TSP数据集

输出:TSP的优化解

Begin

1) 初始化

(1) 建立一个空的边集合, 记为A; //CLK参照优化边集

(2) 申请种群空间Population;

2) 种群初始化

(1) repeater←1; //CLK参照优化边集使用的重复次数

(2) KickType←随机类型; //Kicks类型

(3) 建立问题的最近3近邻边集Ne;

(4) 循环K=50次, 做:

① 随机初始化一条环路p;

p′←CLK (repeater, KickType, Ne, p) ;

③ 将p′中所有的边合并到A;

④ 将p′加入到Population;

3) 计算Population中每个个体的适应度;

4) repeater←N/2; //GA优化使用的重复次数

5) 循环直到达到终止条件, 执行:

(1) 执行选择算子选择两个体X1和X2;

(2) X1′, X2′←两点CTCO (X1, X2) ;

(3) X1′←单点CSMO (X1′, X2′) , ←单点CSMO (X2′, X11′) ;

(4) X1′←CLK (repeater, KickType, A, X1′)

(5) X2′←CLK (repeater, KickType, A, X2′) ;

(6) 计算X1′和X2′适应度;

(7) 替换种群中较X1′和X2′适应度更低的个体;

6) 返回种群中适应度最高的个体X*;

End

3实验情况及分析

下述实验环境均为Intel Core2 E6300 1.86GHz CPU, 1GB内存, 操作系统为Windows XP。数据集均采自TSPLIB95[11]。GA中交叉概率为0.615, 变异概率为0.15, 进化50代, 当算法搜索到全局最优解即行停止, 距离按取整方式计算。每个数据集重复求解30次, 并给出了平均解距离全局最优解的偏差值, 其中:

偏差= (平均环路长度-全局最优解环路长度) /全局最优解环路长度×100%

实验对比算法如下:

算法1 GA使用3-Opt局部优化算法;

算法2 GA使用重复N/2次且采用Quadrand 3近邻域参照优化边集初始化的CLK算法;

算法3 GA使用重复N/2次且采用先期研究成果文献[12]中方法进行边集初始化的CLK算法;

算法4 本文算法三——基于特征进化的混合遗传算法。

对比情况如表1, 表中标记下划线数据为该数据集上仅重复一次, 原因是算法单次不能收敛于全局最优解或收敛时间过长。

由于3-Opt算法较CLK算法的优化质量相差很大, 本文仅给出算法2、3、4的收敛对比曲线, 数据集为pr1002, 如图1所示。

从上述实验结果可见, 算法2、3、4均能收敛到问题的全局最优解。从图1的收敛曲线上看, 三种算法的收敛趋势差异很小, 但从表1的收敛时间上看, 算法2收敛时间约为算法3的2倍左右, 表明文献[12]提出算法的有效性。算法4在算法3基础上引入了特征进化算子, 在大规模数据求解上表现了良好的收敛时间, 在规模为1 889个城市问题的求解中, 仅花费了相当于算法2的1/9时间、算法3的1/3时间收敛到全局最优解, 验证了提出的算子的有效性。

4结束语

通过分析及论证, 本文建立了用于求解中小规模TSP的GA, 通过在GA中引入CLK作为启发式算法, 加快了GA的收敛速度, 同时提出了CTCO和CSMO两个特征遗传算子, 在高概率性保护种群中最小诱导模式和问题优化解的前提下, 为父代个体中非有效基因块基因座上的基因提供了更多进化机会, 较好地抑制了GA的早熟现象, 有效地提高了算法收敛速度和全局寻优能力。通过大量覆盖实验表明, 本文提出的GA算法, 将GA的全局寻优能力和CLK的局部寻优能力进行了较好的结合, 在本文规定遗传代数内能收敛到规模在2 000以内问题的全局最优解。

参考文献

[1] Xi Y G, Cai T Y, Yun W M.Survey on genetic algorithms [J].Control Theory, Application, 1996, 13 (61) :696-704.

[2]Baraglia R, Hidalgo J I, Perego R.A hybrid heuristic for the travelingsalesman problem[J].IEEE Transactions on Evolutionary Computa-tion, 2001, 5 (6) :613-622.

[3] Merz P, Freisleben B.Genetic local search for the TSP:New results [C].In:Proceedings of the 1997 IEEE International Conference on Evolutionary Computation, 1997:159-164.

[4] Merz P, Freisleben B.Memetic algorithms for the traveling salesman problem [J].Complex System, 2001, 13 (4) :297-345.

[5] Potts J C, Terri D G, Surya B Y.The development and evolution of an improved genetic algorithm based on migration an artificial selection [J].IEEE Transactions on Systems, Man and Cybernetics, 1994, 24 (1) :73-86.

[6] David A, Robert B, VASEK C.Concorde network optimization package [CP/OL].http://www.tsp.gatech.edu/concorde/downloads/ codes/src/co031219.tgz.1997-08-08/2006-11-07.

[7]Jones T, Forrest S.Fitness Distance Correlation as a Measure of Prob-lem Difficulty for Genetic Algorithms[C].//ESHFILMANL.Proceed-ing of the 6th International Conference on Genetic Algorithms.San Ma-teo, CA:Morgan Kauffrnan, 1995:184-192.

[8] Lin S, Kernighan B W.An effective heuristic algorithm for the traveling-salesman problem [J].Operations Research, 1973, 31:498-516.

[9] Boese K.Cost versus distance in the traveling salesman problem[R].Technical Report, TR-950018, CS Department, UCLA, 1995.

[10] Lin S, Kernighan B W.An effective heuristic algorithm for the traveling-salesman problem [J].Operations Research, 1973, 31:498-516.

[11] University of Heidelberg.Traveling Salesman Problems Library [CP/OL].http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/.1997-08-08/2006-11-07.

上一篇:工业锅炉节能技术下一篇:减压植骨术