-
近年来,机器学习已广泛应用于如机器翻译[1-2]、语音识别[3-4]、图像识别[5-6]和游戏[7]等众多领域。针对某一问题,如何快速构建一个成熟、可靠的机器学习模型就显得尤为重要。为了满足行业需要,使机器学习算法能够得到快速、高效的利用,一大批企业针对普通用户开发出了一些应用系统,如DataRobot.com[8]、BigML.com[9]、Wise.io[10]等。在机器学习算法的应用中,不可避免涉及两个重要问题:算法模型选择和超参数优化。
现有的机器学习算法众多,具有代表性的算法有逻辑回归(logistic regression)、支持向量机(support vector machine)、决策树(decision tree)和随机森林(random forest)等。针对不同的问题,没有一个机器学习算法模型能够适用于所有问题。在同一问题上,不同的方法所达到的性能也存在不同程度的差异。这给机器学习算法的使用者造成了不小的麻烦。算法模型选择成了机器学习算法广泛应用的一大障碍。
另外,超参数优化同样成为了机器学习算法应用中的难点之一。超参数不同于算法模型内部的参数,它是在算法模型训练之前设置的参数。在训练开始之前,往往希望找到一组超参数的值,即超参数组合,使得算法模型可以在合理的时间范围内对某一数据集的分类或拟合达到最佳性能。这个过程被称为超参数优化,它对机器学习算法的性能起着至关重要的作用。在实践中通常需要不断调整超参数的值,最终选择最佳的超参数组合。若算法模型的超参数搜索空间较大,该过程将非常耗时。
因此,针对某一问题(或数据集),最终结果很大程度上是由机器学习算法模型和算法对应的超参数组合共同决定的。本文提出了一种基于深度强化学习的方法,用于自动实现机器学习算法的选择和超参数的优化。该方法利用长短期记忆(LSTM)网络[8]构建一个智能体(Agent)来代替机器学习使用者选择最优的机器学习算法及其超参数;Agent在训练集上训练所选择的机器学习算法及超参数组合所对应的算法模型,在验证数据集上验证该算法模型的性能;以在验证集上的准确度作为奖赏值,利用策略梯度算法(policy gradient)[9]优化Agent的决策。经过多次迭代,Agent选择出适合该问题的最优模型及对应的超参数。在Agent训练过程中,梯度方差较大,本文提出引导数据池来解决该问题。本文主要的贡献在于以下3点:
1) 使用强化学习框架来解决模型选择和超参数优化问题;
2) 提出了数据引导池结构来提高方法的稳定性;
3) 通过在标准数据集上对8种机器学习算法进行优化,相比于其他方法,本文提出的方法达到了最好的优化结果。
HTML
-
根据文献[25]中对179种机器学习算法在UCI machine learning repository数据集上的评估结果,本文挑选了一些具有代表性的学习算法以及相应超参数,并为这些超参数设定了一些候选值,详细情况如表1所示。
算法模型 超参数 候选值范围 间隔 RandomFor-estClassifier n_estimators [100~1 200] 100 max_depth [2~30] 2 min_samples_split [1~99] 2 min_samples_leaf [1~99] 2 max_features [sqrt,log2,None] 无 criterion [gini,entropy] 无 bootstrap [True,False] 无 XGBClassif-ier max_depth [3~25] 2 gamma [0.05~0.9] 0.05 min_child_weight [1~9] 2 subsample [0.1~0.9] 0.1 colsample_bytree [0.1~0.9] 0.1 reg_alpha [0.0~1.0] 0.1 reg_lambda [0.01~0.1] 0.01 learning_rate [0.005~0.1] 0.005 DecisionTre-eClassifier criterion [gini,entropy] 无 splitter [best,random] 无 max_depth [2~30] 2 min_samples_split [1~99] 2 min_samples_leaf [1~99] 2 max_features [sqrt,log2,None] 无 SVC C [0.000 5~0.01] 0.000 5 kernel [linear,poly,rbf,sigmoid] 无 class_weight [balanced,None] 无 Kneighbor-sClassifier n_neighbors [2~100] 2 weights [uniform,distance] 无 algorithm [auto,ball_tree,kd_tree,brut] 无 leaf_size [5~50] 5 p [1~5] 1 AdaBoostCl-assifier n_estimators [100~1 200] 100 learning_rate [0.1~1.0] 0.1 algorithm [SAMME,SAMME.R] 无 ExtraTreesC-lassifier n_estimators [100~1 200] 100 criterion [gini,entropy] 无 max_features [sqrt,log2,None] 无 max_depth [1~29] 2 min_samples_split [1~99] 2 min_samples_leaf [1~99] 2 BaggingCla-ssifier n_estimators [100~1200] 100 max_samples [0.1~0.9] 0.1 max_features [0.1~0.9] 0.1 bootstrap [True,False] 无 bootstrap_features [True,False] 无 warm_start [True,False] 无 UCI machine learning repository数据集是一种常见的、用于分类任务的数据集。采用两种UCI标准数据集进行测试,数据集信息如表2所示。数据集的原始数据经过预处理后,将整个数据集分成验证集和测试集两部分,验证集占整个数据集的80%,数据集中剩余的20%的数据将作为测试集,用于测试所选择的超参数组合对应的模型最终的性能。
数据集名称 UCI手写数字
数据集UCI Spambase
数据集UCI Car Evaluation
数据集适用任务类别 多分类 二分类 多分类 标签类别 10种(0−9)整数 2种(0,1) 4种 特征数量/个 64 57 6 是否有缺失值 否 否 否 数据集大小/条 5 620 4 601 1 728 在构建Agent的过程中,Agent采用3层LSTM,每一层有35个隐藏节点。采样的总次数N设置为5 000次;每次采样的超参数组合的数量m设置为8;引导池大小设置为8;数据引导池的利用间隔n_step设置为10;基准值b的控制率r设置为0.8;以−0.2~0.2之间的随机值对Agent的权重进行初始化,使用Adam优化器[26]进行策略优化。
-
实验在两个UCI标准数据集下进行,对比了CMAES优化方法、TPE优化方法、随机搜索方法的准确度、时间效率、稳定性。实验结果如图4和表3所示,所有结果为3次实验后统计值。图中所示为3次实验的平均值和1倍标准差。
数据集 UCI手写数字数据集实验结果 方法 准确度 耗时/min 标准差 Agent 0.987 5 219.4 0.009 36 TPE 0.983 9 1 167.5 0.026 43 Rand 0.985 3 1 825.9 0.038 62 CMAES 0.985 6 776.3 0.006 71 数据集 UCI Spambase数据集实验结果 方法 准确度 耗时/min 标准差 Agent 0.955 2 199.5 0.012 2 TPE 0.953 5 462.1 0.019 4 Rand 0.952 7 870.5 0.028 0 CMAES 0.954 0 355.6 0.013 4 数据集 UCI Car Evaluation数据集实验结果 方法 准确度 耗时/min 标准差 Agent 0.975 4 60.7 0.003 4 TPE 0.948 2 78.3 0.010 6 Rand 0.921 6 80.6 0.033 4 CMAES 0.952 1 66.3 0.009 7 图4为优化过程中所有方法的准确度。横轴表示采样次数;纵轴表示每次采样后选择的模型在验证集上的准确率。图中数据为3次实验的均值和一倍标准差。表3结果为5 000次采样完成后,4种方法选择的模型的统计结果(3次实验平均值)。其中,准确度表示模型在验证集上最高准确率的平均值;耗时为完成3次训练所耗费时间的平均值,该值大小反应了优化算法的时间性能;标准差为3次实验最高准确率统计的标准差,该项数据反应了算法的稳定性。
通过分析实验数据可以看出,本文提出的优化算法能够在最短的时间搜索到最优的结果。虽然随机搜索、TPE优化方法和CMAES优化方法也能达到较好的优化结果,相比之下,Agent能够用远少于前两种方法的时间搜索出更优的算法模型和超参数组合,尤其是在问题规模增大时,Agent优化方法仍具有很高的时间效率,综合性能更好。TPE方法使用从开始到当前时刻所有采样的数据进行训练,这就造成了对数据的极大依赖,容易造成过拟合,最终陷入局部最优。相比之下,Agent在对自身的模型参数进行更新时,每次都是由当前时刻采样到的新数据进行训练,能够搜索到更好最优解。随机搜索算法的搜索效率相比与TPE算法更低,究其原因在于随机搜索方法的采样具有随机性,随着搜索空间增大,搜索到相同模型超参数组合可能性越小,因而耗费在模型训练上的时间也就越多。通过实验还发现Agent通过数据引导池结构,相比于TPE和随机搜索方法能够有效的减小训练时的方差,使训练更加稳定。