STR算法的并行化处理

来源 :西南财经大学 | 被引量 : 0次 | 上传用户:lastdemon
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
大数据的Variety(多样)特性,数据内容所采用的格式变得越来越多样,包含了声音、文字、信号、图片等多种样式;数据来源也愈来愈不同了,不仅来源于事物内部运作的各个环节,同时也来源于事物外部。从这些样式不一、快慢不等的数据流中来发掘他们的相关性,将会是在今后很长一段时间的重要研究方向。最近Goo gle开源了一个名为Te nsorF lo w开源软件库,而这软件库所采用的输入数据就是使用的 Te nsor(即张量),采用的是机器学习和深度神经网络方面的研究。但是在实现生活中,目前大家的做法依旧是将这些张量数据直接向量化,显然这样做会产生长向量和破坏原有的特征结构等严重缺陷。因此在没有任何先验知识的前提下,向量化表示并非总是有效。  然而张量却能够很好的描述这些事物的特性,并且保留下事物特征之间的结构性。我们提出一种基于张量框架的监督学习算法 S TR(支持张量回归机)。我们提出的STR(支持张量回归机)是以经典算法S VM(支持向量机)为基础,对其进行扩展的。在STR算法中,采用原始的张量数据直接作为算法的输入数据,通过STR算法对张量数据样本进行训练,从而得到一个基于张量空间的一个回归超平面,然后使用得到的这个超平面对新的张量样本数据进行预测判断。在对张量数据进行实际操作的时候,首先会理清楚张量数据各个模态之间的层次条理性,其次会尽量考虑到张量数据各个模态之间的联系。我们知道在机器学习的领域中,向量的各个特征之间是没有气候顺序的,也就是特征排列顺利其实对学习结果是不产生影响的,因为向量空间中任意两个特征都是属于两两正交的关系,但是在张量空间中,对于张量阵列而言,不同的排列顺序将会造成不同的学习结果,因此一定要尽量的将张量数据的各个特征分属到合适的模态中去,要凸显张量数据各个模态之间的层次条理性。同时也要考虑到张量数据各个模态之间的联系,深入的挖掘张量数据各个模态之间时序性,共生性等等。这与当下Goo gle的Te nsorF low有这异曲同工之妙。但是 STR算法同样有这自己不可忽视的缺陷: STR算法的复杂度较高,STR算法的训练是最为耗时的,随着张量数据的阶数的增加,在STR算法中进行外层迭代降维的时间随之增加,同时随着数据样本量的增加STR算法的训练时间也随之成倍的增加,这些都会导致STR算法运行时间成倍的增加。  在 S T R(支持张量回归机)整个算法流程中,训练是最耗时的,特别是随着输入样本数据量的增加,实现 STR算法所消耗的时间也迅速增加。因而为了提高STR算法的效率,可采用并行化处理的方式。由SVM(支持向量机)的算法可知道,算法的逻辑上是串行化执行的,STR是由SVM的基础上扩展来的,因此逻辑上应该也是一个串行的算法。从这个过程中,我们可以知道算法训练的主要时间是花费在这两部分上面了:1、外层迭代降阶;2、内层SVM算法求解。如果在这两部分上能够采用并行化处理的话,将会极大的提高STR算法的效率。幸运的是STR算法的自身的特点,能够将其改变成并行化算法,例如在STR做外层循环的时候对训练样本数据的处理,在内层使用 SMO算法的对拉格朗日因子的更新求解过程等都是能够进行并行化处理的。而GP GPU是一种新兴的高性能计算方法,它主要是以低成本、小体积的方式实现高性能计算,因而研究 S TR算法基于 GPU并行化实现,以提高算法的效率及其实用性,具有重要的研究意义。  本文首先对在多视图多任务的数据中张量的应用前景的一个简单描述,表明张量对现实事物描述的准确性,同时提出了 S TR(支持张量回归机)算法及其缺陷,因此进一步将算法进行并行化处理来优化这个算法。接着对张量、SVM和GPU的基础知识进行讲解,来引出S TR算法。然后对并行化S TR算法进行详细的算法推导和讲解,其中提到了三种并行化 STR算法的方法:1、OPSTR(外层并行化支持张量回归机);2、IPSTR(内层并行化支持张量回归机);3、PSTR(并行化支持张量回归机)。并对算法的收敛性进行了证明。最后是采用了三种不同的类型数据,对算法的性能进行了实验对比与分析。  本文中的STR算法是对支持向量机的理论上进行扩展的算法,并且采用了基于CUDA的 GPU平台实现了对其的并行化。STR算法的目标便是求得张量X与目标值y之间的存在的对应关系,即求得一个基于张量空间的回归超平面f(X)=uTXv+b。STR的算法逻辑主要分为两个层次:在外层迭代对张量进行降阶处理,内层计算求解出uT或者v在来反解另一个,通过内外层的不停迭代,使得目标问题得到收敛,使得问题得解。实际上对张量进行降阶的时候就在对张量不同维度(或模态或阶)的信息进行一个融合,而其中迭代使用到的向量实际上就是张量不同维度(或模态或阶)的信息之间的联系的一个关系表达式。在STR算法的整个迭代过程中,张量不同维度的信息也跟着在也在进行不断的融合。而在内层对uT或者v求解的时候,实际上有进行了张量不同样本之间信息的融合。STR算法需要多次循环迭代求解,其中涉及到大量张量降阶xl=Xiv计算,和多次的使用到SVR(支持向量回归机)算法求解u和v。由于上面算法的多次迭代使得STR是十分消耗时间的,为了让STR算法取得更好的性能,可以将大量可以并行化计算的部分转移到GPU上,以提高 STR算法的效率。基于上面两个方面提出了三种基于 GPU平台的并行化STR算法:1、OPSTR,主要是在STR算法进行外层迭代时,张量降阶xl=Xiv可以采用并行化计算;2、IPSTR,在S TR算法在内层计算uT或者v的时候,采用的是SMO,而SMO算法中将大量时间花费在了更新上面,因此采用并行化计算的方式;3、PSTR,将外层和内存都结合起来,都采用并行化的处理方式。  本文的实验所使用了三个数据集:Abalone数据集、PCB(Polish companies bankruptcy)数据集和中国股市数据集。通过这三组实验得到了:(1)在多视图多任务的数据领域内,张量更为适合来描述这些数据,同时使用STR得到的准确率要优于SVR算法。(2)通过对STR算法进行并行化处理,在保持STR算法预测的准确性的同时我们解决掉S TR算法用时较多的问题,能够大大的提高STR效率。(3)在本文中提到的三种并行化算法OPSTR、IPSTR和PSTR各有优劣,能够适用于不同的数据和场景。其中S TR是一根抛物线的曲线,而其他三个并行化的STR都是近似一根线性变化的曲线,由此我们能够看出随着样本量增大的时候,并行化的 S TR算法要比未进行并行化的STR效率要高的多。随着数据量继续增大的时候,IPSTR和OPSTR的趋势曲线已经不再是一根线性的曲线,而是向一根曲线发展了。而 PSTR依然是一个线性的曲线。由于 IPSTR和 OPSTR都是单一的外层并行化或者内层并行化,因此随着数据量的增加,在不是并行化的那一方,时间会迅速增加。由此我们不难看出,在数据量比较大的情况下,最好是使用PSTR。特征属性较小的时候,而数据集并不是特别大时使用IPSTR较为合适。特征属性较多,而数据集并不是特别大时使用OPSTR较为合适。  本文中对STR算法的并行做出了研究,为STR算法的效率的提高和可应用性做出了一定的贡献。同时本文中 STR算法,与当下热门起来的 Goo gle的Te nsorF low有很多的相似之处,都是使用张量作为数据的输入源,采用机器学习的方法来对事物进行处理。也许 STR算法在今后很有可能能够被Google的Tenso rF lo w所采纳,成为其中的一种方法。
其他文献
查询重写作为数据集成中的一项核心技术,在集成或发布系统中有重要应用。随着Internet技术的发展,XML成为异构数据集成中的数据交换的中间形式,针对XML模式作为全局视图的查询重
语种识别就是用计算机来自动识别一段发音所属语种的一项技术,它是在语音识别基础上发展起来的。随着语音识别技术的不断发展,语种识别作为语音识别的一个方面和它具有的重大意
基于Web的数据传输技术为全球化电子信息的共享提供了基础,虚拟企业得益于网络及多媒体技术的发展,是一种联合供应商、制造商、经销商及顾客,协同地、及时地零部件供应、设计
石油在全球范围内是最主要的能源燃料,一直以来,石油资源都在全球范围内被各国视为国民经济的血液,无论是工业化发展还是国民日常生活,都离不开石油资源的支撑,而这样的能源需求,只
学位
近年来,随着微电子技术、计算机技术、通信技术特别是网络技术的高速发展,新的测控理论、测控方法不断出现和成熟,而在测控系统中引入网络技术是其发展的新趋势。本文正是在这方
随着信息技术的发展,嵌入式应用得到了快速发展。嵌入式应用开发的主要特点是满足应用环境的多样化需求,多样化的需求导致嵌入式开发面临多样化的环境,其主要体现在于目标机硬件
集成电路(IC)是在半导体基片上形成的完整电子线路,它是上世纪五十年代末期,随着半导体晶体管硅平面技术的发展而出现的一种新型电子器件。当前芯片里的电路与系统日趋复杂,作为
J2EE因其可伸缩性、灵活性、易维护性和安全性受到越来越多的关注。在J2EE中,与角色相关的访问权限是通过配置文件(Web.xml和ejb-jar.xml)由容器自动实现的,而与角色相关的用
信息技术的飞速发展引发了全球数据的爆发式增长,大数据时代的到来也伴随着“信息超载”现象的出现。在众多推荐算法当中协同过滤推荐技术以其自身的健壮性和高效性,有效缓解