一种基于并行架构的迭代分割核学习方法技术

技术编号:21061159 阅读:15 留言:0更新日期:2019-05-08 07:31
本发明专利技术提供了一种基于并行架构的迭代分割核学习方法,其方法包括:首先将核学习算法中的大规模核矩阵求逆进行了分割,并采用了一种迭代分割的算法进行分解。然后在迭代分割算法的基础上,将其中的矩阵和向量相乘以及向量和向量相乘部分在GPU中进行并行计算,从而更好的提升算法的运行效率。本发明专利技术的有益效果是:本发明专利技术针对由核学习构造的评价网络中在学习的过程中存在大规模核矩阵求逆的耗时运算,提出了一种迭代分割的算法;在基于迭代分割算法的基础上,该算法中矩阵和向量相乘以及向量和向量相乘部分放入GPU中进行并行处理,提升了算法的运行速度,并且保证了系统的实时性。

【技术实现步骤摘要】
一种基于并行架构的迭代分割核学习方法
本专利技术涉及并行计算领域,尤其涉及一种基于并行架构的迭代分割核学习方法。
技术介绍
强化学习来源于动物学习和实验心理学,是一种交互式的机器学习方法,其所具有的强学习能力和适应能力是解决环境未知条件下最优策略学习的有效方法。传统的强化学习方法主要针对离散状态动作系统,当处理大规模空间或连续空间问题时,随着可取状态和动作数量的增加,会面临收敛速度慢甚至无法收敛的问题。自适应动态规划算法是模型未知时非线性系统最优控制的主流研究方法,该方法引入评价-执行网络结构,从而逼近系统的性能指标函数和控制策略。核方法作为一种非参数建模方法,使用核技巧将高维度中向量的内积通过低纬度的核函数计算。核方法具有不需要预设模型结构,对先验知识的依赖性很小,仅用少量的参数就能表达输入和输出的关系,具有很强的灵活性等优点。基于核学习构造的评价网络主要用于逼近值函数即性能指标函数,其关键在于权值向量的更新,当采用极大似然法更新权值向量的时候,会涉及到大规模的核矩阵求逆运算,导致计算的时间非常长,给算法的整体性能提升带来了十分严重的负担。研究一种基于并行架构的迭代分割核学习方法具有十分重要的工程实践意义。现有的大多数核学习评价网络构造方法普遍存在大规模核矩阵求逆的问题,通过将核学习算法中的核矩阵求逆进行迭代分割和并行处理,运行的效率会大大提升,进而提高系统的实时性。
技术实现思路
为了解决上述问题,本专利技术提供了一种基于并行架构的迭代分割核学习方法,一种基于并行架构的迭代分割核学习方法,主要包括以下步骤:S101:获取核学习算法中的核矩阵并根据公式(1)对核矩阵进行分解:上式中,是L-p阶的方阵,是1×(L-p)阶的行向量,dp是1×1阶的矩阵;S102:根据公式(2)和公式(3)所示的等式计算得到矩阵EL-p:上式中,Ep为自定义的对称矩阵,IL-p是L-p阶的单位矩阵;S103:根据矩阵EL-p,计算得到hp如公式(4)所示:上式中,S104:根据cp、hp和γp,计算得到核矩阵的逆矩阵如公式(5):S105:将计算得到的逆矩阵存储于GPU的内核块中,并将循环次数p加1;判断循环次数p是否大于或者等于核矩阵的维数L?若否,则返回步骤S101,并将公式(5)中的作为新的核矩阵进行分解;若是,则到步骤S106;所述循环次数p的初始值为0;S106:结束循环迭代,并将每次循环迭代所存储的进行反向迭代,得到核矩阵的最终求逆结果进一步地,通过在GPU中自定义的Kernel1和Kernel2分别将向量与矩阵之间的乘法和向量与向量之间的相乘部分放入GPU中进行并行计算,从而提升了算法的整体运行速度。进一步地,所述Kernel1的具体原理如下:S201:在GPU的所有线程块中任意选取一个空闲线程块;每个GPU有多个线程块,每个线程块中有255个线程;S202:从所述空闲线程块中选取多个线程分别用于计算矩阵的行中的各元素和向量的各元素的乘法;S203:将计算矩阵行中的各元素的线程和向量的各元素的线程相乘,得到矩阵和向量的乘法运算结果;S204:将最终的运算结果存储于所述空闲的线程块中。进一步地,所述Kernel2的具体原理如下:S301:在GPU的所有线程块中任意选取两个空闲线程块;每个GPU有多个线程块,每个线程块中有255个线程;S302:从两个空闲线程块中分别选取多个线程用于计算两个向量中的元素的乘法;S303:将两个空闲线程块中的线程进行乘法运算后,得到两个向量的相乘结果;S304:将相乘结果存储于对应的多个线程块中。本专利技术提供的技术方案带来的有益效果是:本专利技术针对由核学习构造的评价网络中在学习的过程中存在大规模核矩阵求逆的耗时运算,提出了一种迭代分割的算法;在基于迭代分割算法的基础上,该算法中矩阵和向量相乘以及向量和向量相乘部分放入GPU中进行并行处理,提升了算法的运行速度,并且保证了系统的实时性。附图说明下面将结合附图及实施例对本专利技术作进一步说明,附图中:图1是本专利技术实施例中一种基于并行架构的迭代分割核学习方法的流程图;图2是本专利技术实施例中Kernel1的结构示意图;图3是本专利技术实施例中Kernel2的结构示意图。具体实施方式为了对本专利技术的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本专利技术的具体实施方式。本专利技术的实施例提供了一种基于并行架构的迭代分割核学习方法。请参考图1,图1是本专利技术实施例中一种基于并行架构的迭代分割核学习方法的流程图,具体包括如下步骤:S101:获取核学习算法中的核矩阵并根据公式(1)对核矩阵进行分解;上式中,是L-p阶的方阵,是1×(L-p)阶的行向量,dp是1×1阶的矩阵;S102:定义如公式(2)所示的对称矩阵Ep,并定义如公式(3)所示的等式:上式中,IL-p是L-p阶的单位矩阵;S103:根据公式(1)、公式(2)和公式(3)可以得到公式(4):S105:定义公式(5):S106:根据公式(4)和公式(5)可得公式(6):S107:根据公式(6)可得核矩阵的逆矩阵如公式(7):S108:将计算得到的逆矩阵存储于GPU的内核块中,并将循环次数p加1;判断循环次数p是否大于或者等于核矩阵的维数L?若否,则返回步骤S101,并将公式(7)中的作为新的核矩阵进行分解;若是,则到步骤S109;所述循环次数p的初始值为0;S109:结束循环迭代,并将每次循环迭代所存储的进行反向迭代,得到核矩阵的最终求逆结果在本实施例中,通过在GPU中自定义的Kernel1和Kernel2分别将向量与矩阵之间的乘法和向量与向量之间的相乘部分放入GPU中进行并行计算,从而提升了算法的整体运行速度。所述Kernel1的具体原理如下:S201:在GPU的所有线程块中任意选取一个空闲的线程块(Blocks);每个GPU有多个线程块,每个线程块中有255个线程;S202:从所述空闲线程块中选取多个线程分别用于计算矩阵的行中的各元素和向量的各元素的乘法;S203:将计算矩阵行中的各元素的线程和向量的各元素的线程相乘,得到矩阵和向量的乘法运算结果;S204:将最终的运算结果存储于所述空闲的线程块中。所述Kernel2的具体原理如下:S301:在GPU的所有线程块中任意选取两个空闲的线程块(Blocks);每个GPU有多个线程块,每个线程块中有255个线程;S302:从两个空闲的线程块中分别选取多个线程用于计算两个向量中的元素的乘法;S303:将两个线程块中的线程进行乘法运算后,得到两个向量的相乘结果;S304:将相乘结果存储于对应的多个线程块中。Kernel1架构如图2所示,Kernel2架构如图3所示。为了验证本专利技术所提技术方案的有效性,将该方法放入GK-ADP算法中,并应用到实际的板球控制系统中,得到了运行时间,如表1所示。表1算法运行时间由表1可见,运用本专利技术所提技术方案的方法后,运行时间大幅减少,验证了本专利技术所提方法的有效性。本专利技术的有益效果是:本专利技术针对由核学习构造的评价网络中在学习的过程中存在大规模核矩阵求逆的耗时运算,提出了一种迭代分割的算法;在基于迭代分割算法的基础上,该算法中矩阵和向量相乘以及向量和向量相乘部分放入GPU中进行并行处理,提升了算法的运行速度,并且保证了系统的实时性本文档来自技高网...

【技术保护点】
1.一种基于并行架构的迭代分割核学习方法,其特征在于:包括以下步骤:S101:获取核学习算法中的核矩阵

【技术特征摘要】
1.一种基于并行架构的迭代分割核学习方法,其特征在于:包括以下步骤:S101:获取核学习算法中的核矩阵并根据公式(1)对核矩阵进行分解:上式中,是L-p阶的方阵,是1×(L-p)阶的行向量,dp是1×1阶的矩阵;S102:根据公式(2)和公式(3)所示的等式计算得到矩阵EL-p:上式中,Ep为自定义的对称矩阵,IL-p是L-p阶的单位矩阵;S103:根据矩阵EL-p,计算得到hp如公式(4)所示:上式中,S104:根据cp、hp和γp,计算得到核矩阵的逆矩阵如公式(5):S105:将计算得到的逆矩阵存储于GPU的内核块中,并将循环次数p加1;判断循环次数p是否大于或者等于核矩阵的维数L?若否,则返回步骤S101,并将公式(5)中的作为新的核矩阵进行分解;若是,则到步骤S106;所述循环次数p的初始值为0;S106:结束循环迭代,并将每次循环迭代所存储的进行反向迭代,计算得到核矩阵的最终求逆结果2.如权利要求1所述的一种基于并行架构的迭代分割核学习方法,其特征在于:通过在GPU中自定义的Kernel1和Kernel2分别将向量与矩阵之间...

【专利技术属性】
技术研发人员:陈鑫李璐
申请(专利权)人:中国地质大学武汉
类型:发明
国别省市:湖北,42

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

1