发布信息

一种应用于FPGA的快速线性判别分类器的实现方法

作者:admin      2022-09-20 16:45:28     547



计算;推算;计数设备的制造及其应用技术一种应用于fpga的快速线性判别分类器的实现方法技术领域1.本发明属于数字信号处理、数字集成电路设计技术领域,涉及一种应用在fpga上的分类器的设计方法,具体涉及一种应用于fpga的快速线性判别分类器的实现方法。背景技术:2.人们对于外界事物的认识,很大一部分是通过对外界事物的分类完成的。我们对客观世界的某一类事物的识别往往不是通过对具体对象的记忆,而是依靠对以往很多个同一类别的具体事物进行观察,归纳和总结得出的性质和特点来进行的。这一个学习过程也促使了模式识别这一学科的诞生,而模式识别的目的就是为了分类。模式识别的分类问题是根据研究对象的特征建立分类模型,利用模型中确定出来的参数对需要识别的对象进行学习分类。分类器的设计是一个机器学习的过程,也就是通过训练样本并进行训练优化的过程,目的是为了使其在识别不同的样本时误差最小或分类的错误率最低。分类器的算法多种多样,而且随着应用场景不同其准确率也随之而不同。3.线性判别分析(lda)是模式识别中的一个经典算法,线性判别分析是一种多元分类器,用于查找数据中的某些统计属性,通过计算每个类别的均值以及样本的协方差矩阵,训练样本集中每个类别的权重以及与样本的近似度,来将样本进行归类。线性判别分析在模式识别领域中有着广泛的应用,比如图像识别,雷达信号识别以及其他识别场景。然而这些应用场景中,很多需要设计在硬件平台比如fpga上来最小化信息处理带来的延迟。4.lda分类器相比较其他分类算法有很多优势,但其在fpga上的实现伴随着一些挑战。在测试样本的数据量小于训练样本时,lda相比较其他分类算法比如pca有着更好的分类精确度。在硬件上实现,lda也有着固有的优势,相比较pca,其测试部分可以减少存储的使用。可是在整体实现上,lda却比pca有着更高的算法复杂度,原因在于其训练部分需要矩阵求逆操作以及大量的矩阵乘法运算。矩阵求逆操作在fpga上的实现是一个计算密集并且伴随着高延迟的过程,这也使得lda在fpga上实现成为了一项挑战。技术实现要素:5.本发明的目的是设计一种低运算复杂度的快速lda算法,通过投影的方式将原始数据从高维度投影到较低的维度来获取lda分类算法所需的计算参数,从而降低训练部分的计算复杂度,使其在fpga上更容易实现并且降低其运算延迟。6.为了解决上述技术问题,本发明提供了如下的技术方案:7.应用于fpga的快速线性判别分类器的实现方法的设计方法,包括以下步骤:8.1)根据输入训练样本求出输入的训练数据的各类的均值向量μk,总均值向量μ;9.2)根据均值向量μ和输入训练数据求出协方差矩阵c;10.3)对协方差矩阵c进行特征值分解,使用乘幂法得到最大的特征值δ和对应的特征向量ω,得到投影矩阵p;11.4)根据得到的特征向量组成投影矩阵p,对输入的训练和测试数据集进行投影;12.5)使用投影得到的训练数据集来计算分类算法的相关参数,然后使用投影得到的测试数据集进行分类运算得到分类结果。13.本发明的进一步的改进在于,步骤1)的具体过程在于:14.使用输入的m个带有p个特征的样本组成训练数据集xm×p,根据下列公式求出均值向量μ和μk;[0015][0016][0017]其中μ为整个训练样本的均值,μk为属于第k类样本的均值;[0018]本发明的进一步的改进在于,步骤2)的协方差矩阵如下:[0019][0020]本发明的进一步的改进在于,步骤3)的具体过程如下:[0021]3.1)使用乘幂法,求出协方差矩阵的最大特征值δ和特征向量ω,具体过程如下;[0022]a)取数据维度为p的初始化向量z0,z0=[1,1,…,1];[0023]b)通过向量zk,计算向量yk;[0024]yk=c*zktꢀꢀꢀ(4)[0025]c)取向量的最大值m(k);[0026]m(k)=max(yk) (5)[0027]d)计算归一化的向量zk,然后返回步骤b);[0028]zk=yk/m(k)ꢀꢀ(6)[0029]e)达到迭代次数上限t之后输出向量zk和m(k),即为最大特征向量ω和特征值δ;[0030]3.2)对特征向量进行归一化,得到投影矩阵pp×1,投影矩阵计算如下;[0031]p=ω/|ω|ꢀꢀꢀꢀ(7)[0032]其中|ω|为向量ω的模;[0033]本发明的进一步的改进在于,步骤4)的具体过程在于:[0034]使用输入的测试样本tc×p,求出测试样本对应的经过投影的矩阵t′c×p;[0035]t′c×p=tc×p*pꢀꢀ(8)[0036]μ′k=μk*pꢀꢀ(9)[0037]其中μ′k为投影之后的均值向量,t′c×p为投影过后的测试样本;[0038]本发明的进一步的改进在于,步骤5)的具体过程在于:[0039]a)根据计算属于每个类别的概率;[0040][0041]其中πk表示第k类的类别的比率,fk(x)为属于第k类的概率;[0042]b)比较fk(x)大小得到最大值m所对应的类别c。[0043]与现有技术相比,本发明有以下有益的技术效果:[0044]本发明使用乘幂法计算协方差矩阵的最大特征值和对应的特征向量来获取投影矩阵,从而避免了直接求协方差矩阵逆矩阵这一步骤,然后在类别概率计算部分,将原来0(p3)时间复杂度的运算降为0(2p2)的时间复杂度,虽然额外带来了矩阵投影的运算,但是相比较原始算法,提出的算法在整体上也能降低运算复杂度,并且随着数据维度p的增加,其带来的提升会更加明显。本发明将分类器与前人的设计(m.r.wasef and n.rafla,“hls implementation of linear discriminant analysis classifier,”in 2020ieee international symposium on circuits and systems(iscas),2020,pp.1-4.)进行了对比,在使用相同的数据集进行测试得出处理延迟,片上资源消耗等指标的比较。实验结果表明,提出的算法在相同的数据集运算下能够减少54.6%的处理延迟并且消耗的片上资源也有所减少,同时其准确率也能得到保证。附图说明[0045]图1为lda算法实现的框图;[0046]图2为本发明在fpga上实现的系统架构图。具体实施方式[0047]为使本发明的目的、技术方案和优点更加清楚,下面结合附图和实施例对本发明进行进一步的详细描述,但并不以此作为对本技术保护范围的限定。[0048]实施例1[0049]参见图1,本发明设计的lda算法ip包括以下步骤:[0050]1)根据输入训练样本求出输入的训练数据的各类的均值向量μk,总均值向量μ,均值向量的维度为4;[0051]计算均值向量,具体步骤包括:[0052]使用输入的m个带有p个特征的样本组成训练数据集xm×p,根据本发明使用的数据集,训练数据集的样本个数m为45,分成3类,每个样本特征维度p为4。根据下列公式求出均值向量μ和μk;[0053][0054][0055]其中μ为整个训练样本的均值,μk为属于第k类样本的均值;[0056]2)根据均值向量μ和输入训练数据求出协方差矩阵c,其中c为4×4的矩阵;[0057][0058]3)对协方差矩阵c进行特征值分解,使用乘幂法得到最大的特征值δ和对应的特征向量ω,得到投影矩阵p;[0059]计算投影矩阵p,具体步骤包括:[0060]3.1)使用乘幂法,求出协方差矩阵的最大特征值δ和特征向量ω,具体过程如下;[0061]a)取数据维度p=4的初始化向量z0,z0=[1,1,…,1];[0062]b)通过向量zk,计算向量yk;[0063]yk=c*zktꢀꢀꢀ(4)[0064]c)取向量的最大值m(k);[0065]m(k)=max(yk)ꢀꢀ(5)[0066]d)计算归一化的向量zk,然后返回步骤b);[0067]zk=yk/m(k)ꢀꢀꢀ(6)[0068]e)达到迭代次数t之后输出向量zk和m(k),即为最大特征向量ω和特征值δ,在本发明中,迭代次数t=4;[0069]3.2)对特征向量进行归一化,得到投影矩阵pp×1,投影矩阵计算如下;[0070]p=ω/|ω|ꢀꢀ(7)[0071]其中|ω|为向量ω的模,在本发明中,投影矩阵p为4×1的矩阵;[0072]4)根据得到的特征向量组成投影矩阵p,对输入的训练和测试数据集进行投影;[0073]计算投影的具体过程在于:[0074]使用输入的测试样本tc×p,求出测试样本对应的经过投影的矩阵t′c×p,在本发明中测试样本个数c为15个,为随机从训练数据集中挑选出来的,分成3类,数据特征维度p为4;[0075]t′c×p=tc×p*pꢀꢀ(8)[0076]μ′k=μk*pꢀꢀꢀ(9)[0077]其中μ′k为投影之后的均值向量,t′c×p为投影过后的测试样本,在本发明中μ′k为1×1的矩阵,t′c×p为15×1的矩阵;[0078]5)使用投影得到的训练数据集来计算分类算法的相关参数,然后使用投影得到的测试数据集进行分类运算得到分类结果。[0079]5.1)根据计算属于每个类别的概率;[0080][0081]其中πk表示第k个类别的比率,fk(x)为属于第k类的概率,在本发明中有三个类别,比率分别为10/45,20/45和15/45,每个测试样本需要计算f(x)三次,得到属于三个类别的三个概率值;[0082]5.2)比较分别对应于三个类别的fk(x)大小得到最大值m所对应的类别c,c的取值为1,2和3。[0083]为了验证本发明的准确性和通用性,设计了如图2所示的系统架构。将实现的lda算法打包成ip,使用rtl和vivado自带的ip实现通信部分的结构。测试数据和训练数据首先存储在ddr中,通过一个存储控制器完成数据与外部的读写交互,然后使用axi-interconnect完成ddr与lda_ip之间的时钟切换。训练数据首先从ddr中读出,缓存进入片上的bram中,并且测试数据读入片上fifo之中。然后lda算法ip访问bram获取训练数据并完成步骤1),2),3)和4)的计算,然后通过控制fifo的读使能信号,获取fifo中的测试数据,完成步骤4)和5)的计算。最后输出测试结果,并通过存储控制器写回ddr中。[0084]分类器的分类结果表明,分类准确率为0.933,与优化之前的lda算法准确率保持一致。并且如表1所示,在与原始算法相同的时钟频率下,本发明的处理延迟相比较原始算法降低了54.6%,并且综合整体片上资源的消耗,本发明的片上资源消耗减少了超过10%。[0085]综合以上实验结果,可以证明本发明在降低算法复杂度,提高分类效率方面有显著的作用,并且本发明仍然保持着较高的分类准确率。[0086]以上实施例应理解为仅用于说明本发明而不用于限定本发明的保护范围。在阅读了本发明所述内容之后,技术人员可以对本发明进行各种修改,这些等效变化和修饰同样包含在本发明权利要求所限定的范围内。[0087]表1本发明与原始算法在处理延迟以及片上资源消耗的对比[0088] latencybramdspfflut原始算法163221669770512033本发明7415258921110783









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部