基于图形处理单元的并行逻辑回归方法及系统与流程

文档序号:12471277阅读:234来源:国知局
本发明涉及基于互联网的数据处理方法及系统,尤其涉及基于图形处理单元的并行逻辑回归方法及系统。
背景技术
:随着网络技术的发展,信息获取变得越来越容易,但对海量且日新月异的信息进行分类获取有用信息,在分类过程中还要满足用户所需的响应时间和结果准确度,变得越来越困难。逻辑回归在应用于分类问题时体现出模型简单分类速度快的优势,但面对海量的数据能否依然保持其优势,准确而快速地完成分类,是评价其好坏的关键因素。互联网广告推送和商务网站推荐普遍存在分类问题,互联网广告推送在互联网行业的商业模式中占有举足轻重的位置,在用户特征采集以及广告数量不断增多的情况下,分类任务面临的训练集可能有TB甚至PB量级的规模。每次预测的返回结果靠人工专家去分类判定然后给出结果是不现实的,分类最终归为人工智能问题,而这之中最常见的是逻辑回归方法。逻辑回归是一种机器学习分类任务:分类通过从原有数据中训练提取模型,对目标数据进行预测判断。分类的提出在机器学习和模式识别等领域都引起研究工作者的兴趣与深入研究。近些年来的研究表明在大规模数据的分类学习算法中逻辑回归依然表现十分优异,相比简单的模型比如决策树和朴素贝叶斯分类逻辑回归有着更高的准确率,而相比其他复杂的模型比如随机森林和支持向量机逻辑回归又有着更高的训练效率。同时互联网大规模的信息对于逻辑回归算法的性能是一个重大的挑战,也是逻辑回归算法后续研究工作的一个方向。但是,目前技术在逻辑回归训练中出现了由于海量数据导致计算速度慢的问题。技术实现要素:本发明提供了一种基于图形处理单元的并行逻辑回归方法,包括如下步骤:模型梯度计算步骤:针对逻辑回归使用最速梯度下降法进行训练,使用图形处理单元并行计算模型的梯度;模型参数更新步骤:在图形处理单元上使用梯度方向并行更新逻辑回归模型中每个特征的参数。作为本发明的进一步改进,在所述模型梯度计算步骤中,采用最大似然方法估计模型参数并计算模型梯度;在所述模型参数更新步骤中,采用最速梯度下降法对模型参数更新,在使用固定步长的情况下,对参数进行更新。作为本发明的进一步改进,在所述模型梯度计算步骤中,采用最大似然方法估计模型参数,对数似然函数为:log(L(θ))=Σi=1m(yiloghθ(xi)+(1-yi)log(1-hθ(xi)))]]>公式中,xi是训练集中的一个样本,yi为该样本的类标,i表示样本的序列,θ表示要训练的参数,hθ表示Sigmod函数;同时采用最速梯度下降法对模型参数进行更新,逻辑回归梯度函数为:∂∂θjJ(θ)=1mΣi=1m(hθ(xi)-yi)xji]]>公式中,xi是训练集中的一个样本,yi为该样本的类标,i表示样本的序列,j代表特征的序列,θ表示要训练的参数,hθ表示Sigmod函数。作为本发明的进一步改进,在梯度计算过程中,作为最经常用到的Sigmod函数,针对每一个样本开启一个核函数线程进行计算,采用基于图形处理的多线程并行构建计算梯度函数;在所述模型参数更新步骤中,使用模型梯度计算步骤中计算出的梯度,在图形处理单元上并行更新所有参数。作为本发明的进一步改进,在所述模型参数更新步骤中,使用梯度进行参数的更新,具体的使用公式:θj:=θj-α∂∂θjJ(θ)]]>公式中,α为一常数,代表学习的速率,θj表示某一特征参数,j代表特征的序列,代表梯度分量。本发明还公开了一种基于图形处理单元的并行逻辑回归系统,包括:模型梯度计算模块:用于针对逻辑回归使用最速梯度下降法进行训练,使用图形处理单元并行计算模型的梯度;模型参数更新模块:在图形处理单元上使用梯度方向并行更新逻辑回归模型中每个特征的参数。作为本发明的进一步改进,在所述模型梯度计算模块中,采用最大似然方法估计模型参数并计算模型梯度;在所述模型参数更新模块中,采用最速梯度下降法对模型参数更新,在使用固定步长的情况下,对参数进行更新。作为本发明的进一步改进,在所述模型梯度计算模块中,采用最大似然方法估计模型参数,对数似然函数为:log(L(θ))=Σi=1m(yiloghθ(xi)+(1-yi)log(1-hθ(xi)))]]>公式中,xi是训练集中的一个样本,yi为该样本的类标,i表示样本的序列,θ表示要训练的参数,hθ表示Sigmod函数;同时采用最速梯度下降法对模型参数进行更新,逻辑回归梯度函数为:∂∂θjJ(θ)=1mΣi=1m(hθ(xi)-yi)xji]]>公式中,xi是训练集中的一个样本,yi为该样本的类标,i表示样本的序列,j代表特征的序列,θ表示要训练的参数,hθ表示Sigmod函数。作为本发明的进一步改进,在所述模型参数更新模块中,使用梯度进行参数的更新,具体的使用公式:θj:=θj-α∂∂θjJ(θ)]]>公式中,α为一常数,代表学习的速率,θj表示某一特征参数,j代表特征的序列,代表梯度分量。作为本发明的进一步改进,该并行逻辑回归系统采用CPU和GPU协作框架设计,串行执行代码运行在CPU上,并行执行代码运行在GPU上,通过GPU提供的数据传输方式来交换显存与内存之间的数据,并行模型参数训练模块运行在所述GPU上;CPU控制系统的调度给GPU分配任务,为GPU准备运行空间,GPU在CPU准备好的环境下并行执行计算任务。本发明的有益效果是:本发明的基于图形处理单元的并行逻辑回归方法及系统,提高了逻辑回归训练中数据计算速度。附图说明图1是本发明的并行逻辑回归模型的系统框图。图2是本发明的训练集原始数据示意图。图3是本发明的原始数据转化为CSR模型示意图。图4是本发明的CPU及GPU硬件架构图。图5是本发明的模块图。图6是本发明的并行逻辑回归方法的CPU和GPU协作框架示意图。具体实施方式本发明公开了一种基于图形处理单元的并行逻辑回归方法,包括如下步骤:模型梯度计算步骤:针对逻辑回归使用最速梯度下降法进行训练,使用图形处理单元并行计算模型的梯度;梯度计算是本发明中重要的一步。梯度计算的目的是寻找使得目标函数下降的方向,本发明采用的是最大似然参数估计对逻辑回归模型的参数进行估计,并使用图形处理单元并行计算梯度。具体实施过程如下:逻辑回归模型训练的目的是要估计目标函数中关于每个特征的权重参数取值,最大似然估计和贝叶斯参数估计是常用的办法。最大似然估计相对于贝叶斯参数估计有收敛性好,简单易用等优点。因此,本发明实施中采用最大似然方法估计模型参数。最大似然估计是把要预测的参数看作是已知的量,但取值未知,最后使得模型符合训练样本的概率最大的一系列值为所要的参数值。假设有m个独立样本{(x1,y1)(x2,y2)(x3,y3),...,(xm,ym)},y={0,1},那么,每个样本出现的概率是:p(xi,yi)=p(yi=1|xi)yi(1-p(yi=1|xi))1-yi]]>本发明假定所有样本是相对独立的,所以m个样本出现的概率可以表示成他们的乘积,即:L(θ)=Πi=1mp(yi=1|xi)yi(1-p(yi=1|xi))1-yi]]>而在实际使用中由于该函数难于计算,因此使用对数似然函数进行计算,对数似然函数为:J(θ)=log(L(θ))=Σi=1m(yiloghθ(xi)+(1-yi)log(1-hθ(xi)))]]>公式中,xi是训练集中的一个样本,yi为该样本的类标,i表示样本的序列,θ表示要训练的参数,hθ表示Sigmod函数。参数训练的过程就是求解使得对数似然函数值最小的参数,在本发明中使用最速梯度下降法进行迭代求解,其梯度函数为:∂∂θjJ(θ)=1mΣi=1m(hθ(xi)-yi)xji]]>公式中,xi是训练集中的一个样本,yi为该样本的类标,i表示样本的序列,j代表特征的序列,θ表示要训练的参数,hθ表示Sigmod函数。模型参数更新步骤:在图形处理单元上使用梯度方向并行更新逻辑回归模型中每个特征的参数,即根据模型梯度计算步骤中计算出的模型梯度方向进行参数更新,具体实施过程如下:具体实施过程如下:在模型参数更新步骤中,本发明采用图形处理单元进行并行计算进行更新,参数的更新函数为:θj:=θj-α1mΣi=1m(hθ(xi)-yi)xji]]>公式中α是一个常量。公式中,梯度的计算与参数的更新都在图形处理单元上并行计算完成。本发明还公开了一种基于图形处理单元的并行逻辑回归系统,包括硬件部分和软件部分,硬件部分:采用CPU及GPU协作框架设计,串行执行代码运行在CPU上,并行执行代码运行在GPU上,通过GPU提供的数据传输方式来交换显存与内存之间的数据;软件部分分为两个个模块,包括模型梯度计算模块和模型参数更新模块。所述模型梯度计算模块是根据所有样本计算出梯度方向。所述模型参数更新模块是按照计算出的梯度方向进行搜索,找到新的合适参数。具体实施过程如下:该并行逻辑回归系统采用CPU及GPU框架的设计,如图4为系统的硬件框架,CPU控制系统的调度,给图形处理单元分配任务,为图形处理单元准备运行空间等,图形处理单元在CPU准备好的环境下,并行执行计算任务。图5为系统模块框图,系统主要分为两个模块,梯度计算模块和参数更新模块。图6为本发明基于图形处理单元的并行逻辑回归系统的软件协作框架,系统利用统一计算设备架构(ComputeUnifiedDeviceArchitecture,简称“CUDA”)编程平台对逻辑回归算法过程进行加速。在基于CPU及GPU协作框架的设计中,通过对CPU和GPU的协作任务进行合理的分配和框架设计,充分利用CPU和GPU的各自优势,为算法进行加速。本系统将其任务分为两部分来进行分配,一部分是在CPU上具有明显运行优势的任务,一部分是在图形处理单元(GPU)上明显具有运行优势的任务。适合在CPU上运行的任务主要包括:模型初始化,数据的I及O操作,算法逻辑流程的控制,核函数的调用。适合在图形处理单元(GPU)上运行的任务主要是数据运算类任务包括:梯度的计算与参数的更新。在系统软件方面,主要通过为模块设计核函数和使用CUSPARSE库来实现算法的加速运行。在并行模型参数训练模块,主要分为三步对参数进行更新,第一步主要计算矩阵与向量的乘法,计算训练样本与参数的的乘积:A=x1x2...xm·θ0θ1...θn=θ0x01+θ1x11+...+θnxn1θ0x02+θ1x12...+θnxn2...θ0x0m+θ1x1m...+θnxnm]]>该步可以调用CUSPARSE函数实现。第二步计算Sigmod函数值,该步适用于使用核函数进行并行实现:G=hθ(x)-y=σ(A1)-y1σ(A2)-y2...σ(Am)-ym]]>第三步,进行参数的更新,该步需要计算矩阵向量的乘法,同样可以使用CUSPARSE函数实现:θ0θ1...θn:=θ0θ1...θn-αx01x11...xn1x02x12...xn2............x0mx1m...xnmT·G]]>本发明的提出了一种基于图形处理单元的并行逻辑回归方法及系统。同时,利用图形处理单元(GPU)和中央处理器(CPU)之间的计算能力的互补性,本发明设计了一套基于CPU及GPU协作框架的并行化逻辑回归系统。系统硬件部分设计为CPU及GPU协作框架,软件部分设计分三个模块:数据格式转换,并行模型参数训练,预测分类.本发明的基于图形处理单元的逻辑回归方法及系统,可以充分利用图形处理设备的高并行性,有效的提高算法的训练性能,非常适合于处理大规模的分类问题。以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属
技术领域
的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1