本文是AI读论文的第1篇,就从一篇介绍AutoML中关键技术的论文开始吧。
论文标题:Techniques for Automated Machine Learning
论文链接:https://arxiv.org/pdf/1907.08908.pdf
01 引言
AutoML的目标是自动确定高性能的机器学习解决方案,以减轻数据科学家的负担,并使领域专家能够使用现成的机器学习解决方案,而无需丰富的经验。
传统的机器学习流程是一个迭代过程,包括特征工程、模型和超参数选择以及性能评估。AutoML被分为三个类别:自动特征工程、自动模型和超参数学习以及自动深度学习。
机器学习经典Pipeline
02 自动特征工程
自动特征工程(AutoFE)是机器学习中的重要环节,它旨在自动发现和构建对机器学习模型具有预测能力的特征。在本文中,介绍了两种主要的自动特征工程技术:强化学习(RL)和进化算法(EA)。下面将详细介绍这两种技术的算法原理。
强化学习(RL)的算法原理
强化学习是一种机器学习方法,其目标是让智能体(agent)通过与环境的交互学习,以便在特定环境中采取行动以最大化长期回报。在AutoFE中,RL被用于自动发现和选择特征工程操作,以提高机器学习模型的性能。
1. 智能体(Agent):在AutoFE中,智能体是指用于执行特征工程操作的实体,它需要学习如何选择和应用这些操作以获得最佳性能。
2. 环境(Environment):在AutoFE中,环境是指特征工程操作被应用的数据集。智能体根据环境的状态(即数据集的特征)来选择特征工程操作。
3. 动作(Action):在AutoFE中,动作是指可用的特征工程操作,如数据填充、特征变换和特征选择。
4. 奖励(Reward):在AutoFE中,奖励是指智能体根据应用特征工程操作后的性能来获得的反馈。智能体的目标是最大化长期奖励,即提高机器学习模型的性能。
在AutoFE中,RL的算法原理如下:
策略(Policy):智能体根据其策略来选择特征工程操作。策略可以是确定性的,也可以是随机的。
价值函数(Value Function):智能体使用价值函数来评估每个动作的长期回报。这有助于智能体决定选择哪个动作以最大化长期奖励。
学习过程:智能体通过与环境的交互来学习最佳策略。它根据环境的反馈(奖励)来调整其策略和价值函数,以便在未来能够做出更好的决策。
进化算法(EA)的算法原理
进化算法是一类启发式优化算法,它模拟了自然界中的进化过程,通过选择、交叉和变异等操作来搜索最优解。在AutoFE中,EA被用于自动发现和构建特征,以提高机
学习模型的性能。
在AutoFE中,进化算法的算法原理如下:
1. 个体表示:在AutoFE中,个体通常表示为一组特征工程操作的序列或组合。每个个体代表了一种特征工程方案。
2. 适应度函数:适应度函数用于评估每个个体的性能,即应用特征工程操作后的机器学习模型性能。适应度函数的值越高,个体的性能越好。
3. 选择:进化算法通过选择操作从当前种群中选择适应度较高的个体作为父代,用于繁殖下一代。
4. 交叉:交叉操作用于生成新的个体,通过将两个父代个体的特征工程操作进行交叉组合,产生新的特征工程方案。
5. 变异:变异操作用于引入新的特征工程操作,以增加种群的多样性和探索新的特征工程方案。
6. 进化:通过选择、交叉和变异等操作,种群中的个体不断进化,以寻找性能更好的特征工程方案。
自动特征工程技术利用强化学习和进化算法等方法,通过智能体与环境的交互或种群的进化,自动发现和构建对机器学习模型具有预测能力的特征。这些方法的算法原理为智能体或种群不断地探索和优化特征工程方案,以提高机器学习模型的性能。
03 自动模型与超参学习
在文中介绍的自动模型与超参数学习技术中,包括了贝叶斯优化(Bayesian Optimization,BO)、强化学习(Reinforcement Learning,RL)、进化算法(Evolutionary Algorithm,EA)和基于梯度的方法(Gradient-based Approaches)。下面将详细介绍各类方法的算法原理。
贝叶斯优化(BO)的算法原理
贝叶斯优化是一种用于优化黑盒函数的方法,通常用于超参数优化。在AutoML中,贝叶斯优化被用于自动选择机器学习模型的超参数,以优化模型的性能。
1. 高斯过程(Gaussian Process):贝叶斯优化使用高斯过程来建模目标函数(即机器学习模型的性能)。高斯过程是一种用于建模随机变量之间关系的方法,它可以提供对目标函数的不确定性估计。
2. 先验和后验:在贝叶斯优化中,高斯过程用于建立目标函数的先验分布。随着不断观察目标函数的输出,高斯过程会更新为后验分布,从而提供对目标函数的更准确的估计。
3. 采样策略:贝叶斯优化使用一种称为“采样策略”的方法来选择下一个超参数配置以评估。这个策略通常是基于高斯过程的不确定性和已经观察到的超参数配置的性能来进行选择,以便在未来能够更好地探索和利用超参数空间。
强化学习(RL)的算法原理
前文已介绍,不再赘述
进化算法(EA)的算法原理
前文已介绍,不再赘述。
基于梯度的方法的算法原理
基于梯度的方法通常用于优化连续可微函数,包括神经网络的训练和优化。
1. 梯度下降:基于梯度的方法通常使用梯度下降算法来最小化目标函数。梯度下降算法沿着目标函数的梯度方向更新参数,以使目标函数值逐渐减小。
2. 自适应方法:一些基于梯度的方法,如Adam和RMSprop,使用自适应学习率来调整每个参数的学习率,以便更有效地优化目标函数。
3. 反向传播:在神经网络训练中,基于梯度的方法通常与反向传播算法结合使用,通过计算目标函数对每个参数的梯度,然后反向传播梯度来更新网络参数。
这些方法在AutoML中被用于自动搜索最佳的模型结构、超参数配置或特征工程方法,以优化机器学习模型的性能。通过不断地探索和优化,AutoML可以自动发现和构建对机器学习模型具有预测能力的特征和模型结构。
04 自动深度学习
自动深度学习(AutoDL)是自动机器学习(AutoML)的一个子领域,旨在自动设计神经网络架构并选择其超参数,以实现对验证集上性能最佳的泛化性能。
整体搜索空间
在AutoDL中,搜索空间通常包括以下选择:
1. 层操作:例如感知器、卷积和最大池化等。
2. 层超参数:例如隐藏单元的数量、滤波器的数量和步幅大小等。
3. 跳跃连接:用于构建残差网络等。
整体网络搜索空间
在整体网络搜索空间中,搜索的目标是构建整个神经网络架构。
基于单元的搜索空间
在基于单元的搜索空间中,搜索的目标是设计重复单元(正常单元和缩减单元),然后通过堆叠这些单元来构建整个神经网络架构。
主流搜索技术
以下是针对这些搜索空间的主流搜索技术的算法原理:
基于贝叶斯优化的方法
贝叶斯优化是一种用于优化黑盒函数的方法,通常用于优化超参数。
强化学习
在整体网络搜索空间中,强化学习被用于训练智能体来选择整个神经网络架构的超参数配置。
进化算法
进化算法被用于搜索整个神经网络架构的超参数配置。
基于梯度的方法
基于梯度的方法通常用于优化神经网络的参数,包括在整体网络搜索空间和基于单元的搜索空间中。
这些搜索技术被用于自动搜索最佳的神经网络架构和超参数配置,以实现最佳的泛化性能。通过不断地探索和优化,AutoDL可以自动发现和构建对机器学习模型具有预测能力的神经网络架构。
如下是三个核心技术的常用方法对比。
05 AutoML框架
自动机器学习(AutoML)框架是用于自动化机器学习流程的工具集合,旨在帮助用户自动化特征工程、模型选择、超参数优化和神经网络架构设计等任务。以下是文中介绍的一些AutoML框架的详细介绍:
自动特征工程框架
1. FeatureTools:这是一个开源框架,使用Python编写,可以从关系型数据集中自动生成特征。它通过对任意两个实体之间的关系进行特征转换操作,如平均值和计数等,来生成特征。
2. AutoCross:这是由4Paradigm提供的特征交叉工具,可以自动捕捉分类特征之间的交互关系。它使用波束搜索来生成候选特征。
自动模型和超参数学习框架
开源框架
Hyperopt:这是一个用于超参数优化的开源框架,使用贝叶斯优化来调整学习模型的超参数。
SMAC:Sequential Model-based Algorithm Configuration(SMAC)是一个用于超参数优化的工具,它使用序贯模型优化算法配置来调整学习模型的超参数。
Auto-Sklearn:这是一个基于SMAC的开源框架,使用元学习和集成学习来自动化机器学习流程。
TPOT:这是一个非常流行的AutoML工具,使用遗传编程来优化机器学习流水线。
H2O:H2O是一个用Java编写的开源机器学习平台,提供了通过随机搜索、网格搜索和贝叶斯优化来优化超参数,并构建堆叠集成模型的解决方案。
企业框架
Google HyperTune:谷歌提供的云服务,可以通过网格搜索、随机搜索、TPE等方法来调整机器学习模型的超参数。
Amazon Automatic Model Tuning:亚马逊提供的云服务,可以使用贝叶斯优化来优化机器学习模型的超参数。
Microsoft Azure AutoML:微软提供的自动机器学习服务,使用协同过滤和贝叶斯优化来搜索最佳的机器学习流水线。
DarwinML:由Intelligence Qubic提供的自动机器学习平台,使用遗传编程来构建机器学习流水线的任意架构。
自动深度学习框架
Auto-Keras:这是一个使用Keras编写的开源项目,用于搜索深度网络架构。它采用贝叶斯优化和网络形态学来搜索整个任意的神经网络架
构,而不仅仅是单元网络架构。
AdaNet:这是另一个使用Tensorflow的开源项目,用于自动学习网络架构并构建网络集成以获得更好的模型。
企业框架
Google Cloud AutoML:这是一个基于NAS的服务,用户可以通过上传标记的数据集来获取定制的模型,无需编写任何代码。
Neural Network Intelligence (NNI):这是微软提供的开源工具包,用于神经网络架构搜索和超参数调优。它支持各种搜索技术,如进化算法和网络形态学,以调整网络架构,并在本地或云服务器上提供灵活的执行环境。
这些AutoML框架提供了自动化机器学习流程的各种功能,包括特征工程、模型选择、超参数优化和神经网络架构设计。它们的目标是帮助用户在不需要太多手动干预的情况下,自动发现高性能的机器学习解决方案。
AutoML框架列表
06 挑战
挑战部分主要涉及AutoML领域面临的一些挑战和问题。以下是对文中提到的挑战的详细介绍:
标准化协议和基准测试
AutoML领域缺乏权威的基准测试和标准化协议,这些协议可以规范数据集、搜索空间和训练设置,以便对AutoML方法进行比较。缺乏这样的基准测试使得很难比较各种AutoML技术的有效性和效率。
效率
AutoML方法的效率是成功采用的关键因素。一些AutoML方法只需要较短的时间来生成解决方案,而另一些方法则需要大量的计算资源和时间。尽管提出了一些加速技术来减少时间,但AutoML的效率仍然是一个开放的问题。
搜索空间设计
设计合适的搜索空间对于AutoML至关重要,需要结合人类专业知识,考虑搜索空间的大小和所有有用的可能性之间的权衡。例如,对于AutoDL,采用基于单元网络块的搜索空间,而不是整个网络架构,这对AutoML的性能有很大影响。
可解释性和用户交互
AutoML方法通常是一个黑盒过程,缺乏可解释性和用户交互。通过提供友好的用户界面和可解释的分析,用户可以选择独立运行之间的理想配置,从而增加AutoML的实用性和能力。
领域合作
大多数AutoML工作都集中在传统的回归和分类问题上,特别是AutoDL的实证结果主要来自CIFAR-10的图像分类。然而,其他潜在领域的优化设置或多或少与传统的AutoML有所不同。AutoML与多个潜在应用领域的合作可能成为另一个有前途的研究方向。
这些挑战和问题表明,尽管AutoML在自动化机器学习方面取得了很大进展,但仍然存在许多需要解决的问题和改进的空间。解决这些挑战将有助于提高AutoML方法的效率、可用性和适用性。
07 总结
本文介绍了AutoML的发展和技术,包括自动特征工程、自动模型和超参数学习以及自动深度学习。它还讨论了代表性的AutoML框架和AutoML面临的挑战。这篇文章为AutoML的研究和实践提供了全面的概述和洞察。
AutoML是一个自动发现机器学习解决方案的端到端过程,可以加速将机器学习应用于特定领域问题的过程。
本文提供了AutoML的新视角,通过将其分为AutoFE、AutoMHL和AutoDL,并介绍了主流的AutoML技术和选定的AutoML框架。
相关阅读: