论文部分内容阅读
随着云计算和大数据技术的发展,机器学习技术成为学术界和企业界的热点。然而机器学习涉及大量理论知识,同时机器学习模型包含大量参数,需要有丰富的经验才能设计一个高效的模型。为了促进机器学习技术更广泛的应用,有效降低开展机器学习应用的门槛,自动化机器学习(Automatic Machine Learning,简称AutoML)技术应运而生,即通过对机器学习各环节提供自动化技术,让初学者也可以开展机器学习模型训练和应用。 AutoML的核心是机器学习模型的自动化调参,即自动选择超参数。Spark系统已经成为一种通用的大数据计算引擎,Spark MLlib包含丰富的机器学习算法,但是目前只支持简单调参方法,不支持贝叶斯优化等高级超参优化方法,基于Spark实现分布式机器学习调参系统面临多个挑战:(1)目前,分布式环境下贝叶斯优化的相关研究大多是同步Batch方式,如何基于Spark实现更高效的异步Batch贝叶斯优化算法是一个挑战:(2)Spark基于数据并行技术已支持单个机器学习模型高效并行训练,不支持采用模型并行技术加速多个模型的并行训练;(3)单个模型训练速度是整个调参过程效率的基础,Spark内置的梯度下降算法只能获得次线性收敛速率,Spark不支持具有线性收敛速率的模型求解算法。 针对上述三个关键问题,本文分别给出技术方案:(1)通过构建一个单节点共享模型参数池,支持异步模型训练任务的参数更新,实现一种异步Batch贝叶斯优化调参方法,在相同测试集和测试环境下,比同步贝叶斯优化算法具有2倍加速;(2)针对采用梯度下降算法求解的机器学习模型,其具有相同的执行逻辑过程,本文通过对模型执行逻辑过程进行细粒度分解,共享数据准备和数据采样中间结果,合并梯度计算任务,实现一种细粒度多模型并行执行方法,实验表明在选用的测试集上具有2倍左右加速。(3)针对采用梯度下降算法求解的机器学习模型,基于具有线性收敛速率的单机随机方差削减梯度算法SVRG,设计分布式模型优化求解算法topkSVRG,通过与Mini-Batch SGD、Cocoa、Splash等方法比较,topkSVRG可以在高精度要求下更快的收敛。 本文设计一个基于Spark的机器学习自动化调参系统,对提出的三个关键技术进行系统实现,提供可视化界面支持用户选择数据集和模型进行自动调参,并支持可视化查看参数选择结果。通过多个测试集验证了系统的有效性。