当前位置: 首页 > 专利查询>北京大学专利>正文

SVM模型的训练方法、装置、设备和计算机可读存储介质制造方法及图纸

技术编号:28150755 阅读:24 留言:0更新日期:2021-04-21 19:42
本公开的实施例提供了SVM模型的训练方法、装置、设备和计算机可读存储介质。所述方法包括获取数据集;加载所述数据集;通过自动调优框架在线预测所述数据集的最优存储格式并进行格式转换;执行SMO算法对SVM模型进行训练。以此方式,能够根据输入的数据集自动的选择最优的数据存储格式与算法;全局循环层次基于所述最优数据存储格式进行大量的更加高效的矩阵乘法运算计算kernel matrix;局部SMO求解器层次,使用GPU的寄存器通信技术与合并访存方法进行了更加细致的内存优化,充分利用硬件平台的计算资源。件平台的计算资源。件平台的计算资源。

【技术实现步骤摘要】
SVM模型的训练方法、装置、设备和计算机可读存储介质


[0001]本公开的实施例一般涉及机器学习
,并且更具体地,涉及SVM(Support Vector Machine,支持向量机)模型的训练方法、装置、设备和计算机可读存储介质。

技术介绍

[0002]作为普遍应用的机器学习算法之一,SVM 已广泛应用于各种科学领域,如模式识别领域的手写数字识别、对象识别、语音识别,计算机视觉领域图像分类、行人检测等。它通过最大化特征空间上的类间间隔求得最优的超平面,具有准确性高、泛化性能好以及拥有严格的数学证明等优点。它最初被提出用来解决线性可分的二分类问题,但核方法使得其可以处理非线性可分的问题。开源工具包 LibSVM 在许多场景中得到了广泛应用,因其简单易用的接口和全面的功能,成为最受欢迎的 SVM 工具包,然而由于大数据时代,数据规模不断增加,LibSVM训练 SVM 模型所需时间越来越长,这很大程度上限制了 SVM 算法的应用。 SVM 训练过程非常耗时的主要原因为 QP 优化问题的求解需要大量迭代步骤,每次迭代均需要执行两次矩阵向量乘法,这一过程是十分耗时的。
[0003]一个不可忽视的趋势是,目前计算行业正在向并行计算方向发展, 与此同时 GPU 作为优秀的并行计算平台被广泛的应用在很多很多计算密集场景,如深度学习、大气模拟的 加速计算等。
[0004]目前,已有一些基于GPU平台的并行化SVM算法的研究。一个是GPUSVM,另一个是ThunderSVM。
[0005]GPUSVM采用SMO算法作为求解算法。SMO算法为迭代算法,每次迭代分为三个主要步骤,首先通过第一或者第二启发式寻找两个最极端的拉格朗日乘子,其次对上述两个乘子进行优化,进而更新所有的梯度向量f。在第一个步骤中,GPUSVM没有选择单一启发式方法,而采用了一种自适应的方式,在第一与第二启发式之间切换以获得更快的收敛速度。在第三个步骤中,因为更新梯度向量f需要访问内核矩阵(kernel matrix)中对应于本步迭代选择的拉格朗日乘子的两行,GPUSVM选择在迭代开始之前,通过一次矩阵与矩阵的乘法将全部的内核矩阵提前计算并存储于GPU的全局内存(global memory)中,这样可以充分利用GPU强大的并行运算能力。其采用了稠密数据格式作为存储格式,并且调用了自己实现的矩阵与矩阵相乘的算法,并没有采用目前广泛使用的cuBLAS库。
[0006]ThunderSVM同样采用了SMO算法作为内部的求解算法,但与GPUSVM不同,它使用了层次分解的方法。将原始SMO算法的循环迭代拆分为双层次循环,全局循环层次和局部求解器层次。每次全局循环为局部求解器选择当前的工作集,局部求解器负责使用SMO算法求解该工作集。其中全局循环层次通过多次使用第一启发式选择多对较为极端的拉格朗日乘子组成当前工作集,而局部求解器的SMO算法的第一个步骤中则采用第二启发式选择当前工作集中极端的拉格朗日乘子。除此之外,ThunderSVM的局部求解器在一个CUDA线程块(thread block)上高效的执行,充分使用了CUDA共享内存的特性, 降低了访存时间。局部求解器的SMO算法可能需要访问的内核矩阵中的部分也在每次全局循环中被计算得出并存
放在全局内存中,以供局部求解器访问。ThunderSVM采用了CSR稀疏存储格式,并且调用了 cuSPARSE库进行矩阵乘法运算。
[0007]GPUSVM的实现中选择使用自己实现的稠密矩阵乘算法一次性计算出内核矩阵并保存于GPU的全局内存,这种方式虽然很好的发挥了GPU的并行运算性能,但是本身实现的稠密矩阵乘算法的效率低于目前使用广泛的cuBLAS库中实现的GEMM算法。除去计算内核矩阵的矩阵乘效率低外,一次性计算出内核矩阵的选择会带来存储问题。如果假定数据的规模为num*dim,则内核矩阵的规模为num*num,随着样本数据集的规模增大而快速增大,存储全部内核矩阵的空间需求也是快速增加的,而GPU的全局内存是有限的,这使得GPUSVM不能正确处理大规模的数据集。
[0008]ThunderSVM的实现中选择使用双层次循环的方法,每次全局迭代只需要计算并存储当前工作集规模的局部内核矩阵,避免了存储全部内核矩阵的存储问题,但是其选择使用CSR格式作为固定的存储格式,虽然调用了cuSPARSE库的SpMM稀疏矩阵乘算子进行局部内核矩阵的计算,然而由于CSR存储格式的特性,导致不能充分发挥GPU的并行运算能力,不能适应所有的数据集。除此之外,在ThunderSVM的局部层次的SMO求解器的实现中,虽然将高频次访问的拉格朗日乘子向量α与 梯度向量f 存储于共享内存,但是SMO迭代中最耗时的步骤一与步骤三的实现并不高效,步骤三更新梯度向量f的过程,线程访问全局内存中的内核矩阵的两行没有做到合并访存,降低了内存访问效率。
[0009]内核矩阵的计算依赖于矩阵乘法,这一部分由于计算强度大,耗时多,往往是整个SVM算法的瓶颈。数据集的存储格式直接影响后续大量的矩阵乘法的效率,稠密格式有良好的访存效率,但对于稀疏的数据集会带来冗余的运算;稀疏格式会造成访存效率的降低,但是却没有冗余的运算。GPUSVM 与ThunderSVM共有的缺陷是选择了固定的存储格式,GPUSVM采用稠密格式,ThunderSVM采用CSR格式,这导致二者均不能较好的适用于所有的数据集。

技术实现思路

[0010]根据本公开的实施例,提供了一种SVM模型的训练方案。
[0011]在本公开的第一方面,提供了一种SVM模型的训练方法。所述方法包括获取数据集;所述数据集中样本的数量为n,维度为d,其中n、d为大于1的正整数;加载所述数据集;通过自动调优框架在线预测所述数据集的最优存储格式并进行格式转换;执行SMO算法对SVM模型进行训练方法。
[0012]在本公开的第二方面,提供了一种基于SVM模型的识别方法。所述方法包括获取待识别的数据集;加载所述待识别的数据集;通过自动调优框架在线预测所述数据集的最优存储格式并进行格式转换;根据所述SVM模型对所述数据集进行识别。
[0013]在本公开的第三方面,提供了一种SVM模型的训练装置。该装置包括数据集获取模块,用于获取数据集;所述数据集中样本的数量为n,维度为d,其中n、d为大于1的正整数;数据集加载模块,用于加载所述数据集;通过自动调优框架在线预测所述数据集的最优存储格式并进行格式转换;SVM模型训练模块,用于执行SMO算法对SVM模型进行训练。
[0014]在本公开的第四方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
[0015]在本公开的第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,
所述程序被处理器执行时实现如根据本公开的第一方面的方法。
[0016]应当理解,
技术实现思路
部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种SVM模型的训练方法,其特征在于,包括:获取数据集;所述数据集中样本的数量为n,维度为d,其中n、d为大于1的正整数;加载所述数据集;通过自动调优框架在线预测所述数据集的最优存储格式并进行格式转换;执行SMO算法对SVM模型进行训练。2.根据权利要求1所述的方法,其特征在于,加载所述数据集包括:读取并加载所述数据集进入CPU内存,将所述数据集存储为CSR格式的数据集矩阵M;所述数据集矩阵M的形状为n*d。3.根据权利要求2所述的方法,其特征在于,通过自动调优框架在线预测所述数据集的最优存储格式并进行格式转换包括:在GPU上并行计算所述数据集的特征参数;在CPU上将所述特征参数输入决策树模型,预测得到所述数据集的最优存储格式;判断所述最优存储格式是否与当前存储格式CSR相同;如果否,则在GPU上将当前存储格式转换为所述最优存储格式;如果是,则不进行格式转换。4.根据权利要求3所述的方法,其特征在于,所述决策树模型是通过以下步骤训练得到的:生成数据集,计算所述数据集的特征集合数据,将所述特征集合数据作为训练数据;所述训练数据包括所述数据集的标签和特征参数;使用所述训练数据,通过决策树算法生成自动调优框架。5.根据权利要求2所述的方法,其特征在于,执行SMO算法对SVM模型进行训练包括:通过多次使用第一启发式选择多对待优化的拉格朗日乘子组成工作集;计算内核矩阵K的K_subset并提取K_core;执行局部SMO求解器,采用SMO算法对所述工作集进行求解;其中,采用SMO算法对所述工作集进行求解包括从所述工作集中寻找两个极端的拉格朗日乘子α(high),α(low);更新所述α(high)与α(low);访问所述K_core,更新所述工作集中的下标所对应的梯度向量;更新全局的梯度向量;判断是否满足全局层次的收敛条件;若满足则SVM模型训练完成;若不满足则进行迭代。6.根据权利要求5...

【专利技术属性】
技术研发人员:杨超范睿博敖玉龙李敏李克森
申请(专利权)人:北京大学
类型:发明
国别省市:

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

1