AutoML

转自: https://zhuanlan.zhihu.com/p/48642938

今天刚刚看到在arXiv上出现了一篇关于AutoML的比较全面的综述,于是赶紧略读了一下,第一时间做个简要的分享。论文地址:https://arxiv.org/abs/1810.13306 。

这是一篇来自第四范式(4Paradigm)公司的关于AutoML的综述文章。第四范式是目前国内关于AutoML研究较早较深入的公司之一。AutoML全称是Automated Machine Learning,是2014年以来,机器学习和深度学习领域最炙手可热的领域之一。本篇综述文章系统地对AutoML领域给出了综述,从出现原因、问题定义、问题构成、基本策略、高级策略、应用、及总结等方面进行了全面的介绍。下面是一些简要的笔记。

AutoML出现原因

机器学习的应用需要大量的人工干预,这些人工干预表现在:特征提取、模型选择、参数调节等机器学习的各个方面。AutoML视图将这些与特征、模型、优化、评价有关的重要步骤进行自动化地学习,使得机器学习模型无需人工干预即可被应用。

AutoML问题定义

作者从机器学习和自动化两个角度给出了定义: - 从机器学习角度讲,AutoML可以看作是一个在给定数据和任务上学习和泛化能力非常强大的系统。但是它强调必须非常容易使用。 - 从自动化角度讲,AutoML则可以看作是设计一系列高级的控制系统去操作机器学习模型,使得模型可以自动化地学习到合适的参数和配置而无需人工干预。

一个通用的AutoML定义如下:

 

 

AutoML的核心任务:

  • Better performance
  • No human assistance
  • Lower computation budgets

AutoML问题构成

AutoML的主要问题可以由三部分构成:特征工程、模型选择、算法选择。

特征工程

特征工程在机器学习中有着举足轻重的作用。在AutoML中,自动特征工程的目的是自动地发掘并构造相关的特征,使得模型可以有最优的表现。除此之外,还包含一些特定的特征增强方法,例如特征选择、特征降维、特征生成、以及特征编码等。这些步骤目前来说都没有达到自动化的阶段。

上述这些步骤也伴随着一定的参数搜索空间。第一种搜索空间是方法自带的,例如PCA自带降维参数需要调整。第二种是特征生成时会将搜索空间扩大。

模型选择

模型选择包括两个步骤:选择一个模型,设定它的参数。相应地,AutoML的目的就是自动选择出一个最合适的模型,并且能够设定好它的最优参数。

算法选择

对于算法选择,AutoML的目的是自动地选择出一个优化算法,以便能够达到效率和精度的平衡。常用的优化方法有SGD、L-BFGS、GD等。使用哪个优化算法、对应优化算法的配置,也需要一组搜索空间。

从全局看

将以上三个关键步骤整合起来看,一个完整的AutoML过程可以分成这么两类:一类是将以上的三个步骤整合成一个完整的pipeline;另一类则是network architecture search,能够自动地学习到最优的网络结构。在学习的过程中,对以上三个问题都进行一些优化。

基本的优化策略

一旦搜索空间确定,我们便可以实用优化器(optimizer)进行优化。这里,AutoML主要回答三个问题: - 选择的优化器可以作用在哪个搜索空间上? - 它需要什么样的反馈? - 为了取得一个好的效果,它需要怎样的配置?

简单的优化搜索方式包括grid search和random search。其中grid search被广泛使用。

从样本中进行优化的方法主要包括启发式搜索、derivative-free优化、以及强化学习方法。梯度下降法是一种重要的优化策略。

评价策略

基本评价策略

在设计评价策略时,AutoML主要回答三个问题: - 这种策略能能够快速进行评价吗? - 这种策略能够提供准确的评价吗? - 这种策略需要怎样的反馈?

基本的评价策略包括: - 直接评价。直接在目标数据上进行评价。这是被使用最多的策略。 - 采样。当数据样本量非常大时,采样一些样本进行评价。 - Early stop。当遇到一些极端情况使得网络表现效果不好时,可以考虑进行early stop。 - 参数重用。将之前学习过的参数重复利用在新任务上。这在两种任务配置差不多时可用。 - 共轭评价。对于一些可量化的配置,可以用共轭评价法进行。

高级评价策略

高级评价策略主要包括两种:meta-learning和transfer learning。

  • Meta-learning法。从先前的学习经验中提炼出基本的参数和结构配置。
  • Transfer learning法。从先前的学习经验中提炼出可以重用的一些知识。

应用

  • 使用Auto-sklearn进行模型选择。
  • 使用强化学习进行neural architecture search。
  • 使用ExploreKit进行自动特征构建。

展望

未来可能的研究方向:

  • 提高AutoML的效率。
  • 更明确的问题定义。
  • 发展基本和高级的搜索策略。
  • 找到更适合的应用。
课程设计报告:总体方案设计说明 一、软件开发环境配置 本系统采用C++作为核心编程语言,结合Qt 5.12.7框架进行图形用户界面开发。数据库管理系统选用MySQL,用于存储用户数据与小精灵信息。集成开发环境为Qt Creator,操作系统平台为Windows 10。 二、窗口界面架构设计 系统界面由多个功能模块构成,各模块职责明确,具体如下: 1. 起始界面模块(Widget) 作为应用程序的入口界面,提供初始导航功能。 2. 身份验证模块(Login) 负责处理用户登录与账户注册流程,实现身份认证机制。 3. 游戏主大厅模块(Lobby) 作为用户登录后的核心交互区域,集成各项功能入口。 4. 资源管理模块(BagWidget) 展示用户持有的全部小精灵资产,提供可视化资源管理界面。 5. 精灵详情模块(SpiritInfo) 呈现选定小精灵的完整属性数据与状态信息。 6. 用户名录模块(UserList) 系统内所有注册用户的基本信息列表展示界面。 7. 个人资料模块(UserInfo) 显示当前用户的详细账户资料与历史数据统计。 8. 服务器精灵选择模块(Choose) 对战准备阶段,从服务器可用精灵池中选取参战单位的专用界面。 9. 玩家精灵选择模块(Choose2) 对战准备阶段,从玩家自有精灵库中筛选参战单位的操作界面。 10. 对战演算模块(FightWidget) 实时模拟精灵对战过程,动态呈现战斗动画与状态变化。 11. 对战结算模块(ResultWidget) 对战结束后,系统生成并展示战斗结果报告与数据统计。 各模块通过统一的事件驱动机制实现数据通信与状态同步,确保系统功能的连贯性与数据一致性。界面布局遵循模块化设计原则,采用响应式视觉方案适配不同显示环境。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
D3.js作为一种基于JavaScript的数据可视化框架,通过数据驱动的方式实现对网页元素的动态控制,广泛应用于网络结构的图形化呈现。在交互式网络拓扑可视化应用中,该框架展现出卓越的适应性与功能性,能够有效处理各类复杂网络数据的视觉表达需求。 网络拓扑可视化工具借助D3.js展示节点间的关联结构。其中,节点对应于网络实体,连线则表征实体间的交互关系。这种视觉呈现模式有助于用户迅速把握网络整体架构。当数据发生变化时,D3.js支持采用动态布局策略重新计算节点分布,从而保持信息呈现的清晰度与逻辑性。 网络状态监测界面是该工具的另一个关键组成部分,能够持续反映各连接通道的运行指标,包括传输速度、响应时间及带宽利用率等参数。通过对这些指标的持续追踪,用户可以及时评估网络性能状况并采取相应优化措施。 实时数据流处理机制是提升可视化动态效果的核心技术。D3.js凭借其高效的数据绑定特性,将连续更新的数据流同步映射至图形界面。这种即时渲染方式不仅提升了数据处理效率,同时改善了用户交互体验,确保用户始终获取最新的网络状态信息。 分层拓扑展示功能通过多级视图呈现网络的层次化特征。用户既可纵览全局网络架构,也能聚焦特定层级进行细致观察。各层级视图支持展开或收起操作,便于用户开展针对性的结构分析。 可视化样式定制系统使用户能够根据实际需求调整拓扑图的视觉表现。从色彩搭配、节点造型到整体布局,所有视觉元素均可进行个性化设置,以实现最优的信息传达效果。 支持拖拽与缩放操作的交互设计显著提升了工具的使用便利性。用户通过简单的视图操控即可快速浏览不同尺度的网络结构,这一功能降低了复杂网络系统的认知门槛,使可视化工具更具实用价值。 综上所述,基于D3.js开发的交互式网络拓扑可视化系统,整合了结构展示、动态布局、状态监控、实时数据处理、分层呈现及个性化配置等多重功能,形成了一套完整的网络管理解决方案。该系统不仅协助用户高效管理网络资源,还能提供持续的状态监测与深度分析能力,在网络运维领域具有重要应用价值。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
03-27
### AutoML 的定义及其在机器学习中的应用 AutoML自动化机器学习(Automated Machine Learning)的缩写,它旨在减少人工干预的需求,通过自动完成数据预处理、特征工程、模型选择以及超参数优化等一系列复杂的流程来简化构建高效机器学习模型的过程[^1]。 #### 自动化过程的关键组成部分 以下是 AutoML 中涉及的主要功能模块: - **数据清洗与预处理**:此阶段会自动检测并填补缺失值、标准化数值范围或转换类别型变量为可计算形式。 - **特征提取与选择**:利用算法识别哪些输入属性最能影响预测目标,并去除冗余特性以提高效率和准确性。 - **模型架构设计**:探索不同类型的神经网络或其他统计学框架的最佳组合方式。 - **超参调优**:采用贝叶斯优化等技术寻找最优配置设置,从而提升最终性能表现。 #### 使用 AutoML 工具的方法概述 对于初学者来说,在 Python 环境下可以借助 Google 开发的 TensorFlow Extended (TFX),H2O.ai 提供的服务或者 Microsoft Azure ML Studio 这样的平台快速上手实践项目案例。下面给出一段基于 H2O AutoML 库实现二分类问题解决思路的例子: ```python import h2o from h2o.automl import H2OAutoML # 初始化连接到集群节点 h2o.init() # 加载训练集测试集合文件路径分别为 train_path 和 test_path train = h2o.import_file(train_path) test = h2o.import_file(test_path) # 设置响应列名称假设这里叫 'target' x = train.columns y = "target" x.remove(y) # 实例化一个默认最大运行时间为30秒的小规模实验对象 aml = H2OAutoML(max_runtime_secs=30, seed=1) aml.train(x=x, y=y, training_frame=train) # 获取最佳单一模型实例 best_model = aml.leaderboard[0] # 对新样本做出推断操作 predictions = best_model.predict(test) print(predictions) ``` 上述脚本展示了如何简便地启动一次完整的建模周期而无需深入理解底层细节即可获得不错的结果质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值