CN106250933A - 基于fpga的数据聚类的方法、系统及fpga处理器 - Google Patents
基于fpga的数据聚类的方法、系统及fpga处理器 Download PDFInfo
- Publication number
- CN106250933A CN106250933A CN201610659702.XA CN201610659702A CN106250933A CN 106250933 A CN106250933 A CN 106250933A CN 201610659702 A CN201610659702 A CN 201610659702A CN 106250933 A CN106250933 A CN 106250933A
- Authority
- CN
- China
- Prior art keywords
- particle
- cluster algorithm
- fpga
- data clusters
- layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/231—Hierarchical techniques, i.e. dividing or merging pattern sets so as to obtain a dendrogram
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了基于FPGA的数据聚类的方法、系统及FPGA处理器,方法包括:设置数据聚类的目标函数及约束条件;初始化粒子群算法的预设执行参数,粒子群算法中包含多层基本膜及一层表层膜;将目标函数即粒子群算法的适应度函数计算生成粒子群算法中各粒子的初始值;根据初始值将各粒子分配至各层基本膜中,利用适应度函数、对每层基本膜上的粒子执行粒子群算法得到每层基本膜上的局部最优粒子;将各局部最优粒子传送至表层膜中在表层膜中确定全局最优粒子;当满足预设粒子群算法的终止执行条件将全局最优粒子作为聚类中心;各层基本膜中的运算过程是独立的,在FPGA处理器上并行处理可以取得较高的运行效率。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种基于FPGA的数据聚类的方法、系统及FPGA处理器。
背景技术
数据聚类是对于静态数据分析的一门技术,是根据“物以类聚”的道理,对样品或指标进行分类的一种多元统计分析方法。关于数据聚类,一般的过程是基于通过某种合适的聚类方法,探索性的分析选择一个合适的度量指标把数据划分为合适的类别,使得同类别的对象数据更加“紧凑”,相似,不同类别的数据对象之间差别更大。现有技术在数据聚类的过程中涉及到较多的重复计算,使得数据聚类的速度较慢,因此,如何提高数据聚类的速度,是本领域技术人员需要解决的技术问题。
发明内容
本发明的目的是提供一种基于FPGA的数据聚类的方法、系统及FPGA处理器,各层基本膜中的粒子群算法的运算过程是独立的,因此可以在FPGA处理器上并行处理可以取得较高的运行效率。
为解决上述技术问题,本发明提供一种基于FPGA的数据聚类的方法,包括:
设置数据聚类的目标函数及约束条件;其中,所述目标函数中包含数据聚类的聚类中心;
初始化粒子群算法的预设执行参数;其中,所述粒子群算法中包含多层基本膜及一层表层膜;
将所述目标函数作为所述粒子群算法的适应度函数,根据所述约束条件计算生成所述粒子群算法中各粒子的初始值;
根据所述初始值将各所述粒子分配至各层所述基本膜中,并利用所述适应度函数、对每层所述基本膜上的粒子并行执行所述粒子群算法,得到每层所述基本膜上的局部最优粒子;
将各所述局部最优粒子传送至所述表层膜中,并在所述表层膜中确定全局最优粒子;
判断是否满足所述预设粒子群算法的终止执行条件;若是,将所述全局最优粒子作为聚类中心。
其中,所述目标函数为
其中,d(Xj,zi)为数据点与第i个簇中心zi的距离,为粒子到簇中心的最小距离和,为每一类的距离和相加,k为簇的个数,C为簇,Xj为第j个数据。
其中,所述粒子群算法中的粒子速度更新函数为粒子位置更新函数为所述粒子为数据聚类的聚类中心;
其中,ω为惯性权重,c1、c2为常数,r1、r2为[0,1]中的两个随机数,为第i个细胞中的第j个对象的位置,为其对应的速度;为第i个细胞中的最好粒子,Gbest为整个系统的最好粒子。
其中,根据所述约束条件计算生成所述粒子群算法中各粒子的初始值,包括:
根据所述数据聚类的数据集属性,计算生成所述粒子群算法中每个粒子的初始值。
本发明还提供一种基于FPGA的数据聚类的系统,包括:
目标函数建立模块,用于设置数据聚类的目标函数及约束条件;其中,所述目标函数中包含数据聚类的聚类中心;
初始化模块,用于初始化粒子群算法的预设执行参数;其中,所述粒子群算法中包含多层基本膜及一层表层膜;
粒子初始值计算模块,用于将所述目标函数作为所述粒子群算法的适应度函数,根据所述约束条件计算生成所述粒子群算法中各粒子的初始值;
基本膜局部最优粒子模块,用于根据所述初始值将各所述粒子分配至各层所述基本膜中,并利用所述适应度函数、对每层所述基本膜上的粒子并行执行所述粒子群算法,得到每层所述基本膜上的局部最优粒子;
全局最优粒子模块,用于将各所述局部最优粒子传送至所述表层膜中,并在所述表层膜中确定全局最优粒子;
结果输出模块,用于判断是否满足所述预设粒子群算法的终止执行条件;若是,将所述全局最优粒子作为聚类中心。
其中,所述目标函数为
其中,d(Xj,zi)为数据点与第i个簇中心zi的距离,为粒子到簇中心的最小距离和,为每一类的距离和相加,k为簇的个数,C为簇,Xj为第j个数据。
其中,所述粒子群算法中的粒子速度更新函数为粒子位置更新函数为所述粒子为数据聚类的聚类中心;
其中,ω为惯性权重,c1、c2为常数,r1、r2为[0,1]中的两个随机数,为第i个细胞中的第j个对象的位置,为其对应的速度;为第i个细胞中的最好粒子,Gbest为整个系统的最好粒子。
其中,所述粒子初始值计算模块具体为根据所述数据聚类的数据集属性,计算生成所述粒子群算法中每个粒子的初始值的模块。
本发明还提供一种FPGA处理器,包括:根据上述任一项所述的基于FPGA的数据聚类的系统。
本发明所提供的基于FPGA的数据聚类的方法,将粒子群算法作为其对象的进化规则,因为粒子群算法具有搜索速度快、计算效率高,算法逻辑简单,以及特别适合实值型数据的分析处理,更重要的是粒子群算法本身是一种并行的计算处理操作,算法在运行的过程中不同粒子之间不会产生竞争关系,且本发明中将该粒子群算法结合了膜计算算法后,其细胞对象之间在整个计算过程中会不停地进行对象的交流通信,可以有效地客服局部最优的缺点。
同时,由于膜计算方法也是一种具有层次结构的分布式、并行计算模型,各层基本膜中的运算过程是独立的,可以在FPGA处理器上实现并行处理,因此可以取得较高的运行效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的基于FPGA的数据聚类的方法的流程图;
图2为本发明实施例所提供的一种FPGA处理器的内部结构示意图;
图3为本发明实施例所提供的在FPGA中数据聚类的处理流程示意图;
图4为本发明实施例所提供的基于FPGA的数据聚类的系统的结构框图;
图5为本发明实施例所提供的一种FPGA处理器区域划分示意图。
具体实施方式
本发明的核心是提供一种基于FPGA的数据聚类的方法、系统及FPGA处理器,各层基本膜中的粒子群算法的运算过程是独立的,因此可以在FPGA处理器上并行处理可以取得较高的运行效率。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例所提供的基于FPGA的数据聚类的方法的流程图;该方法可以包括:
S100、设置数据聚类的目标函数及约束条件;其中,所述目标函数中包含数据聚类的聚类中心;
其中,所述数据聚类的目标函数中包含变量,所述变量包括数据聚类的聚类中心。
这里目标函数具体可以是
其中,假设在d维空间中,聚类问题将数据集D={X1,X2,…,Xn}划分为k个簇,C1,C2,…,Ck,其中z1,z2,…,zk分别为对应的簇中心,d(Xj,zi)为数据点与第i个簇中心zi的距离,为粒子到簇中心的最小距离和,为每一类的距离和相加,k为簇的个数,C为簇,Xj为第j个数据。
S110、初始化粒子群算法的预设执行参数;其中,所述粒子群算法中包含多层基本膜及一层表层膜;
其中,预设执行参数可以包括基本膜的个数、每层所述基本膜对应粒子群算法的粒子个数(由数据聚类的最好聚类效果决定)、粒子速度、粒子迭代次数,所述进化机制中的执行参数、所述粒子群算法中的局部最优粒子和全局最优粒子。这里包含多层基本膜及一层表层膜是将粒子群算法结合了膜计算算法后,其细胞对象之间在整个计算过程中会不停地进行对象的交流通信,可以有效地客服局部最优的缺点。
S120、将所述目标函数作为所述粒子群算法的适应度函数,根据所述约束条件计算生成所述粒子群算法中各粒子的初始值;
其中,这里需要结合聚类数据进行合理范围的对象初始化,避免影响实验结果的分析。例如可以根据数据聚类的数据集属性进行约束。
S130、根据所述初始值将各所述粒子分配至各层所述基本膜中,并利用所述适应度函数、对每层所述基本膜上的粒子并行执行所述粒子群算法,得到每层所述基本膜上的局部最优粒子;
其中,预设膜结构为[0[1]1,[2]2,[3]3,…,[m]m]0;其中,该膜结构包含有m层基本膜及表层膜0。预设粒子群算法中的粒子个数为n,将n个粒子分配至所述m层基本膜中。
粒子群算法中的粒子速度更新函数为粒子位置更新函数为所述粒子为数据聚类的聚类中心;
其中,ω为惯性权重,c1、c2为常数,r1、r2为[0,1]中的两个随机数,为第i个细胞中的第j个对象的位置,为其对应的速度;为第i个细胞中的最好粒子,Gbest为整个系统的最好粒子。
上述具体过程可以是:将各个所述具有初始值的粒子分配至各层所述基本膜中,并依据所述适应度函数、所述迭代次数、对每层所述基本膜上的粒子执行所述粒子群算法,以获得每层所述基本膜上的局部最优粒子;其中,每层所述基本膜中包含至少一个所述粒子,且每个所述局部最优粒子均具有最优值。这一过程是并行实现的。
需要说明的是,在S120和S130中,数据聚类的目标函数中的变量需要在一定的预设范围内,所述预设范围作为求解目标函数最优解时的约束条件。同时,在生成所述粒子群算法中每个粒子的初始值时,需要满足所述约束条件,即需要在预设范围内,生成各个粒子的初始值。数据聚类目标函数中的变量为数据集的聚类中心,则约束条件可以包括:数据集中的最大最小值。例如,所选实验数据集为AD_5_2时,每次更新得到的目标最优值下限是4,上限是16。
S140、将各所述局部最优粒子传送至所述表层膜中,并在所述表层膜中确定全局最优粒子;即这里将粒子群算法结合膜计算算法,可以克服粒子群算法易出现局部最优的问题。
S150、判断是否满足所述预设粒子群算法的终止执行条件;若是,则执行S160、将所述全局最优粒子作为聚类中心。
上述具体过程可以是:判断是否满足所述预设粒子群算法的终止执行条件(迭代次数);将所述全局最优粒子的最优值确定为所述数据聚类目标函数变量的最优值,从而获得最好的聚类中心,实现最好的数据聚类效果。
其中,该实施例中的算法是依赖于FPGA处理器简称为FPGA(Field-ProgrammableGate Array),即现场可编程门阵列实现的,参见图2,其示出了FPGA内部的特殊的结构,从此图可以看出FPGA内部是由多个可编程逻辑块(CLB)组成,可编程逻辑块之间有丰富的布线资源,通过Verilog编程语言的设计可以完成不同的布线方式连接成不同的电路从而实现不同的功能。而不同的功能在FPGA内部体现为不同的阵列,各个阵列之间是可以并行进行的。因为电路本身就是并行的过程。在本实施例中就可以利用FPGA内部的可编程逻辑块的连接完成上述实施例的方法,包括数据装载(例如基础实验数据,预设参数,约束条件,目标函数如步骤S100等),初始化(例如步骤S110),数据处理(例如对粒子对象进行粒子群算法及膜计算算法,如步骤S120至步骤S150)及最后的输出(即得到聚类数据的聚类中心,如步骤S160),整个数据处理流程都是在FPGA内部完成,没有用到任何外围设备。
上述实施例在FPGA中对应的硬件的处理流程可以如图3所示,即在FPGA中完成数据存储,数据初始化,且并行进行局部最优粒子的计算及全局最优粒子计算,以便提高计算效率。且进一步的,对每个局部最优粒子完成的过程中牵扯到每个对象的速度更新及位置更新可以将每个细胞内的每一个对象也进一步并行处理运行例如每个细胞内并行的计算每个对象粒子的速度更新值及位置更新值等,从而进一步加快并行处理速度。
例如具体并行计算设置可以如下:对每个所述基本膜中的粒子执行所述粒子群算法,所使用的膜系统有q个细胞,并且每个细胞有m个对象。在膜计算的并行性特征下,这q个细胞作为计算单元将并行地执行。为了充分发挥FPGA的并行计算优势,考虑膜计算以最大并行方式工作,即每个细胞中的对象将并行地执行进化、评估和转运操作。其中,进化包括对象通过所述粒子群算法中的粒子更新公式和速度更新公式实现,评估包括对象通过所述粒子群算法中的适应度函数实现,转运包括把每层所述基本膜中的局部最优粒子传递到表层膜中,通过所述数据聚类目标函数选出全局最优粒子其对应最优聚类中心的坐标。
基于上述方法,进行仿真实验过程如下:
设置数据聚类的实验数据集为AD_5_2(为方便FPGA对数据进行处理,本次设计将所有数据点大小扩大100倍,并不影响对实验结果的分析)。设置粒子群算法中的种群规模即粒子个数为2,粒子速度为(100,100)。
当设置的数据聚类目标函数及粒子群算法进化机制获得计算结果,如下表1所示。
表1为仿真计算结果
迭代次数 | f-1-para-old | f-2-para-old | f-1-para-new | f-2-para-new |
1 | 70971 | 119406 | 70971 | 119406 |
2 | 64171 | 83403 | 64171 | 83403 |
10 | 63501 | 74514 | 59754 | 54748 |
50 | 95381 | 248791 | 49283 | 54748 |
由表1可知,随着迭代次数的增加,细胞内两个对象中的粒子的适应度逐渐减小,呈收敛趋势,说明各个粒子正在逐步向备选最优靠近,能够达到数据聚类的效果。只要一直运行下去观察运行结果,便可得到目标最优,输出最终的目标最优,实现整个系统数据的最好划分。可见,本实施例所提供的方法可获得较好的收敛性且由于FPGA具有并行处理特点,可以有效地提高计算效率。
基于上述实施例,该方案通过设置数据聚类的目标函数,并利用粒子群算法获得该函数的最优解,实现最好的数据聚类效果。具体地,选择实验数据集获得多个粒子并在FPGA处理器中完成对数据的存储及所述粒子的初始化,对各层基本膜中的粒子执行粒子群算法获得各层基本膜上的最优粒子,并将所述各个最优粒子输出至表层膜以确定群体最优粒子,如此循环,根据预设终止条件判断是否完成整个实验的终止执行条件,直至获得最终的群体最优粒子,从而将该群体最优粒子的最优值确定为所述目标函数中变量的最优值,从而获得所述数据聚类目标函数的最优解,且取得较高的运行效率。
下面对本发明实施例提供的基于FPGA的数据聚类的系统及FPGA处理器进行介绍,下文描述的基于FPGA的数据聚类的系统及FPGA处理器与上文描述的基于FPGA的数据聚类的方法可相互对应参照。
请参考图4,图4为本发明实施例所提供的基于FPGA的数据聚类的系统的结构框图;该系统可以包括:
目标函数建立模块100,用于设置数据聚类的目标函数及约束条件;其中,所述目标函数中包含数据聚类的聚类中心;
初始化模块200,用于初始化粒子群算法的预设执行参数;其中,所述粒子群算法中包含多层基本膜及一层表层膜;
粒子初始值计算模块300,用于将所述目标函数作为所述粒子群算法的适应度函数,根据所述约束条件计算生成所述粒子群算法中各粒子的初始值;
基本膜局部最优粒子模块400,用于根据所述初始值将各所述粒子分配至各层所述基本膜中,并利用所述适应度函数、对每层所述基本膜上的粒子并行执行所述粒子群算法,得到每层所述基本膜上的局部最优粒子;
全局最优粒子模块500,用于将各所述局部最优粒子传送至所述表层膜中,并在所述表层膜中确定全局最优粒子;
结果输出模块600,用于判断是否满足所述预设粒子群算法的终止执行条件;若是,将所述全局最优粒子作为聚类中心。
可选的,所述目标函数为
其中,d(Xj,zi)为数据点与第i个簇中心zi的距离,为粒子到簇中心的最小距离和,为每一类的距离和相加,k为簇的个数,C为簇,Xj为第j个数据。
可选的,所述粒子群算法中的粒子速度更新函数为粒子位置更新函数为所述粒子为数据聚类的聚类中心;
其中,ω为惯性权重,c1、c2为常数,r1、r2为[0,1]中的两个随机数,为第i个细胞中的第j个对象的位置,为其对应的速度;为第i个细胞中的最好粒子,Gbest为整个系统的最好粒子。
可选的,所述粒子初始值计算模块300具体为根据所述数据聚类的数据集属性,计算生成所述粒子群算法中每个粒子的初始值的模块。
其中,这里系统中的模块是指实现一定功能的功能模块,它与具体编程中的程序模块或者程序区域可以不是一一对应的,可以存在调用,数据交互过程,例如初始化模块200主要是进行预设执行参数的初始化,对应的编程中或者硬件实现上来说完成这一个初始化的功能需要计算初始值的区域,且要调用数据存放区域等协调实现该功能。
基于上述实施例,本发明提供一种FPGA处理器,包括:根据上述所述的基于FPGA的数据聚类的系统。
其中,这里的FPGA中具体划分不同区域实现上述系统中的各个功能模块。具体设置可以如下所示:
顶层区域:对整个程序的总控制,这里可以采用自顶向下的方式进行,以实现各个区域的调用和数据初始化。
第一区域:是存放整个实验数据集的地方,例如当选择的实验数据集是250个横,纵坐标的数值大小均在4到16之间的二维数组,进一步为了结合FPGA的数据处理的特点,可以将整个数据集全部扩大预定倍数(例如100倍),方便程序的编写和数据的处理,但并不会影响实验的结果。
第二区域:由于该方案是公认的数据集,所以简化了聚类类别数的寻优。例如若已知此实验数据集可聚为k=5类,第二区域1实现的就是最小系统中一个细胞内的对象1中的5个类中心坐标的初始化,第二区域2实现的就是最小系统中一个细胞内的对象2中的5个类中心的初始化,一直到第二区域n实现的就是最小系统中一个细胞内的对象n中的5个类中心坐标的初始化。每个区域可以同时进行初始化,加快初始化速度。
其中,初始化具体可以包括:预设粒子群算法中包含多层基本膜及一层表层膜,且所述执行参数包括基本膜的层数、每层所述基本膜对应粒子群算法的粒子个数(由所选实验数据集的本身属性确定)、粒子初始速度(由所选实验数据集变化范围确定)。
其中,所述预设粒子群算法的具体执行过程包括下述第三区域至第六区域。需要说明的是,所述粒子群算法是与膜计算算法结合而来。所述膜计算算法中包含有多层基本膜及一层表层膜,则需要初始化所述基本膜的层数。同时,需要在每层所述基本膜中执行粒子群算法,则需要初始化所述粒子群算法中的粒子个数、粒子速度。
第三区域:第三区域1根据粒子群算法的优化原理和数据聚类的聚类方法,进行对象1中的粒子(实验数据集中的每个数据点)的适应度计算及优劣判断。该模块中运用到了FPGA中的乘法器,进行欧氏距离中的Δx2和Δy2的运算。欧氏距离中的开方运算采用的是坐标旋转数字计算方法进行程序的编写。需要说明的是,每个数据点都要计算一次,同时进行一次判断。第三区域2是对对象2中的数据进行处理,一直到第三区域n是对对象n中的数据进行处理。因为对象1直到对象n的处理流程是同步并行化实现的,所以基本原理一致,提高计算效率。
其中,粒子群算法中需要依据适应度函数计算各个粒子的适应度值,则需要确定所述粒子群算法的适应度函数。可选的,所述适应度函数为所述数据聚类的目标函数。例如,所述数据聚类的目标函数为f(z),可以将粒子群算法的适应度函数设置为f(z)。
同时,粒子群算法中的各个粒子需要具有初始值,初始值可以认为是数据聚类目标函数的初始解,需要对各个初始解进行粒子群算法进化规则的运算,生成最优解。需要说明的是,各个粒子具有预设取值范围,初始值的生成方式可以是在该预设取值范围内随机生成的。
第四区域:根据编写的程序执行粒子群算法选出第一次的局部最优和全局最优,而数据聚类的目的也是最终选出最好的聚类中心,可以准确地表征每种数据类型的不同特征,实现数据集的最好分类,需要说明的是,执行粒子群算法获得的全局最优即是数据聚类的最佳聚类中心。
其中,分配各个粒子,需要保证每层基本膜中都至少包含有一个粒子。对各层基本膜上的粒子执行粒子群算法,则在每层基本膜上可获得最优粒子,该最优粒子为局部最优粒子。然后,将各层基本膜上的局部最优粒子传送至所述表层膜中,具体地,比较各个局部最优粒子对应的适应度值,当某个局部最优粒子对应的适应度值最小时,说明该局部最优粒子使目标函数的取值最小,因此,将该局部最优粒子确定为全局最优粒子。
第五区域:第五区域1对对象1进行粒子群算法中的速度更新和位置更新计算,由于实验数据是二维的,所以可以采用的是分别对数据点的横坐标和纵坐标进行速度更新和位置更新,第五区域2是对对象2进行处理,一直到第五区域n是对对象n进行处理;比较适应度值后可以得到新的局部最优粒子和全局最优粒子。
所述粒子速度更新函数中涉及到随机数r1,r2的产生,那么在编程时,采用的是LFSR(线性反馈移位寄存器)的原理来产生随机数。因为每个对象中的类中心都是二维的,所以2个对象,每个对象有x坐标和y坐标,进行一次速度更新需要r1和r2两个随机数,所以具体程序实现包括了8个随机数产生模块。注意,r1和r2的产生是随着迭代的进行而变化的,即进行一次迭代运算,就使用一次速度更新公式,r1和r2也就跟随整个系统更新而实时变化。
第六区域:根据上述第三区域至第六区域,计算得到细胞内最终全局最优的确定,并最终输出得到最优类中心坐标
上述六个区域在FPGA中的布局如图5所示。需要说明的是,本次设计的整个过程没有用到任何外设,所有处理都是在一块FPGA板子上实现的,所述FPGA处理器芯片型号可以为xc6slx75-2fgg484。
其中,这六个区域在功能上实现的即为基于FPGA的数据聚类的系统中的六个功能模块的功能,具体实现过程各个区域存在数据交互,调用的过程。
则该FPGA处理器的工作过程可以是:
开始阶段,实现实验数据的装载和存储,生成所述粒子群算法的粒子;
对所述粒子群算法的粒子进行所述粒子群算法的执行参数的初始化,中,包括:粒子速度,粒子个数,局部最优粒子和全局最优粒子;
对每个所述基本膜中的粒子执行所述粒子群算法,所使用的膜系统有q个细胞,并且每个细胞有m个对象。在膜计算的并行性特征下,这q个细胞作为计算单元将并行地执行。为了充分发挥FPGA的并行计算优势,考虑膜计算以最大并行方式工作,即每个细胞中的对象将并行地执行进化、评估和转运操作。其中,进化包括对象通过所述粒子群算法中的粒子更新公式和速度更新公式实现,评估包括对象通过所述粒子群算法中的适应度函数实现,转运包括把每层所述基本膜中的局部最优粒子传递到表层膜中,通过所述数据聚类目标函数选出全局最优粒子;
通过实验预设终止条件判断是否完成整个实验,若满足预设终止条件则输出整个数据聚类的全局最优粒子,其中,所述全局最优粒子即可认为是整个数据聚类的最佳聚类中心。
需要说明的是,由于本设计所用FPGA芯片的特殊性,没有对数据处理过程中的数据进行存储,而是直接参与到下一步运算。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的基于FPGA的数据聚类的方法、系统及FPGA处理器进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (9)
1.一种基于FPGA的数据聚类的方法,其特征在于,包括:
设置数据聚类的目标函数及约束条件;其中,所述目标函数中包含数据聚类的聚类中心;
初始化粒子群算法的预设执行参数;其中,所述粒子群算法中包含多层基本膜及一层表层膜;
将所述目标函数作为所述粒子群算法的适应度函数,根据所述约束条件计算生成所述粒子群算法中各粒子的初始值;
根据所述初始值将各所述粒子分配至各层所述基本膜中,并利用所述适应度函数、对每层所述基本膜上的粒子并行执行所述粒子群算法,得到每层所述基本膜上的局部最优粒子;
将各所述局部最优粒子传送至所述表层膜中,并在所述表层膜中确定全局最优粒子;
判断是否满足所述预设粒子群算法的终止执行条件;若是,将所述全局最优粒子作为聚类中心。
2.根据权利要求1所述的基于FPGA的数据聚类的方法,其特征在于,所述目标函数为
其中,d(Xj,zi)为数据点与第i个簇中心zi的距离,为粒子到簇中心的最小距离和,为每一类的距离和相加,k为簇的个数,C为簇,Xj为第j个数据。
3.根据权利要求2所述的基于FPGA的数据聚类的方法,其特征在于,所述粒子群算法中的粒子速度更新函数为粒子位置更新函数为所述粒子为数据聚类的聚类中心;
其中,ω为惯性权重,c1、c2为常数,r1、r2为[0,1]中的两个随机数,为第i个细胞中的第j个对象的位置,为其对应的速度;为第i个细胞中的最好粒子,Gbest为整个系统的最好粒子。
4.根据权利要求3所述的基于FPGA的数据聚类的方法,其特征在于,根据所述约束条件计算生成所述粒子群算法中各粒子的初始值,包括:
根据所述数据聚类的数据集属性,计算生成所述粒子群算法中每个粒子的初始值。
5.一种基于FPGA的数据聚类的系统,其特征在于,包括:
目标函数建立模块,用于设置数据聚类的目标函数及约束条件;其中,所述目标函数中包含数据聚类的聚类中心;
初始化模块,用于初始化粒子群算法的预设执行参数;其中,所述粒子群算法中包含多层基本膜及一层表层膜;
粒子初始值计算模块,用于将所述目标函数作为所述粒子群算法的适应度函数,根据所述约束条件计算生成所述粒子群算法中各粒子的初始值;
基本膜局部最优粒子模块,用于根据所述初始值将各所述粒子分配至各层所述基本膜中,并利用所述适应度函数、对每层所述基本膜上的粒子并行执行所述粒子群算法,得到每层所述基本膜上的局部最优粒子;
全局最优粒子模块,用于将各所述局部最优粒子传送至所述表层膜中,并在所述表层膜中确定全局最优粒子;
结果输出模块,用于判断是否满足所述预设粒子群算法的终止执行条件;若是,将所述全局最优粒子作为聚类中心。
6.根据权利要求5所述的基于FPGA的数据聚类的系统,其特征在于,所述目标函数为
其中,d(Xj,zi)为数据点与第i个簇中心zi的距离,为粒子到簇中心的最小距离和,为每一类的距离和相加,k为簇的个数,C为簇,Xj为第j个数据。
7.根据权利要求6所述的基于FPGA的数据聚类的系统,其特征在于,所述粒子群算法中的粒子速度更新函数为粒子位置更新函数为所述粒子为数据聚类的聚类中心;
其中,ω为惯性权重,c1、c2为常数,r1、r2为[0,1]中的两个随机数,为第i个细胞中的第j个对象的位置,为其对应的速度;为第i个细胞中的最好粒子,Gbest为整个系统的最好粒子。
8.根据权利要求7所述的基于FPGA的数据聚类的系统,其特征在于,所述粒子初始值计算模块具体为根据所述数据聚类的数据集属性,计算生成所述粒子群算法中每个粒子的初始值的模块。
9.一种FPGA处理器,其特征在于,包括:根据权利要求5-8任一项所述的基于FPGA的数据聚类的系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610659702.XA CN106250933A (zh) | 2016-08-12 | 2016-08-12 | 基于fpga的数据聚类的方法、系统及fpga处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610659702.XA CN106250933A (zh) | 2016-08-12 | 2016-08-12 | 基于fpga的数据聚类的方法、系统及fpga处理器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106250933A true CN106250933A (zh) | 2016-12-21 |
Family
ID=58078085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610659702.XA Pending CN106250933A (zh) | 2016-08-12 | 2016-08-12 | 基于fpga的数据聚类的方法、系统及fpga处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106250933A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107703507A (zh) * | 2017-08-31 | 2018-02-16 | 西安空间无线电技术研究所 | 一种基于fpga的目标聚类实现方法及装置 |
CN109614367A (zh) * | 2018-11-22 | 2019-04-12 | 西南交通大学 | 一种改进的dnd算法及其基于fpga的实现方法 |
CN110456679A (zh) * | 2019-05-17 | 2019-11-15 | 西南交通大学 | 基于fpga的机器人数值膜控制系统及其构建方法 |
CN110659363A (zh) * | 2019-07-30 | 2020-01-07 | 浙江工业大学 | 基于膜计算的Web服务混合进化聚类方法 |
CN111062072A (zh) * | 2019-12-09 | 2020-04-24 | 桂林理工大学 | 一种基于粒子群优化算法的索膜结构找形设计方法 |
CN113326479A (zh) * | 2021-05-28 | 2021-08-31 | 哈尔滨理工大学 | 一种基于fpga的k均值算法的实现方法 |
CN114779467A (zh) * | 2022-04-27 | 2022-07-22 | 吉林大学 | 一种基于探测器特性的新型光谱仪膜系组合的选择方法 |
-
2016
- 2016-08-12 CN CN201610659702.XA patent/CN106250933A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107703507A (zh) * | 2017-08-31 | 2018-02-16 | 西安空间无线电技术研究所 | 一种基于fpga的目标聚类实现方法及装置 |
CN107703507B (zh) * | 2017-08-31 | 2020-04-10 | 西安空间无线电技术研究所 | 一种基于fpga的目标聚类实现方法及装置 |
CN109614367A (zh) * | 2018-11-22 | 2019-04-12 | 西南交通大学 | 一种改进的dnd算法及其基于fpga的实现方法 |
CN109614367B (zh) * | 2018-11-22 | 2021-07-23 | 西南交通大学 | 一种改进的dnd算法及其基于fpga的实现方法 |
CN110456679A (zh) * | 2019-05-17 | 2019-11-15 | 西南交通大学 | 基于fpga的机器人数值膜控制系统及其构建方法 |
CN110456679B (zh) * | 2019-05-17 | 2021-05-14 | 西南交通大学 | 基于fpga的机器人数值膜控制系统及其构建方法 |
CN110659363A (zh) * | 2019-07-30 | 2020-01-07 | 浙江工业大学 | 基于膜计算的Web服务混合进化聚类方法 |
CN110659363B (zh) * | 2019-07-30 | 2021-11-23 | 浙江工业大学 | 基于膜计算的Web服务混合进化聚类方法 |
CN111062072A (zh) * | 2019-12-09 | 2020-04-24 | 桂林理工大学 | 一种基于粒子群优化算法的索膜结构找形设计方法 |
CN113326479A (zh) * | 2021-05-28 | 2021-08-31 | 哈尔滨理工大学 | 一种基于fpga的k均值算法的实现方法 |
CN114779467A (zh) * | 2022-04-27 | 2022-07-22 | 吉林大学 | 一种基于探测器特性的新型光谱仪膜系组合的选择方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106250933A (zh) | 基于fpga的数据聚类的方法、系统及fpga处理器 | |
CN106529569B (zh) | 基于深度学习的三维模型三角面特征学习分类方法及装置 | |
CN106528989B (zh) | 一种分布式并行sph仿真方法 | |
CN107644279A (zh) | 评价模型的建模方法及装置 | |
CN105354593B (zh) | 一种基于nmf的三维模型分类方法 | |
CN105654552B (zh) | 一种面向任意分布大规模点云数据的快速Delaunay构网方法 | |
CN102254020A (zh) | 基于特征权重的全局k-均值聚类方法 | |
CN106502889A (zh) | 预测云软件性能的方法和装置 | |
CN106503365B (zh) | 一种用于sph算法的分区搜索方法 | |
CN102393826B (zh) | 一种基于多核并行处理的柔性场景连续碰撞检测方法 | |
CN112632683A (zh) | 基于虚幻引擎的数字孪生城市空间定位方法、装置及存储介质 | |
CN108764335A (zh) | 一种综合能源系统多能需求典型场景生成方法及装置 | |
CN108763827A (zh) | 一种输电塔有限元模型建立方法及装置 | |
CN107229234A (zh) | 面向航空电子数据的分布式挖掘系统及方法 | |
CN109991591A (zh) | 基于深度学习的定位方法、装置、计算机设备及存储介质 | |
CN102855661A (zh) | 基于空间相似性的大规模森林场景快速生成方法 | |
CN108664860A (zh) | 房间平面图的识别方法及装置 | |
CN107204040A (zh) | 多点地质统计学建模方法及装置、计算机存储介质 | |
CN117828377B (zh) | 一种基于公平加权因子的教育感知聚类方法及系统 | |
CN116244612A (zh) | 一种基于自学习参数度量的http流量聚类方法及装置 | |
CN106485030B (zh) | 一种用于sph算法的对称边界处理方法 | |
CN106447025B (zh) | 基于离散粒子群的测试性指标分配与测试选取联合方法 | |
CN103714384B (zh) | 基于移动模式序列与遗传禁忌的集成电路的布图方法 | |
CN102982567B (zh) | 一种基于统计分析的变形体碰撞检测剔除方法 | |
CN107301459A (zh) | 一种基于fpga异构运行遗传算法的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161221 |
|
RJ01 | Rejection of invention patent application after publication |