论文部分内容阅读
受限玻尔兹曼机是一种无监督学习方法,它具有强大的无监督学习能力,其广泛应用于聚类、分类、协同过滤等机器学习问题。 当训练样本数据量很大时,受限玻尔兹曼机会产生训练时间过长的问题,并行化是解决此类问题的有效方式之一。 Hadoop是一种用于大规模数据处理的典型分布式系统。其具有易于并行编程和扩展性良好等优点,被广泛用于信息检索、数据挖掘等研究领域。基于Hadoop的受限玻尔兹曼机并行化是有意义的研究方向之一。 本文通过分析受限玻尔兹曼机的模型结构,得出受限玻尔兹曼机可以较高效地在Hadoop上实现并行化。受限玻尔兹曼机的训练过程需要计算每层的状态值和更新连接权重矩阵。本文将每层状态值的计算作为一个job,层中每个节点状态值的计算作为一个task。一个job由多个task组成。由于这些task是并行执行的,所以该方法实现了每层状态值计算的并行化。连接权重矩阵的更新采用同样的方法并行化。 在连接权重的更新过程中存在某次更新后的连接权重远离最优值的现象。产生这种现象的原因是更新中用到的梯度有方向,在计算中表现为正负。本文提出一种改进方法,该方法并行计算梯度值为正负时的两种结果,然后选取最优结果。 本文通过测试串行算法、并行算法和改进后的并行算法训练出同等质量的受限玻尔兹曼机所需时间来验证正确性和效果。实验结果表明,本文实现的并行算法和改进型的并行算法正确,并能够缩短训练时间,同时改进型的并行算法优于原并行算法。