AI平台-AutoSKlearn【AutoML】

简介: Auto-sklean 是基于Auto-Weka(https://www.automl.org/automl/autoweka/)使用的 CASH(组合算法选择和超参数优化)问题的定义以及和 AzureAutomated ML 相同的思路构建的:他们考虑同时选择一个学习算法和设置其超参数的问题。

1. AutoSKlearn是什么?

传统的机器学习任务从开始到建模的一般流程是:获取数据 -> 数据预处理 -> 训练建模 -> 模型评估 -> 预测,分类。本文我们将依据传统机器学习的流程,看看在每一步流程中都有哪些常用的函数以及它们的用法是怎么样的。希望你看完这篇文章可以最为快速的开始你的学习任务。
Autosklearn是Hutter等人设计的自动调参框架,其核心是使用SMAC算法,一种采用黑箱调优的算法,对超参进行迭代优化从而进一步选出能够使得在这种参数下,模型的某种指标最好的超参。为了更进一步高效地寻找到最有的超参,autosklearn还引入了metalearning等过程加速超参搜索。除了黑箱调优算法外,autosklearn还做了特征工程和数据工程,从而实现了部分的机器学习自动化。从使用者的角度看,在给定一个数据集和期盼最小化的指标(如auc,logloss等)的情况下,autosklearn完全可以出给适当的模型和对应的输入超参,使得对应的指标在指定数据集下最小。
Auto-sklean 是基于Auto-Weka(https://www.automl.org/automl/autoweka/)使用的 CASH(组合算法选择和超参数优化)问题的定义以及和 AzureAutomated ML 相同的思路构建的:他们考虑同时选择一个学习算法和设置其超参数的问题。他们提出的主要区别是将两个额外的步骤合并到主进程中:一开始是元学习步骤,最后是自动化集成构造步骤,详情请参阅论文《Efficient and Robust Automated Machine Learning》。

image
Aotusklearn在一定程度上满足了自动机器学习的要求。单纯就模型结果上看,即便输入给autosklearn的是一组没有经过很详细特征处理的数据集,输出结构都会比当前市场上的一些自动调优框架好。下图就是我们将一些数据集作为基准,使用autosklearn和当前市场上某款自动调优工具的效果对比,这两款产品使用了相同的时间资源并且指定了同一种模型。这里我们使用auc和logloss作为我们的目标指标。标黄的部分是对比优异的项。

这里我们可以看到,autosklearn在大多数数据集和目标指标上,都比市面上这款自动调优产品要好很多。那么autosklean到底做了那些操作,使得一个开源会比商业软件取得更好的结果呢?

整体上说,autosklearn的工作流程如下:

这里我们可以看到autosklearn除了迭代调整输入模型的超参之外,还迭代调整了输入模型所需要的数据处理方法和特征处理方法和参数。最终通过集成不同机器学习模型完成整个自动学习过程。下面我们就会具体讨论每个步骤到底做了些怎么样的操作。

Metalearning:

Metalearning操作的目的是为整个迭代选取一个接近收敛点的初值,从而加快SMAC算法的收敛速度。

在autosklearn中,作者将已有的metalearning数据库存入以下所示的文件夹中,每个文件夹内都存有指标+模型特征+任务类型所对应的超参初始值。这些初始值都是作者通过优化其他类似数据集后(其中可能是手动优化的结果)总结出来的数据库。通过选择与当前训练数据接近的先前的k个优化结果作为初始值,加入到SMAC算法中进行优化,进而加速SMAC收敛的速度。

Metalearning并不能从根本上提升SMAC算法所给出的最优点的性能。但是一个较好的初始值可以大大加快SMAC找到最优点的速度。从而减少时间资源的消耗。同时,当所给时间不足时,autosklearn会直接给出metalearning的值,这个值虽然不是SMAC能给出最好的结果,但是依旧是一个效果不错的超参选择。

数据预处理和特征预处理:

根们我们已有的经验可以看出,数据预处理和特征预处理对于最后结果来说至关重要。很多kaggle竞赛的核心步骤的大部分时间都花在了分析数据,预处理数据集和特征预处理上。如果不经过相关的数据预处理,特征预处理,即便是SMAC算法也难以找到一个可以使得指标很低的超参和模型。

在数据预处理方面SMAC算法主要做了如下四种预处理:

其中balance操作只对特定的one_hot编码选项有效。

在特征预处理方面,SMAC最多做了如下记住特征预处理:

其中除了标红的kernel_pca, kitchen_sinks和nystroem_sampler以外,所有其他特征预处理只对multinomial_nb模型有效。

由此可见,实际上autosklearn并没有对数据集做什么“专业级”的预处理,比如分析数据产生新特征等等。但是autosklearn不同的是他将每种预处理方法的不同参数也带入smac中进行调优,从而充分利用了每种预处理带来的性能提升,从而得到了比市场上大多数自动调优框架更好的结果。

SMAC:

SMAC算法是一种强大的黑箱条又算法,如果单讲SMAC算法可以另起一个主题进行分析。这里考虑到这篇文章的目的是分享autosklearn做了些什么操作,而不是分解每个操作的具体步骤。因此这里只简单体描述一下SMAC算法的流程。

SMAC是SMBO算法的一种算法。SMBO算法的每个迭代步可以分为如下的步骤:1.依据历史信息构造(超参,性能)的性能函数,2.依照性能函数,选取最有可能是最小值的超参,并将这个点对应性能算出。3.将新的(超参,性能)加入历史信息中,进行重复的迭代。

将SMBO算法实例化到SMAC算法,所对应的是则是:1.性能模型是随机森林的高斯过程模型。2.通过局部搜索和全局的随即选点,算出多个最有可能达到最小值的点进行进一步筛选。3.筛选点的过程是一个bandit问题,这里SMAC算法通过intensify过程使用经可能少的资源找到最有超参。

集成模型:

集成模型步是整个Autosklearn除去训练模型外,几乎唯一的多线程部分。除此之外,autosklearn都处在单线程的运转状态。

Autosklearn的集成模型方法使用了Rich Caruana在04年icml上所提出的集成模型方法,具体操作如下:

1.选取一张50个空白项的表,其中表中的每一项权重为0.02。

2.从已有的多个模型中选取一个可以提升表性能的模型加入到表中或替换性能不佳的模型。

3.重复第二步直到达到最大的迭代步骤。

4.将表中相同模型的权重累加得到此模型在集成模型中的权重。

2. autosklearn特点:

auto-sklearnAutoML 方法

该方法使用了全部 38 个元特征来描述数据集,包括简单的、信息论的和统计的元特征,如数据点的数量、特征和分类,以及数据偏度和目标的熵。利用这些信息,他们会选择 k 个采样点作为贝叶斯优化的初始采样点(seed)。注意,这种元学习方法通过使用数据集存储库来获得强大的功能(就像 Azure Automated ML 那样)。

在完成贝叶斯优化之后,它们会构建一个由所有尝试过的模型组成的集成模型。这一步的思路是将训练每个模型所做的努力都存储下来。他们没有抛弃这些模型而选择更好的模型,而是将它们存储起来,最终构建出一个它们的集成模型。这种自动集成构造方法避免了让自己陷入单个超参数的设置中,因此鲁棒性更强(并且不容易过拟合)。他们使用集成选择(这个贪婪过程从空集成开始,迭代地添加能够最大化集成验证性能的模型)来构建集成模型。
AutoSKlearn效果好的原因:

  1. autosklearn通过metalearning在较短时间内找到了相对较好的配置,并以此为基准进行迭代容易超过很多现有工具和平台。
  2. 尽管特征工程和数据预处理方法相对简单,但是每个处理的参数都带入了SMAC整个迭代中进行参数调优,从而将每个简单的处理效果发挥到了极致。

3. 参考资料

  1. 论文《Efficient and Robust Automated Machine Learning》
目录
相关文章
|
3月前
|
人工智能 运维 监控
首个云上 AI 原生全栈可观测平台来了!
9月21日,2024 云栖大会,阿里云发布全新的 AI 原生全栈可观测平台,首次实现云上 AI 大模型从训练到推理再到应用的全链路实时观测、告警与诊断。
215 11
|
10天前
|
人工智能 数据可视化 JavaScript
NodeTool:AI 工作流可视化构建器,通过拖放节点设计复杂的工作流,集成 OpenAI 等多个平台
NodeTool 是一个开源的 AI 工作流可视化构建器,通过拖放节点的方式设计复杂的工作流,无需编码即可快速原型设计和测试。它支持本地 GPU 运行 AI 模型,并与 Hugging Face、OpenAI 等平台集成,提供模型访问能力。
73 14
NodeTool:AI 工作流可视化构建器,通过拖放节点设计复杂的工作流,集成 OpenAI 等多个平台
|
24天前
|
人工智能 自然语言处理 前端开发
Lobe Vidol:AI数字人交互平台,可与虚拟人和3D模型聊天互动
Lobe Vidol是一款开源的AI数字人交互平台,允许用户创建和互动自己的虚拟偶像。该平台提供流畅的对话体验、丰富的动作姿势库、优雅的用户界面设计以及多种技术支持,如文本到语音和语音到文本技术。Lobe Vidol适用于娱乐互动、在线教育、客户服务、品牌营销和社交媒体等多个应用场景。
86 7
Lobe Vidol:AI数字人交互平台,可与虚拟人和3D模型聊天互动
|
1月前
|
存储 人工智能 弹性计算
阿里云弹性计算(ECS)提供强大的AI工作负载平台,支持灵活的资源配置与高性能计算,适用于AI训练与推理
阿里云弹性计算(ECS)提供强大的AI工作负载平台,支持灵活的资源配置与高性能计算,适用于AI训练与推理。通过合理优化资源分配、利用自动伸缩及高效数据管理,ECS能显著提升AI系统的性能与效率,降低运营成本,助力科研与企业用户在AI领域取得突破。
51 6
|
1月前
|
人工智能 供应链 安全
AI辅助安全测试案例某电商-供应链平台平台安全漏洞
【11月更文挑战第13天】该案例介绍了一家电商供应链平台如何利用AI技术进行全面的安全测试,包括网络、应用和数据安全层面,发现了多个潜在漏洞,并采取了有效的修复措施,提升了平台的整体安全性。
|
1月前
|
人工智能 Cloud Native 算法
|
1月前
|
存储 人工智能 文字识别
利用AI能力平台实现档案馆纸质文件的智能化数字处理
在传统档案馆中,纸质文件管理面临诸多挑战。AI能力平台利用OCR技术,通过图像扫描、预处理、边界检测、文字与图片分离、文字识别及结果存储等步骤,实现高效数字化转型,大幅提升档案处理效率和准确性。
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI驱动的个性化学习平台构建###
【10月更文挑战第29天】 本文将深入探讨如何利用人工智能技术,特别是机器学习与大数据分析,构建一个能够提供高度个性化学习体验的在线平台。我们将分析当前在线教育的挑战,提出通过智能算法实现内容定制、学习路径优化及实时反馈机制的技术方案,以期为不同背景和需求的学习者创造更加高效、互动的学习环境。 ###
75 3
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
医疗行业的语音识别技术解析:AI多模态能力平台的应用与架构
AI多模态能力平台通过语音识别技术,实现实时转录医患对话,自动生成结构化数据,提高医疗效率。平台具备强大的环境降噪、语音分离及自然语言处理能力,支持与医院系统无缝集成,广泛应用于门诊记录、多学科会诊和急诊场景,显著提升工作效率和数据准确性。
|
1月前
|
SQL 人工智能 DataWorks
DataWorks:新一代 Data+AI 数据开发与数据治理平台演进
本文介绍了阿里云 DataWorks 在 DA 数智大会 2024 上的最新进展,包括新一代智能数据开发平台 DataWorks Data Studio、全新升级的 DataWorks Copilot 智能助手、数据资产治理、全面云原生转型以及更开放的开发者体验。这些更新旨在提升数据开发和治理的效率,助力企业实现数据价值最大化和智能化转型。