APP下载

面向分类的自动化机器学习模型构建

2021-10-28孙长麟汪红强

软件导刊 2021年10期
关键词:原始数据级联分类器

孙长麟,汪红强

(中国空间技术研究院503 研究所,北京 100095)

0 引言

随着人工智能技术的发展,机器学习开始广泛应用于大量场景的预测、分类任务。然而,沃尔伯特的免费午餐定理意味着没有任何模型能很好地应用于所有数据集[1]。面对日益增加的应用场景及庞大的数据量,构建科学、高效的自动化机器学习模型显得尤为重要,已成为机器学习领域亟待解决的问题之一[2]。因此,本文构建一种基于分层级联结构与改进遗传算法的自动化机器学习模型,可自动、高效地生成机器学习管道。将其应用于预测、分类任务,并在公共数据集上进行评估,结果表明该模型具有较高的准确性。

针对分类任务,传统方案为使用超参数修正方法设计、构建分类模型。为增强构建的分类模型的普适性与鲁棒性,降低人工成本,将自动化机器学习概念引入分类任务中。国内外很多学者对此进行了研究,并取得了一定成果。如Pavlyshenko[3]提出传统的级联模型,可获得较高的分类精度,但灵活性较差,不适用于广泛的数据集;Feurer等[4]引入强大的自动化机器学习系统——Auto-sklearn,该工具包可产生具有110 个超参数的结构化假设空间,并实现自动地高精度分类,但其输出携带的信息较少,且规模也较大,计算时间较长,若想作进一步训练只能重写代码;Gijsbers 等[5]提出H2O 开源平台,该平台可自动训练模型并输出模型的排名列表,弥补了Auto-sklearn 的不足,但其应用于OpenML 数据集的分类效果逊色于前者;Olson 等[6]提出TPOT 架构,使用TPOT 进行一系列监督分类任务的基准测试,可获得更高准确率,但其时间成本也较高。

以上方法虽能实现较好的分类效果,但规模较大,本文通过级联与改进的遗传算法构建自动化机器学习模型,使模型更加轻量化,同时也能获得较为理想的分类效果。

1 模型构建

本文构建的模型具有两种属性:①级联。在每个堆叠层都保留原始数据集,可合成特征,后层可学习前层的错误,这种灵活的结构可应对广大数据集的挑战;②遗传算法。使用改进的遗传算法自动寻找效果最佳的管道[7]。

1.1 级联

在自动化机器学习模型构建过程中,提出一种新的组合结构方式——级联,该结构是受到集成学习启发而提出的[8]。集成学习的思路为训练若干个体学习器,通过一定的结合策略最终生成一个强学习器,即将这些个体学习器作为初级学习器,并加入多层次级学习器,将上层数据输出作为下层数据的输入,每层依次进行训练得到最终训练结果[9]。级联与该方式略有不同,其结构由层与节点构成,每个节点代表个体学习器,第一层用于接收原始数据集,后一层为前一层学习器的输出。区别于集成学习的stacking,经过单层预测后,原始数据集合不会被舍弃,而是会连同上层预测结果作为下一层的输入。其原因是,数据集中的项目数可能较小,如果后层舍弃原始数据,每层预测结果可能只包含很少关于问题的信息,从而导致局部最优等问题[10]。而且将预测结果添加到原始数据集这一做法非常灵活,如果这些特征对预测的准确性非常重要,可给予这些特征更大权值,以达到最佳效果。

1.2 遗传算法

遗传算法是模拟达尔文生物进化论中自然选择与遗传学机理的生物进化过程计算模型,是一种基于种群的元启发优化算法[11-12]。将其应用于人工智能场景,效率高于超参数的“暴力搜索”,是一种较为新颖的构想。遗传算法涉及初始化群体(管道)、适应度评估、交叉与变异、自然选择、逐代演化等,从低适应到高适应,可以说是一个绝妙的进化过程[13]。遗传算法具有很好的收敛性与鲁棒性,但同时遗传也具有一定局限性:算法对初始种群的选择具有一定依赖性,搜索速度一般,得到精确的解需要花费较多训练时间。因此,提出一种改进方案:在初始化群体之前生成数量较多的个体,按照适应度进行0 代选择,并按照一定比例选择其中高、中、低适应度的个体作为初代种群。该方式可保证初代种群的完整性与典型性,且在不影响准确性的情况下,能够节约资源、提高效率。

1.3 分类算法

机器学习管道包括数据预处理、特征工程与模型选择[14]。模型选择通常涉及构建模型节点(即单个分类器)的优化,例如支持向量机(SVM)或集成方法,如AdaBoost、Bagging 等。以下介绍构建模型节点的分类算法及超参数优化。

支持向量机是一种二分类模型,其基本模型是定义在特征空间上间隔最大的线性分类器。因间隔最大,令其有别于感知机。SVM 还包括核技巧,使其成为实质上的非线性分类器。SVM 的学习策略是间隔最大化,也等价于正则化合页损失函数的最小化问题。其学习算法是求解凸二次规划的最优化算法,基本思路是求解能够正确划分训练数据集且几何间隔最大的分离超平面。SVM 分类使用核函数可向高维空间进行映射,并将样本与决策面的间隔最大化。该过程可概括为3 个步骤:①利用核函数方法将样本空间转换为能线性可分的空间;②利用最大化间隔方法获取分隔最大的分割线,得到支持向量;③利用分割线与支持向量对样本进行分类预测。

使用SVM 分类器时,需设置核、gamma、决策函数等超参数,可使用默认参数或改进的遗传算法进行自动化的超参数搜索。在构建的模型中,使用强分类器能有效提高分类准确率与效率。例如,集成方法之一的AdaBoost 是一种迭代算法,其核心思想是针对同一个训练集训练不同分类器(弱分类器),之后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。具体流程为:先对每个样本赋予相同的初始权重,每一轮学习器训练过后都会根据其表现对每个样本权重进行调整,提升分类错误样本的权重,使先前分类错误的样本在后续得到更多关注。按此过程重复训练出若干个学习器,最后进行加权组合,构建出强分类器。该过程亦可概括为以下3 个步骤:

(1)初始化训练数据的权值分布D1。假设有N 个训练样本数据,则每一个训练样本开始都被赋予相同权值:w1=1/N。

(2)训练弱分类器hi。具体训练过程为:如果某个训练样本点被弱分类器hi 准确地进行了分类,在构造下一个训练集过程中,其对应权值要减小;相反,如果某个训练样本点被错误地分类,其对应权值则应增大。权值更新后的样本集被用于训练下一个分类器,整个训练过程如此迭代地进行下去。

(3)将训练得到的各个弱分类器组合成一个强分类器。各个弱分类器训练结束后,提高分类误差率低的弱分类器权重,使其在最终分类函数中起着较大的决定作用,同时降低分类误差率高的弱分类器权重,使其在最终分类函数中起着较小的决定作用。换言之,误差率低的弱分类器在最终分类器中所占权重较大,从而得到较高的预测精度。

另一种集成方法Bagging 又称为装袋算法,其采用一种有放回的抽样方法生成训练数据。通过多轮有放回的初始训练集随机采样,并行化生成多个训练集,对应可训练出多个基学习器(基学习器间不存在强依赖关系),再将这些基学习器结合起来构建出强学习器[15]。其本质是引入样本扰动,通过增加样本随机性达到降低方差的效果。

以上介绍了分类算法,构建的模型将结合各自分类算法的特点优化超参数,以提高模型的普适性与鲁棒性。

2 实验与分析

2.1 级联结构设计

为验证自动化机器学习模型的有效性,本文构建一个结构模型。级联结构如图1 所示。

Fig.1 Cascade structure图1 级联结构

原始数据集经过每层每个节点的学习器/分类器,例如,经过首层每个节点时,都会经过k 折交叉验证以及无重复抽样、训练,得到预测结果true/false,并将其添加到原始数据集中,在层中连接合成特征,作为下层的数据输入[16-17]。因此,后层可学习前层的分类错误并对其进行纠正,且这种结构可直接从原始数据集中级联信息。最后的数据集将包含个特征,其中,K为整体层数,Ni为第i层节点个数,经过K层的学习得到预测结果。设计的学习模型结构较为灵活,每层的节点个数、层数是可变的。节点列表如表1 所示。

Table 1 Node list表1 节点列表

考虑到结构的复杂性以及预测效率与准确性,设定每层学习器为3~5 个,层数为2~5 层。

2.2 遗传算法搜索超参数

构建结构模型后,需在广阔的变量空间中寻找合适的解决方案。这些变量包括各节点选用的基本学习器、框架设置等。此处不是将其视为优化问题,而是将其建模成超参数进行自动化搜索。选择改进的遗传算法完成超参数的自动化搜索,构建面向分类的自动化机器学习模型。算法流程如图2 所示。

随机初始化0 代种群,n 取4,N 取64,共256 个模型,选择预测准确率作为适应度函数,分别从高、中、低适应度的个体中选择32、18、14 共64 个个体组成初代种群[18]。考虑到传统遗传算法性能受初代种群影响较大,该方式既可保证初代种群科学、典型,又可减少种群数量,减少资源浪费,提高效率。在一半模型中运行一步突变得到N/2 个模型,突变同样随机产生,另N/2 个模型用于交叉,即两两随机分组,交换后一半结构形成新模型。之后训练2N 个模型,并通过交叉验证进行评估,选择准确度最高的N 个模型作为下一代种子模型。设置进化代数为100,使用multiprocessing 进行多进程训练、评估,以提高效率[19-20]。

Fig.2 Improved genetic algorithm search flow图2 改进的遗传算法搜索流程

2.3 实验结果

为了验证构建模型的性能,本文选择OpenML 公共数据集进行实验。分别使用几个典型的基本学习器ada-Boost、Bagging、DecisionTree 以及H2O 开源平台、TPOP 框架(各学习器与框架都采用默认设置)进行12 轮验证,比较预测准确性与效率[21]。此处列举使用的部分公共数据集,如表2 所示。

Table 2 Partial public dataset表2 部分公共数据集

经过12 轮验证、测试与评估,得到各基本学习器、开源结构、框架与构建的自动化机器学习模型——New model在分类任务中的准确率,如表3 所示。

Table 3 Accuracy rate of each learner,framework and model表3 各学习器、框架与模型准确率

本文构建模型的准确率相比H2O 与TPOT 有所提高,在多次实验中,发现就较小的数据集而言,本文构建的模型更具有优势。不同模型、框架的平均执行时间比较如图3 所示。

Fig.3 Comparison of the average execution time of different models and frameworks图3 不同模型、框架平均执行时间比较

本文构建的模型执行时间相比H2O 减少了16s,相比TPOT 减少了46s,效率有所提高。

3 结语

本文构建一种用于分类的自动化机器学习模型,其结合了创新的级联思想与改进的遗传算法,在公共数据集上凭借其轻量级、准确性以及执行速度快等方面优势显示出其竞争力,但在大型、高维数据集与多任务问题上效果一般。未来研究方向是将更高级的学习器合并到构建的模型中,并使用更好的搜索算法使模型更加高效。

猜你喜欢

原始数据级联分类器
GOLDEN OPPORTUNITY FOR CHINA-INDONESIA COOPERATION
BP-GA光照分类器在车道线识别中的应用
全新Mentor DRS360 平台借助集中式原始数据融合及直接实时传感技术实现5 级自动驾驶
级联LDPC码的STBC-OFDM系统
加权空-谱与最近邻分类器相结合的高光谱图像分类
结合模糊(C+P)均值聚类和SP-V-支持向量机的TSK分类器
基于级联MUSIC的面阵中的二维DOA估计算法
基于LLE降维和BP_Adaboost分类器的GIS局部放电模式识别
LCL滤波器在6kV级联STATCOM中的应用
H桥级联型STATCOM的控制策略研究