一种K近邻算法的加速装置及方法制造方法及图纸

技术编号:14476988 阅读:181 留言:0更新日期:2017-01-25 09:33
本发明专利技术提出一种K近邻算法的加速装置及方法,涉及信息检索、数据挖掘和计算机体系结构领域,该装置包括控制模块,用于控制所述加速装置中各模块;地址计算模块,用于获取训练样本的地址;欧氏距离计算模块,用于进行K近邻搜索时,计算距离;结果模块,用于储存所述距离,并将所述距离进行传送;排序模块,用于将所述距离进行K近邻排序。其中,所述结果模块将所述距离传送给所述排序模块,并向所述地址计算模块发送计算下一个地址的信号,所述地址计算模块接收所述信号并计算下一个训练样本的地址,所述控制模块将所述结果模块中的内容清空。本发明专利技术通过增减组件适应不同维度样本的KNN算法,对同样维度样本的计算通过调整并行度满足不同需求。

【技术实现步骤摘要】

本专利技术涉及信息检索、数据挖掘和计算机体系结构领域,特别涉及一种K近邻算法的加速装置及方法
技术介绍
KNN算法(K-NearestNeighbor,K近邻算法)是一种非参数分类算法,在未知分布的分类上具有高分类精度,在非正态分布分类上具有低错误率,因此被广泛应用于机器学习、随机规划、模式识别等领域,由于KNN分类时需要计算待分类的特征向量与已训练的具有类别标签的样本集中的每个样本的距离,导致当样本维度和样本数量较大时计算复杂度高,采用软件方式计算时速度慢、实时性差,影响了其在实际系统中的应用,鉴于此,许多研究关注如何提高KNN算法的计算速度,例如,通过快速KNN计算方法来降低计算复杂度、提升搜索速度,包括通过部分距离搜索提前中止比较,以及通过样本变换提前判断是否属于待分类样本的K-近邻等方法,这方面的具体工作有采用树状结构的KNN算法、基于小波变换的快速KNN算法、基于金字塔模型的KNN算法等;此外,还有通过减少训练样本集的数量从而减少每次分类比较的次数来提高计算速度的方法。除了上述针对算法本身的改进之外,许多工作采用专用硬件的方式进一步加速KNN算法的处理,采用硬件加速的优点是专用硬件结构往往在性能、功耗等方面比通用CPU更为优化,然而对于不同的应用,包括训练样本的数量、样本维度、K变量等参数通常需要根据实际需求进行调整,此外,计算时间也需要能满足不同应用的特定需求,但目前基于硬件加速的KNN算法研究方面的工作更多关注的是如何通过精简算法来提高速度,其通常实现的是固定维数下的特定KNN算法,限制了对不同应用的适应能力。
技术实现思路
针对上述问题,本专利技术设计并实现了一种K近邻算法的加速装置及方法。本专利技术提出一种K近邻算法的加速装置,包括:控制模块,用于控制所述加速装置中各模块;地址计算模块,用于获取训练样本的地址;欧氏距离计算模块,用于进行K近邻搜索时,计算距离;结果模块,用于储存所述距离,并将所述距离进行传送;排序模块,用于将所述距离进行K近邻排序。其中,所述结果模块将所述距离传送给所述排序模块,并向所述地址计算模块发送计算下一个地址的信号,所述地址计算模块接收所述信号并计算下一个训练样本的地址,所述控制模块将所述结果模块中的内容清空。所述控制模块包括寄存器组,并包括并行度、样本维度、最近邻K的值、系统重置信息。所述欧氏距离计算模块由多个维度计算模块构成,且所述欧氏距离计算模块根据并行度的值增加相应数量的所述维度计算模块。所述地址计算模块根据并行度、样本维度,获取训练样本的地址。所述排序模块在进行K近邻排序时,当序列大于K值时直接丢弃升序排在K+1位的值与其标签。本专利技术还提出一种利用所述K近邻算法的加速装置的K近邻算法加速方法,其特征在于,包括:所述结果模块将所述距离传送给所述排序模块,并向所述地址计算模块发送计算下一个地址的信号,所述地址计算模块接收所述信号并计算下一个训练样本的地址,所述控制模块将所述结果模块中的内容清空。设置寄存器组,所述寄存器组包括并行度、样本维度、最近邻K的值、系统重置信息。根据并行度的值增加相应数量的所述维度计算模块。根据并行度、样本维度,获取训练样本的地址。在进行K近邻排序时,当序列大于K值时直接丢弃升序排在K+1位的值与其标签。由以上方案可知,本专利技术的优点在于:本专利技术具备可重构能力的硬件结构,通过增减组件即可适应不同维度样本的KNN算法,对同样维度样本的计算则可以通过调整并行度满足对逻辑资源和处理时间的不同需求,目的是克服现有软件KNN计算速度慢、硬件实现的KNN灵活性不够的缺陷。附图说明图1为本专利技术的总体结构图;图2为CONTROL模块图;图3为SORT模块图。具体实施方式本专利技术的目的在于提出一种K近邻算法的加速装置及方法。本专利技术的总体思路是:设计提出一种可快速运算KNN算法的具备可重构能力的加速器结构,通过增加多个维度的计算模块,在KNN算法的距离计算过程中根据规模进行并行扩展,实现了KNN算法的加速。本专利技术的总体结构图如图1所示,并依次包含如下步骤:步骤1)信号控制模块实现步骤11)CONTROL模块(控制模块)实现CONTROL模块是整个系统的控制模块,如图2所示,它有一个寄存器组,包含并行度、样本维度、最近邻k的值、系统重置等系统控制信息,每一个待分类样本搜索结束时控制系统将重置。当已取当前训练样本距离值完成全部距离值累加并由RESULT模块传递给SORT模块时,SORT信号控制图1中SORT模块进行K近邻排序。步骤12)ADDRGEN模块(地址计算模块)实现ADDRGEN模块是待取已分类的训练样本地址的控制模块,根据并行度、样本维度等信息计算地址。当得到当前的距离值后由RESULT向ADDRGEN模块发出NEXT信号,开始下一个训练样本的地址计算。步骤2)距离计算硬件实现通过可重构的硬件结构来满足不同并行度的欧氏距离计算需求,欧氏距离计算模块由多个维度计算模块构成。例如,当并行度为i时,X1、Y1到Xi、Yi组模块会同时进行计算。需要扩展并行度时只需增加相应的维度计算模块,增加样本输出位宽,让并行计算的数据同时从存储训练样本的RAM输出;同时更新图1中CONTROL模块的并行度值,ADDRGEN模块会计算出地址增量值、适应位宽改变时RAM地址的定位。每个待分类样本进行K邻近搜索时,训练样本数据将不断地被输入欧氏距离计算模块与待分类样本的部分进行距离计算。当与每个已训练样本的距离计算结束时,距离累加器会被清空,为下一个训练样本距离的累加做好准备。CLEAR信号、SORT信号都在CONTROL模块中产生,NEXT地址计算在ADDRGEN模块中完成。通过该方法可以实现计算并行度的伸缩,以适应不同的应用需求。步骤3)RESULT模块(结果模块)实现距离计算结果输入到RESULT模块的寄存器,当结果有效判定为真时将其传递给SORT模块,并同时产生NEXT控制信号给ADDRGEN模块。ADDGEN模块计算下一个待取样本的RAM地址,并由CONTROL模块产生CLEAR信号将RESULT模块的内容清空。步骤4)SORT模块(排序模块)实现SORT模块接收RESULT模块产生的值及其对应的样本标签,收到CONTROL的SORT信号后对SORT模块中缓存的所有值进行排序,当序列大于K值时直接丢弃升序排在K+1位的值和其标签。当所有的训练样本计算完毕后,SORT模块输出最终的分类结果。本专利技术还提出一种利用所述K近邻算法的加速装置的K近邻算法加速方法,包括:所述结果模块将所述距离传送给所述排序模块,并向所述地址计算模块发送计算下一个地址的信号,所述地址计算模块接收所述信号并计算下一个训练样本的地址,所述控制模块将所述结果模块中的内容清空。设置寄存器组,所述寄存器组包括并行度、样本维度、最近邻K的值、系统重置信息。根据并行度的值增加相应数量的所述维度计算模块。根据并行度、样本维度,获取训练样本的地址。在进行K近邻排序时,当序列大于K值时直接丢弃升序排在K+1位的值与其标签。以下为本专利技术的实施例,本方法的总体流程框图如图3所示。现在采用一个样本维度为6,样本空间为20的KNN计算实例(k=8)作为本专利技术的一个实施例,假设本专利技术对6个维度并行计算。步骤1)信号控制模块本文档来自技高网...
一种K近邻算法的加速装置及方法

【技术保护点】
一种K近邻算法的加速装置,其特征在于,包括:控制模块,用于控制所述加速装置中各模块;地址计算模块,用于获取训练样本的地址;欧氏距离计算模块,用于进行K近邻搜索时,计算距离;结果模块,用于储存所述距离,并将所述距离进行传送;排序模块,用于将所述距离进行K近邻排序。其中,所述结果模块将所述距离传送给所述排序模块,并向所述地址计算模块发送计算下一个地址的信号,所述地址计算模块接收所述信号并计算下一个训练样本的地址,所述控制模块将所述结果模块中的内容清空。

【技术特征摘要】
1.一种K近邻算法的加速装置,其特征在于,包括:控制模块,用于控制所述加速装置中各模块;地址计算模块,用于获取训练样本的地址;欧氏距离计算模块,用于进行K近邻搜索时,计算距离;结果模块,用于储存所述距离,并将所述距离进行传送;排序模块,用于将所述距离进行K近邻排序。其中,所述结果模块将所述距离传送给所述排序模块,并向所述地址计算模块发送计算下一个地址的信号,所述地址计算模块接收所述信号并计算下一个训练样本的地址,所述控制模块将所述结果模块中的内容清空。2.如权利要求1所述的K近邻算法的加速装置,其特征在于,所述控制模块包括寄存器组,并包括并行度、样本维度、最近邻K的值、系统重置信息。3.如权利要求1所述的K近邻算法的加速装置,其特征在于,所述欧氏距离计算模块由多个维度计算模块构成,且所述欧氏距离计算模块根据并行度的值增加相应数量的所述维度计算模块。4.如权利要求1所述的K近邻算法的加速装置,其特征在于,所述地址计算模块根据并行度、样本维度,获取训练样本的地址。5...

【专利技术属性】
技术研发人员:朱亚涛张志敏范东睿王达张浩
申请(专利权)人:中国科学院计算技术研究所北京中科睿芯科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1