自动机器学习(AutoML)
不再需要苦恼于学习各种机器学习的算法
目录:
一、为什么需要自动机器学习
二、超参数优化 Hyper-parameter Optimization
三、元学习 Meta Learning
四、神经网络架构搜索 Neural Architecture Search
五、自动化特征工程
六、其它自动机器学习工具集

一、为什么需要自动机器学习
对于机器学习的新用户而言,使用机器学习算法的一个主要的障碍就是算法的性能受许多的设计决策影响。随着深度学习的流行,工程师需要选择相应的神经网络架构,训练过程,正则化方法,超参数等等,所有的这些都对算法的性能有很大的影响。于是深度学习工程师也被戏称为调参工程师。
自动机器学习(AutoML)的目标就是使用自动化的数据驱动方式来做出上述的决策。用户只要提供数据,自动机器学习系统自动的决定最佳的方案。领域专家不再需要苦恼于学习各种机器学习的算法。
自动机器学习不光包括大家熟知的算法选择,超参数优化,和神经网络架构搜索,还覆盖机器学习工作流的每一步:
• 自动准备数据
• 自动特征选择
• 自动选择算法
• 超参数优化
• 自动流水线/工作流构建
• 神经网络架构搜索
• 自动模型选择和集成学习
二、超参数优化Hyper-parameter Optimization
学习器模型中一般有两类参数,一类是可以从数据中学习估计得到,还有一类参数时无法从数据中估计,只能靠人的经验进行设计指定,后者成为超参数。比如,支持向量机里面的C Kernal Gamma;朴素贝叶斯里面的alpha等。
超参数优化有很多方法:
最常见的类型是黑盒优化 (black-box function optimization)。所谓黑盒优化,就是将决策网络当作是一个黑盒来进行优化,仅关心输入和输出,而忽略其内部机制。决策网络通常是可以参数化的,这时候进行优化首先要考虑的是收敛性。
以下的几类方法都是属于黑盒优化:
• 网格搜索 (grid search)
Grid search大家都应该比较熟悉,是一种通过遍历给定的参数组合来优化模型表现的方法。网格搜索的问题是很容易发生维度灾难,优点是很容易并行。
• 随机搜索 (random search)
随机搜索是利用随机数求极小点而求得函数近似的最优解的方法。
很多时候,随机搜索比网格搜索效果要更好,但是可以从上图看出,都不能保证找到最优解。
• 贝叶斯优化(http://t.cn/EfRNqz8)
贝叶斯优化是一种迭代的优化算法,包含两个主要的元素,输入数据假设的模型和一个采集函数用来来决定下一步要评估哪一个点。每一步迭代,都使用所有的观测数据fit模型,然后利用激活函数预测模型的概率分布,决定如何利用参数点,权衡是Explaoration还是Exploitation。相对于其它的黑盒优化算法,激活函数的计算量要少很多,这也是为什么贝叶斯优化被认为是更好的超参数调优的算法。
黑盒优化的一些工具:
• hyperopt(http://t.cn/RyJDbzH)
hyperopt 是一个Python库,可以用来寻找实数,离散值,条件维度等搜索空间的最佳值
• Google Vizier
Google的内部的机器学习系统 Google Vizier能够利用迁移学习等技术自动优化其它机器学习系统的超参数
• advisor(http://t.cn/RpTEMhK)
Google Vizier的开源实现
• katib (http://t.cn/EvQJWbq)
基于Kubernetes的超参数优化工具
由于优化目标具有不连续、不可导等数学性质,所以一些搜索和非梯度优化算法被用来求解该问题,包括上面提到的这些黑盒算法。此类算法通过采样和对采样的评价进行搜索,往往需要大量对采样的评价才能获得比较好的结果。然而,在自动机器学习任务中评价往往通过 k 折交叉验证获得,在大数据集的机器学习任务上,获得一个评价的时间代价巨大。这也影响了优化算法在自动机器学习问题上的效果。所以一些减少评价代价的方法被提出来,其中多保真度优化(multi-fidelity methods)就是其中的一种。这里的技术包括:基于学习曲线来决定是否要提前终止训练,探索-利用困境(exploration exploitation)的多臂算法 (Multi-armed bandit)(http://t.cn/R5AMrlH)等等。
另外还有一些研究是基于梯度下降的优化。
超参数优化面临许多挑战:
• 对于大规模的模型或者复杂的机器学习流水线而言,需要评估的空间规模非常大
• 配置空间很复杂
• 无法或者很难利用损失函数的梯度变化
• 训练集合的规模太小
• 很容易过拟合
相关参考
http://t.cn/EfRTKmq
http://t.cn/EfRTmLa
http://t.cn/EfRHzrV
http://t.cn/RM7FoqC
http://t.cn/RdEUPtd
http://t.cn/EfRQwnA
http://t.cn/EfRQio5
http://t.cn/EfR8vzx
三、元学习 Meta Learning
元学习也就是"学习如何学习",通过对现有的学习任务之间的性能差异进行系统的观测,然后学习已有的经验和元数据,用于更好的执行新的学习任务。这样做可以极大的改进机器学习流水线或者神经网络架构的设计,也可以用数据驱动的方式取代手工作坊似的算法工程工作。
从某种意义上来说,元学习覆盖了超参数优化,因为元数据的学习包含了:超参数,流水线的构成,神经网络架构,模型构成,元特征等等。
机器学习的算法又称为‘学习器’,学习器就是假定一个模型,该模型拥有很多未知参数,利用训练数据和优化算法来找到最适合这些训练数据的参数,生成一个新的算法,或者参数已知的模型,并利用该模型/算法来预测新的未知数据。如果说世界上只有一个模型,那么问题就简单了,问题是模型有很多,不同的模型拥有不同的超参数,往往还会把模型和算法组装在一起构成复合模型和机器学习的流水线,这个时候,就需要知道解决不同的问题要构建那些不同的模型。元学习就在这个时候,可以把超参数,流水线,神经网络架构这些都看成是一个新的模型的未知参数,把不同学习任务的性能指标看成是输入数据,这样就可以利用优化算法来找到性能最好的那组参数。这个模式可以一直嵌套,也就是说,可以有‘元元元学习‘,当然希望不要走得太远,找不到回来的路。
元学习的方法包括:
• 通过模型评估来学习
• 通过任务的属性,元特征来学习
以下列出了一些常见的元特征
• 从现有的模型中学习,包括:迁移学习;利用RNN在学习过程中修改自己的权重
元学习的一个很大的挑战就是如果通过很少的训练数据来学习一个复杂的模型,这就是one-shot(http://t.cn/EfRmJZp)或者few-shot的问题。
像人类的学习一样,每次学习无论成功失败,都收获一定的经验,人类很少从头学习。在构建自动学习的时候,也应该充分利用已有的每一次的学习经验,逐步的改进,使得新的学习更加有效。
相关参考:
http://t.cn/EfRuJPM
http://t.cn/EyEri3B
http://t.cn/EfR1Iek
四、神经网络架构搜索Neural Architecture Search
提起AutoML,其实大多数人都是因为Google的AutoML系统才知道这个故事的。随着深度学习的流行,神经网络的架构变得越来越复杂,越来越多的手工工程也随之而来。神经网络架构搜索就是为了解决这个问题。
NAS主要包含三个部分:
• 搜索空间 search space
• 搜索策略 search strategy
• 性能估计策略 performance estimation strategy
相关参考
http://t.cn/EfRD7WS
五、自动化特征工程
自动化特征工程可以帮助数据科学家基于数据集自动创建能够最好的用于训练的特征。
Featuretools(http://t.cn/Rl9tYUT)是一个开源库,用来实现自动化特征工程。它是一个很好的工具,旨在加快特征生成的过程,从而让大家有更多的时间专注于构建机器学习模型的其它方面。换句话说,使的数据处于“等待机器学习”的状态。
Featuretools程序包中的三个主要组件:
• 实体(Entities)
• 深度特征综合(Deep Feature Synthesis ,DFS)
• 特征基元(Feature primitives)
一个Entity可以视作是一个Pandas的数据框的表示,多个实体的集合称为Entityset。
深度特征综合(DFS)与深度学习无关,不用担心。实际上,DFS是一种特征工程方法,Featuretools的主干。支持从单个或者多个数据框中构造新特征。
DFS通过将特征基元应用于Entityset的实体关系来构造新特征。这些特征基元是手动生成特征时常用的方法。例如,基元“mean”将在聚合级别上找到变量的平均值。
相关参考
http://t.cn/EfRs7O2
http://t.cn/EfRsias
六、其它自动机器学习工具集
以下列出一些开源的自动机器学习工具空大家参考、选择
• Auto-Sklearn (http://t.cn/EfEPf5H)
• AutoKeras(http://t.cn/RDVQhH4)
• TPOT(http://t.cn/EfEPsHl)
• H2O AutoML (http://t.cn/EfE2fKw)
• Python auto_ml(http://t.cn/Ri1Ch74)

自动机器学习(AutoML)相关推荐

  1. 【机器学习】盘点常见的自动机器学习(AutoML)工具库

    本文总结了常见的AutoML库,可供大家选择. LightAutoML 项目链接:https://github.com/sberbank-ai-lab/LightAutoML 推荐指数:⭐⭐⭐ Lig ...

  2. 自动机器学习AutoML

    [研究背景]随着深度神经网络的不断发展,各种模型和新颖模块的不断发明利用,人们逐渐意识到开发一种新的神经网络结构越来越费时费力,为什么不让机器自己在不断的学习过程中创造出新的神经网络呢? 正是出于这个 ...

  3. 开源自动机器学习(AutoML)框架盘点

    开发十年,就只剩下这套Java开发体系了 >>>    自从Google推出了能自动设计神经网络自我进化的AutoML论文后,我便开始持续关注这个领域 到目前为止,从网上显示的信息来 ...

  4. 轻松玩转自动机器学习AutoML:H2O Flow

    想想我们每次创建机器学习模型时,编写多行代码是不是很累!虽然这里给大家总结了一个建立机器学习模型的万能模版,但还是累啊! 有没有想过,如果我们可以通过鼠标点击来构建机器学习模型会变得多么容易和高效?H ...

  5. 自动机器学习大师班:15个项目

    Automated Machine Learning Masterclass: 15 (AutoML) Projects 使用自动ML解决数据科学问题,学会使用评估ML,Pycaret,Auto Ke ...

  6. 【赠书】快速入门自动机器学习!自动机器学习(AutoML):方法、系统与挑战 图书赠送!...

    周末了,这次给大家赠送3本机器学习好书,<自动机器学习(AutoML):方法.系统与挑战>,请看细节. 这是一本什么书 这是一本全面介绍自动机器学习的好书,主要包含自动机器学习的方法.实际 ...

  7. 一文讲解自动机器学习(AutoML)!

    Datawhale 作者:瞿晓阳,AutoML书籍作者 寄语:让计算机自己去学习和训练规则,是否能达到更好的效果呢?自动机器学习就是答案,也就是所谓"AI的AI",让AI去学习AI ...

  8. 文末送书 | 自动机器学习(AutoML):方法、系统与挑战

    OPENNING 最新上架 近十年来,不管是机器学习相关的应用还是研究,都迎来了爆发式增长.尤其是深度学习,使得很多应用领域都取得了关键性突破,如计算机视觉.语音处理和游戏. 然而,多数机器学习方法的 ...

  9. 【值得读】自动机器学习: 最新进展综述与开放挑战 | AutoML

    今天,你AI了没? 关注:决策智能与机器学习,学点AI干货 [导读]自动机器学习是当前学术工业界的热点.最近来自塔尔图大学Radwa Elshawi等的学者撰写了关于自动机器学习的进展综述,包括自动机 ...

最新文章

  1. 盘点|最实用的机器学习算法优缺点分析,没有比这篇说得更好了
  2. 【干货】这10个Liunx命令能提高50%的工作效率
  3. 找不到redis得pid文件_电脑提示Windows找不到文件?试试这两个技巧,轻松解决!...
  4. jqGrid 常用方法
  5. 宠物次元经济专题分析2020
  6. SAP HANA如何在存储过程中使用自定义的table type
  7. jquery remove()不兼容问题解决方案
  8. 浅谈.net事件机制
  9. 南开大学提出新物体分割评价指标,相比经典指标错误率降低 69.23%
  10. HMM-MEMM-CRF
  11. Linux下Hadoop分布式系统配置
  12. vue-cli设置proxy代理
  13. 使用opencv转化图片格式
  14. php融云开源sdk使用im,开源项目索引
  15. Ubuntu20.04安装搜狗拼音
  16. switch vba_VBA switch
  17. HRBUSTOJ 1313 火影忍者之~静音 【模拟】【排序】
  18. Transfer Learning - Overview(详细讲解)
  19. LINUX下用户和组的操作与相关的配置文件
  20. MAC Vmware FUSION网络配置

热门文章

  1. 2022-2028年中国抗盐粘土行业发展现状调查及前景战略分析报告
  2. 2022-2028年中国辉石行业市场全景调查及发展前景分析报告
  3. 常用的高性能 KV 存储 Redis、Memcached、etcd、Zookeeper 区别
  4. Docker使用遇到问题Got permission denied while trying to connect to the Docker daemon socket解决方案
  5. RabbitMQ超详细安装教程(Linux)
  6. linux C++打包程序总结
  7. BAD SLAM:捆绑束调整直接RGB-D SLAM
  8. 客快物流大数据项目(六十二):主题及指标开发
  9. 2021年大数据Hadoop(十五):Hadoop的联邦机制 Federation
  10. 2021年大数据Hadoop(八):HDFS的Shell命令行使用