训练大规模神经网络并行计算平台探讨.doc

训练大规模神经网络并行计算平台探讨.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
训练大规模神经网络的并行计算平台 摘 要:人工神经网络(ANN )已能成功地应用于各种模式识别和数据挖掘中。然而,在大规模数据集上训练人工神经网络会导致数据密集和计算密集。因此,为了获的更高的精度,大规模人工神经网络会有保留的进行耗时训练。在本文中,我们提出cNeural方法,自定义一个并行计算平台,用逆传算法加速训练大型神经网络。不同于许多并行神经网络训练系统作用于数千个训练样本,cNeural可以加快训练拥有数百万个训练样本的大规模数据集。为了实现这个目标,首先, cNeural用HBase存储和并行加载大规模数据集。第二,为了进行快速迭代训练,它提供了一个并行内存计算框架。第三,我们选择一个紧凑的事件驱动消息通信模型,而不是传递即时消息的心跳轮询模式。实验结果表明,cNeural中的数据加载和消息传递的开销时间成本非常低,并且cNeural比基于Hadoop MapReduce解决方案的速度快50倍左右。它还实现了线性的可伸缩性和良好的负载平衡。 关键字:并行计算;神经网络;大数据;快速训练;分布式存储 1 引言 人工神经网络(ANN)已应用于各种数据挖掘和模式识别中,如蛋白质结构分析、语音识别、,手写识别、图像和信号处理[1]。然而, 训练大规模神经网络时会出现计算密集和数据密集。一方面,整个训练工作流程通常需要进行成千上万次的训练步长迭代,这会导致昂贵的计算。另一方面,为了得到可靠的结果,大规模训练数据集通常用于应用程序。因此, 在单一PC机上训练大规模神经网络通常是非常耗时的,有时需要几天或者几周完成,有时甚至不可能完成。因此,大规模神经网络的低训练速度慢限制了它们处理实际应用中复杂和有价值的问题。 另一方面,现实世界的数据量早在前几年就已经爆炸,并且在许多相关领域里,分析大数据已变得相当受欢迎[2]。大数据的情况也适用于神经网络[3]。从直觉讲,大家普遍认为训练大规模样本比训练少量的样本效果好。因此,对于那些基于神经网络的应用程序,训练大规模神经网络在实现最高精度和结果中起着重要的作用。 在本文中,我们设计和实现cNeural方法,一个为训练大规模神经网络而自定义的并行计算平台。在cNeural中,训练工作流分为两个阶段: 加载训练数据和执行训练流程。为了减少数据加载的时间成本,我们把大规模训练数据集存储在HBase中,必要时通过集群会同时加载其中的一个数据到计算节点的内存中。此外, 为了加快迭代训练会采用一个并行内存计算框架。在整个训练过程中,为了合作和进一步的处理,计算节点之间需要相互沟通。在cNeural中,我们采用Apache Avro RPC建立一个事件驱动的消息传递通信框架, Apache Avro RPC有较高的通信效率并且数据结构丰富。我们的平台可以部署在商品硬件,Amazon EC2,甚至是pc机之间的网络互联。 本文分八个部分。第二节描述了相关工作。第三部分,提出基于反向传播训练算法的神经网络的背景。第四部分,介绍并行训练框架和cNeural算法。第五部分,描述用于支持快速训练的数据存储机制。第六部分,说明cNeural中的体系结构概述和主要组成部分。第七部分作出评估。第八部分总结全文。 2 相关工作 许多研究人员一直致力于在并行或分布式计算系统上实现计算上开销很高的ANN算法。相关工作可以追溯到上个世纪的70年代并且现在这个领域的研究依然保持增长。 在早期,研究人员喜欢用特殊用途的硬件来提高训练速度,这些硬件被分为神经元硬件和神经计算机[6]。Glesner和Pochnuller[11] 在他们的书中提出这种特殊用途硬件的概述。应用特殊用途的硬件可以实现快速和高效的运行。但是,它们几乎不具有灵活性和可伸缩性。在上世纪90年代以后,在普通用途的框架上设计并行神经网络成为了主流[12],[13],如并行计算模型或网格计算模型。这些系统大多应用于集群和多处理器计算机上。但是,以前的工作在管理大规模训练数据集上并没有做出太多的努力。他们通常致力于怎样使神经网络训练并行化以及只在数千个训练样本和兆字节大小的数据上执行实验。 近年来,许多研究人员在大数据上研究训练神经网络。[10] 用HDFS存储大型数据集并且用MapReduce方法训练它们。然而,Hadoop适用处理离线数据密集型的问题而不适用于处理计算密集型问题。因此,在Hadoop上训练神经网络的速度是缓慢的。GPU也被用于人工神经网络训练,但是训练数据集的大小受限于GPU的全局内存[16]。文献[18] 利用大规模的无监督学习可以从无标签数据中提取特性。他们在训练算法上花费很多努力,如模型并行机制和异步随机梯度下降。与以上的研究相比,cNeural不仅考虑了能加速神经网络训练的并行算法,而且对大数据的管理可以更好地支持并行算法的快速运行作出很多

文档评论(0)

187****5045 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档