使用OpenCL加速的快速全局K-均值聚类方法技术

技术编号:18445629 阅读:51 留言:0更新日期:2018-07-14 10:40
本发明专利技术公开了一种使用OpenCL加速的快速全局K‑均值聚类方法,实现的步骤是:(1)读入数据集和聚类总数;(2)在OpenCL硬件设备端转置数据;(3)计算质心,作为第一个初始聚类中心点;(4)使用K‑means算法聚类;(5)在OpenCL硬件设备端选取新的初始聚类中心点;(6)判断当前聚类中心点总数是否小于或者等于聚类总数,若是,则执行第(4)步,若不是,则执行第(7)步;(7)输出聚类结果。本发明专利技术可在任何支持开放运算语言OpenCL的硬件设备上实现对海量的聚类数据实时处理。

Fast global K- means clustering method using OpenCL acceleration

The invention discloses a fast global K clustering mean clustering method using OpenCL acceleration. The steps are: (1) reading the data set and clustering total; (2) transferring data at the OpenCL hardware device end; (3) computing the centroid as the first initial cluster center; (4) using the K means algorithm clustering; (5) at the OpenCL hardware device end. Select the new initial cluster center point; (6) determine whether the current cluster center point is less than or equal to the total number of clusters, if, then execute (4) step, if not, the (7) step; (7) output clustering results. The invention can realize real-time processing massive clustering data on any hardware device supporting the open operation language OpenCL.

【技术实现步骤摘要】
使用OpenCL加速的快速全局K-均值聚类方法
本专利技术属于数据处理
,更进一步涉及数据挖掘
中的一种使用开放运算语言OpenCL(OpenComputingLanguage)硬件设备加速的快速全局K-均值(FastglobalK-means)聚类方法。本专利技术可以实现并行加速快速全局K-均值聚类方法,可在开放运算语言OpenCL硬件设备上实现对海量数据进行实时处理。
技术介绍
快速全局K-均值算法采用不依赖于任何初始参数值的确定性方法而不是随机搜索来得到初始聚类中心,解决了传统基于局部搜索的K-均值聚类方法聚类结果稳定性差的问题,并通过优化全局K均值增加新聚类中心的计算方法从而减小了运行时间。TCL集团股份有限公司在其申请的专利文献“一种并行化K-means改进方法及系统”(申请日:2016年6月22日,申请号:201610455944.7,公开号:CN106127244A)中公开了一种并行化K-means改进方法。该方法通过Spark大数据平台读取存放在分布式文件系统上的数据对象集,生成弹性数据集RDD;采用Map操作将所述弹性数据集RDD转化为向量数据集;通过Map操作对所述向量数据集进行Canopy计算,得到P个Canopy集合以及各个Canopy集合的中心点,将P个Canopy集合的中心点赋值给K个Cluster的中心点;通过Map操作对所述向量数据集进行K-means计算,输出聚类结果。该方法存在不足之处是,使用Spark平台实现的并行化K-means,代码无法在各种支持开放运算语言OpenCL的硬件设备上移植,可移植性不高,只适用于分布式系统,无法在GPU、FPGA、MIC等硬件设备上进行并行加速,大大限制了其应用范围。ZhuH等人在其发表的论文“ParallelfastGlobalK-MeansalgorithmforsyntheticapertureradarimagechangedetectionusingOpenCL”([C]GeoscienceandRemoteSensingSymposium.IEEE,2015:322-325)中提出一种使用开放运算语言OpenCL实现并行快速全局K-均值算法,并用于SAR图像变换的检测方法。该方法首先在主机端使用对数比值算法对两幅同一地区不同时相的SAR图像进行处理,生成差异图,然后选取差异图数据的质心作为第一个聚类中心,计算所有数据到质心的欧氏距离,再将差异图与欧氏距离拷贝到异构设备中,在异构设备上并行完成新的聚类中心的选取,并将新的聚类中心初始点拷贝回主机端,在主机端使用K-means算法将差异图数据聚为两类,最终根据每个像素点的类别生成SAR图像的变化检测结果。该方法将算法中最耗时的选择初始聚类中心点的步骤使用开放运算语言OpenCL在异构设备上进行并行加速。但是,该方法仍然存在不足之处是,该方法在异构设备端加速算法时需要存储大量的中间计算结果,当输入图像数据量太大时,超过了异构设备的存储容量,由此导致该方法无法实现更大图像数据的处理。
技术实现思路
本专利技术的目的在于针对上述现有技术的不足,提供了一种使用OpenCL加速的快速全局K-均值聚类方法,可在异构设备上实现对海量数据进行实时处理。实现本专利技术目的的思路是:使用开放运算语言OpenCL硬件设备上运行快速全局K-均值聚类算法中计算任务最密集的选取聚类中心步骤,算法中的其他步骤在主机端上运行,利用OpenCL的高可移植性,使得该方法可以在任何支持开放运算语言OpenCL的硬件设备上执行,并且通过增加每个线程的任务量,避免产生大量的中间计算结果,使得该方法可实现更大数据量的处理。本专利技术使用开放运算语言OpenCL硬件设备,采用快速全局K-均值聚类算法实现的,具体步骤包括如下:(1)读入数据集和聚类总数:(1a)读入以二维矩阵方式存储的数据集,矩阵的行表示数据的个数,列表示数据的属性;(1b)读入聚类总数;(2)对二维矩阵的数据集进行转置操作:(2a)将数据集中的二维矩阵拷贝至硬件设备全局存储器中;(2b)每个线程负责数据集二维矩阵中的一个数据点,计算每个线程的数据点在转置之后矩阵中的索引,将转置之后的二维矩阵存储在硬件设备全局存储器中;(3)选取第一个初始聚类中心点向量:计算二维矩阵数据集每列数据的质心,将所有列数据的质心组成第一个初始聚类中心点向量,加入到聚类中心向量集合中;(4)对二维矩阵数据集使用K-means算法进行聚类操作:(4a)使用欧式距离公式,计算二维矩阵数据集每行数据与聚类中心向量集合中每个聚类中心向量之间的欧氏距离值,得到欧式距离二维矩阵,矩阵的行表示数据个数,列表示聚类中心向量集合中聚类中心向量的个数;(4b)找出各个数据与所有聚类中心向量欧氏距离最小值对应的聚类中心向量,将所有聚类中心向量相同的数据划分为同一类;(4c)采用聚类中心更新公式,更新聚类中心向量集合中的聚类中心向量;(4d)判断更新后的聚类中心向量是否等于更新前的聚类中心向量,若是,执行步骤(5),否则,执行步骤(4a);(5)选取新的初始聚类中心点:(5a)将二维矩阵数据集每行数据与所有聚类中心向量欧氏距离的最小值拷贝至开放运算语言OpenCL硬件设备全局存储器中;(5b)按照增量公式,计算每个线程的增量值,将增量值存储在硬件设备全局存储器中;(5c)从每个线程的增量值中找出最大增量值对应的索引值,将其存储在硬件设备全局存储器中;(5d)将存储在硬件设备全局存储器的最大增量值对应的索引值拷贝至主机端内存中;(5e)将最大增量值对应的索引值在二维矩阵数据集中对应数据,作为新的初始聚类中心向量,加入聚类中心向量集合中;(6)判断当前聚类中心向量的总数是否小于或者等于步骤(1b)所读入的聚类总数,若是,则执行步骤(4),否则,执行步骤(7);(7)输出聚类中心向量集合和对应的二维矩阵数据集划分结果。本专利技术与现有技术相比,具有以下优点:第一,由于本专利技术采用开放运算语言OpenCL硬件设备,并行完成快速全局K-均值算法中计算密集度高的选取新的初始聚类中心步骤,实现了快速全局K-均值算法的实时性要求,克服了现有技术采用Spark平台实现算法时可移植性差的问题,使得本专利技术可以在任何支持开放运算语言OpenCL的硬件设备上实现对海量的聚类数据实时处理。第二,本专利技术采用开放运算语言OpenCL硬件设备,按照增量公式,计算每个线程的增量值,增加了单个线程的负载,避免产生大量的中间结果,节省了开放运算语言OpenCL硬件设备的存储空间,克服了现有技术中在解决大量数据的处理时,由于中间结果所占的存储空间太大,导致了开放运算语言OpenCL硬件设备的存储空间无法满足处理更大图像数据的问题,使得本专利技术在对图像数据进行聚类时能够处理更大的图像数据,提高处理更大图像数据的效率。附图说明图1是本专利技术的流程图;图2是本专利技术从每个线程的增量值中找出最大增量值对应的索引值步骤中并行规约方法示意图。具体实施方式下面结合附图对本专利技术作进一步的描述。本专利技术利用开放运算语言OpenCL硬件设备,采用快速全局K-均值聚类算法实现的。参照图1,对本专利技术的实现步骤作进一步的描述。步骤1,读入数据集和聚类总数。读入以二维矩阵方式存储的本文档来自技高网
...

【技术保护点】
1.一种使用OpenCL加速的快速全局K‑均值聚类方法,其特征在于,该方法使用开放运算语言OpenCL硬件设备,采用快速全局K‑均值聚类算法实现的,具体步骤包括如下:(1)读入数据集和聚类总数:(1a)读入以二维矩阵方式存储的数据集,矩阵的行表示数据的个数,列表示数据的属性;(1b)读入聚类总数;(2)对二维矩阵的数据集进行转置操作:(2a)将数据集中的二维矩阵拷贝至硬件设备全局存储器中;(2b)每个线程负责数据集二维矩阵中的一个数据点,计算每个线程的数据点在转置之后矩阵中的索引,将转置之后的二维矩阵存储在硬件设备全局存储器中;(3)选取第一个初始聚类中心点向量:计算二维矩阵数据集每列数据的质心,将所有列数据的质心组成第一个初始聚类中心点向量,加入到聚类中心向量集合中;(4)对二维矩阵数据集使用K‑means算法进行聚类操作:(4a)使用欧式距离公式,计算二维矩阵数据集每行数据与聚类中心向量集合中每个聚类中心向量之间的欧氏距离值,得到欧式距离二维矩阵,矩阵的行表示数据个数,列表示聚类中心向量集合中聚类中心向量的个数;(4b)找出各个数据与所有聚类中心向量欧氏距离最小值对应的聚类中心向量,将所有聚类中心向量相同的数据划分为同一类;(4c)采用聚类中心更新公式,更新聚类中心向量集合中的聚类中心向量;(4d)判断更新后的聚类中心向量是否等于更新前的聚类中心向量,若是,执行步骤(5),否则,执行步骤(4a);(5)选取新的初始聚类中心点:(5a)将二维矩阵数据集每行数据与所有聚类中心向量欧氏距离的最小值拷贝至开放运算语言OpenCL硬件设备全局存储器中;(5b)通过合并访存的方式,访问存储在硬件设备全局存储器中的转置之后的二维矩阵,按照增量公式,计算每个线程的增量值,将增量值存储在硬件设备全局存储器中;(5c)从每个线程的增量值中找出最大增量值对应的索引值,将其存储在硬件设备全局存储器中;(5d)将存储在硬件设备全局存储器的最大增量值对应的索引值拷贝至主机端内存中;(5e)将最大增量值对应的索引值在二维矩阵数据集中对应数据,作为新的初始聚类中心向量,加入聚类中心向量集合中;(6)判断当前聚类中心向量的总数是否小于或者等于步骤(1b)所读入的聚类总数,若是,则执行步骤(4),否则,执行步骤(7);(7)输出聚类中心向量集合和对应的二维矩阵数据集划分结果。...

【技术特征摘要】
1.一种使用OpenCL加速的快速全局K-均值聚类方法,其特征在于,该方法使用开放运算语言OpenCL硬件设备,采用快速全局K-均值聚类算法实现的,具体步骤包括如下:(1)读入数据集和聚类总数:(1a)读入以二维矩阵方式存储的数据集,矩阵的行表示数据的个数,列表示数据的属性;(1b)读入聚类总数;(2)对二维矩阵的数据集进行转置操作:(2a)将数据集中的二维矩阵拷贝至硬件设备全局存储器中;(2b)每个线程负责数据集二维矩阵中的一个数据点,计算每个线程的数据点在转置之后矩阵中的索引,将转置之后的二维矩阵存储在硬件设备全局存储器中;(3)选取第一个初始聚类中心点向量:计算二维矩阵数据集每列数据的质心,将所有列数据的质心组成第一个初始聚类中心点向量,加入到聚类中心向量集合中;(4)对二维矩阵数据集使用K-means算法进行聚类操作:(4a)使用欧式距离公式,计算二维矩阵数据集每行数据与聚类中心向量集合中每个聚类中心向量之间的欧氏距离值,得到欧式距离二维矩阵,矩阵的行表示数据个数,列表示聚类中心向量集合中聚类中心向量的个数;(4b)找出各个数据与所有聚类中心向量欧氏距离最小值对应的聚类中心向量,将所有聚类中心向量相同的数据划分为同一类;(4c)采用聚类中心更新公式,更新聚类中心向量集合中的聚类中心向量;(4d)判断更新后的聚类中心向量是否等于更新前的聚类中心向量,若是,执行步骤(5),否则,执行步骤(4a);(5)选取新的初始聚类中心点:(5a)将二维矩阵数据集每行数据与所有聚类中心向量欧氏距离的最小值拷贝至开放运算语言OpenCL硬件设备全局存储器中;(5b)通过合并访存的方式,访问存储在硬件设备全局存储器中的转置之后的二维矩阵,按照增量公式,计算每个线程的增量值,将增量值存储在硬件设备全局存储器中;(5c)从每个线程的增量值中找出最大增量值对应的索引值,将其存储在硬件设备全局存储器中;(5d)将存储在硬件设备全局存储器的最大增量值对应的索引值拷贝至主机端内存中;(5e)将最大增量值对应的索引值在二维矩阵数据集中对应数据,作为新的初始聚类中心向量,加入聚类中心向量集合中;...

【专利技术属性】
技术研发人员:朱虎明钱新宇焦李成王坤缑水平田小林张小华马晶晶马文萍
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

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

1