【全自动机器学习】ML 工程师屠龙利器,一键接收训练好的模型

某日出差,在出租上闲来无事和司机闲聊,告知其本人专业是人工智能,司机师傅顿时打开了话匣子:人工智能我知道,那个 AlphaGo 下围棋没有人能下得过它,吧啦吧啦吧啦......某次乘地铁,听见地铁上三五青年大谈深度神经网络。似乎一夜之间,机器学习飞入寻常百姓家,大有全民机器学习之势。

然而,若在街上拉住一位大爷说:我们来讨论一下 SVM 的机制吧,大爷必然挣脱开来大吼:不要耽误我买菜!机器学习算法纷繁复杂,No free lunch 理论告诉我们,每一个模型都有其偏好,对待不同的学习任务,都需用不同的模型来解决。一个算法工程师可能需要多年的修炼,才能熟练掌握各个算法的特性,在处理问题时,仍然需要使用各种 tricks,花费大量时间去调整模型,以求达到最好的效果。

计算机科学工作者本着能让计算机干就不要人费劲的原则,自然不能忍受这种重复繁琐的劳动。因此,自动机器学习(Automatic Machine Learning, AutoML)应运而生,它能自动完成算法和超参的选择。对于机器学习工程师来说,AutoML 能将他们从重复劳动中解脱出来;对于机器学习菜鸟来说,再也不用担心所选的模型不 work、超参不收敛,所需要做的只是接收训练好的模型。

AutoML 如同倚天剑屠龙刀一般,使机器学习工程师功力大增,但这样一件利器在不久之前似乎知晓的人并不多,2017 年 5 月 18 日,谷歌开发者大会(I/O)以“学会学习”(learning to learn)为口号,才将 AutoML 推到更多人的视野中来。其实,自动调参的工作早在 20 世纪末 21 世纪初就已经出现,每年的机器学习和人工智能的各大顶会上也频繁出现 AutoML 的身影。自 2014 年起,每年来自德国弗莱堡大学的 ML4AAD(Machine Learning for Automatic Algorithm Design)小组,均会在机器学习顶级会议 ICML 上组织 AutoML 的 workshop,这是来自全球的 AutoML 工作者集中交流的舞台。近年,谷歌、MIT 等世界知名企业高校也纷纷发表文章,加入到此领域中。

既然 AutoML 发展了多年,也不能光打雷不下雨,AutoML 的产品早已上线,auto-weka[1](2013年)、auto-sklearn[2](2015年) 是其中的代表,这两个工具均是 ML4AAD 组的产品。此小组的 leader 是 Frank Hutter 博士,此人博士期间的研究方向即是 AutoML,但是大多成果均和自动超参选择有关,博士毕业后转战贝叶斯优化领域,为 SMAC 算法的主要作者,之后成功的将贝叶斯优化技术应用在 AutoML 领域,不断推出成熟的 AutoML 产品,可谓根正苗红。

本文就按时间为顺序,以成果为线索,分别对 auto-weka、auto-sklearn 这两大自动机器学习工具,以及谷歌大脑和 MIT 在今年 ICLR 上发表的工作进行介绍。其中,详细介绍 auto-weka、auto-sklearn 和谷歌大脑的工作,简略介绍 MIT 的工作。

从非梯度优化算法走向全自动机器学习,以及 Auto-WEKA:帮你选择分类器的分类器

贝叶斯优化是非梯度优化的代表,因为不需要知道梯度信息,也不需要优化问题,具有良好的数学性质,所以适用范围比梯度优化更加广泛,常常被用来求解复杂的优化问题。

贝叶斯优化与 autoML 的两大工具 auto-weka、auto-sklearn 有着密不可分的关系。机器学习能自动化的原因在于其算法过程遵循固定的步骤,一般来说为数据处理、特征选择、模型选择和超参优化。Auto-weka 和 auto-sklearn 中,便将机器学习过程归约成了算法选择和超参优化(Combined Algorithm Selection and Hyper-parameter optimization,CASH)问题。

图1:auto-weka 算法选择树状图

CASH 用一个树形结构(如图1 所示)刻画机器学习中算法选择和超参设置的步骤,每一种算法的组合和超参的选择对应为一个采样,用 k 折交叉验证的错误率作为评价指标。SMAC 是基于随机森林的贝叶斯优化算法,结构和优化设置上均契合 CASH 问题,当仁不让的肩负起优化 CASH 的责任。SMAC 也出色地完成了这一任务,在ChaLearn AutoML challenge 竞赛中,auto-sklearn 分别获得了 auto 单元与 tweakathon tracks 单元的冠军。

Auto-weka 和 auto-sklearn 分别对应了 java 和 python 环境,两者的调用也十分简单,如图 2、3 所示。Auto-weka 有可视化界面,只需轻点鼠标就能完成训练工作,auto-sklearn 也仅需数行代码便可构建可用的模型。操作如此简单,还不用担心训练后的模型不 work,是不是很值得上手试验一番?

图2:auto-weka 可视化界面

图3:auto-sklearn 调用代码

AutoML 新方向:谷歌、MIT 用强化学习自动生成 CNN、RNN 等架构

将 AutoML 归约成一个优化问题,然后用非梯度优化算法直接求解,是通向自动机器学习的一种思路。ICLR 2017上谷歌大脑的工作“Neural Architecture Search with Reinforcement Learning”[3]结合深度学习和强化学习,给我们提供了另外一种解决此问题的方法。

1. 谷歌大脑:用强化学习生成子网络

在谷歌大脑的工作中,待生成的神经网络被称为子网络,子网络中每一层的结构被看作是时间序列上某一个时刻的输出结果,这样一个 controller(用一个 RNN 网络来表示),就可以用来生成子网络每一层上的结构(图4 所示),子网络训练后在验证集上的准确率作为该子网络的评价。

于是,问题就转化为优化 controller 的权重,使其能生成子网络的准确率尽可能大。但是,优化 controller 权重时梯度无法直接获得,此时需要借助强化学习方法获得梯度。如果将 controller 对每一层的结构预测视为一个动作,这样准确率就可以视为一组动作之后的奖赏值,可用 REINFORCE 规则估计出 controller 的梯度,用于更新权重生成下一个子网络。

图4:controller 生成子网络示意图

值得注意的是,每个子网络训练的计算开销都十分巨大,此工作中采用了异步并行的方法加速子网络的训练,这样就大大增加了对计算资源的需求,在 CIFAR-10 上生成 CNN 结构的实验中,谷歌大脑便使用了 800 个 GPU 来完成训练工作。在实验中,此方法被用来自动生成 CNN、RNN 等网络结构,生成的网络泛化能力与人工设计的网络结构相当,但是规模要略小于人工网络,说明了方法的有效性。

同时,此方法在生成子网络时需要预先设定好网络的深度(controller 的步数),而且每一层中结构也是从预先给定的候选结构中选择,所以欠缺了生成网络的灵活度。

2. MIT:用 Q-learning 生成 CNN 

无独有偶,同在 ICLR 2017 上 MIT 的研究者,在“Designing Neural Network Architectures using Reinforcement Learning” [4]中,也利用强化学习技术自动生成了 CNN 结构。

图5:用 Q-learning 生成 CNN 示意图

此工作也是通过逐层生成的方式得到网络结构,与谷歌大脑不同的是,在此工作中,将前一层的网络结构视为一个状态,将预测下一层的结构视为一个动作,将网络在验证数据集上的准确率视为奖赏值,用 Q-learning 的方法不断完善 Q 函数,最终给出验证正确率高的动作预测,生成泛化性能好的网络结构。

让机器学会学习,让机器学习工程师更有价值

诸如 Auto-sklearn 的工具数年前就已经问世,但却没有被机器学习科学家广泛使用,其中一个原因是,模型的好坏很大程度取决于训练模型之前对数据的清洗工作。正如 Keras 之父 Francois Chollet 所说:“数据清洗工作很难自动进行,它通常需要专业领域的知识以及对工程师想要实现的工作有明确且高度的理解。”

因此,即使在算法和超参选择上做得足够出色,AutoML 工具得到的还仅是一个好的模型,并非足够好的模型。自然,这样的结果是不能令精益求精的机器学习科学家满意的。深度网络的出现改变了这一现象,谷歌大脑在其 ICLR 2017 论文中指出:“深度网络已经成功将机器学习范式从特征设计转向网络结构设计。”

摆脱了数据清洗的困扰,AutoML 似乎能在其擅长的结构搜索上挣脱束缚,大放异彩。其实不然,AutoML 的搜索依赖于对网络结构或算法组合的评价,当前的大部分工作中均将 k 折交叉验证错误率作为评价准则,结构和算法稍作改变均要重新训练,时间和计算开销十分巨大,导致搜索不够彻底,也会影响 AutoML 的效果,以至于谷歌大脑在其工作中“大动干戈”,使用了 800 个 GPU 完成加速模型训练工作。如何在模型发生变化时消除计算冗余,高效地得到模型的评价指标,也是 AutoML 亟待解决的问题。

AutoML目前面临诸多困难,但是随着 GPU 的大规模使用,新一代计算设备 TPU 的出现,硬件性能大幅增长,在技术上,深度学习的成熟和强化学习的发展也为 AutoML 注入了新活力。

让机器学会学习才是 AutoML 的终极目标,每向此目标靠近一步,均是机器学习技术的突破。一旦困难得以解决,AutoML 的实现将解放广大机器学习工程师的劳动力,大幅降低机器学习的门槛。但是如 Francois Chollet 所说,“机器学习工程师的工作不会消失,相反,工程师将在价值链上走高”,这也是 AutoML 魅力所在,它体现了机器学习工程师的价值,这点也吸引着工程师们为之不断奋斗。 

文章转自新智元公众号,原文链接

时间: 2024-08-24 10:14:07

【全自动机器学习】ML 工程师屠龙利器,一键接收训练好的模型的相关文章

《Puppet权威指南》——第1章 运维工程师的利器——自动化运维工具

第1章 运维工程师的利器--自动化运维工具 随着网络云时代和大数据时代的到来,运维工程师负责管理的服务器数量也成倍地增长.如何管理好这些服务器为云时代和大数据时代保驾护航,是摆在运维工程师面前的一道难题.而解决这道难题就需要运维工程师对自动化运维工具的掌握达到一定的程度.笔者希望通过本章抛砖引玉,结合自己的经验介绍多年来使用自动化运维工具的心得和体会.本章首先介绍互联网运维工程师的职责.优秀运维工程师和普通运维工程师的区别:然后简要介绍常见的自动化运维工具:最后比较当前常见的自动化运维工具的优势

阿里推出微博营销利器 一键营销

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 随着微博的推出,很多企业都在尝试新的营销方式,如很多企业都开了企业微博,开展企业的微博营销之路,然而最近阿里巴巴针对3688元版本的诚信通会员推出一种微博营销推广利器"一键营销".通过这个"一键营销"可以把产品信息同时发送到您家的多个微博渠道;同时,通过兴趣匹配与优惠激励调动采购商家转发分享,真正达到病

摩根大通机器学习与金融大数据指南——未来的华尔街大亨|大数据+机器学习+金融工程师

更多深度文章,请关注:https://yq.aliyun.com/cloud 金融服务工作流行得快.过时得也快.2001年互联网公司的股权研究风靡一时:2006年,对担保债务凭证(CDOs)有着偏爱:2010年,信贷交易商很受欢迎:2014年,又轮到了合规专家:而在2017年,这是关于机器学习和大数据的时代,如果你能涉足该领域,那么你的未来将会有所保证. 摩根(J.P.Morgan)的定量投资和衍生策略团队发布了关于金融服务领域大数据和机器学习的最全面的报告,报告称,"大数据和人工智能(AI)战

机器学习规则:ML工程最佳实践----rules_of_ml section 1【翻译】

作者:黄永刚 机器学习规则:ML工程最佳实践 本文旨在指引具有机器学习基础知识的工程师等人,更好的从机器学习的实践中收益.介绍一些应用机器学习需要遵循的规则,类似于Google C++ 风格指南等流行的编程指南.如果你已经上过机器学习相关课程或者正在从事相关的工作,那你已经满足阅读本文所需的背景知识了. Before Machine Learning Rule: #1: 不要害怕开发没有应用机器学习技术的产品 Rule: #2: 设计评价指标并设立优先级 Rule: #3: 先使用复杂的启发式规

确定不收藏?十张机器学习和深度学习工程师必备速查表!

本文讲的是十张机器学习和深度学习工程师必备速查表,对于初学者,机器学习和深度学习课程会很困难,此外各类深度学习库也十分难理解.我在Github上创建了一个本地库(https://github.com/kailashahirwar/cheatsheets-ai ),里面包含了从不同渠道收集的速查表,可以直接下载.尽管拿去用吧,同时欢迎补充完善! 1. Keras Karas是Theano和TensorFlow平台上一款强大易用的深度学习库.它为发展和训练深度学习模型提供高阶神经网络API接口. 来

一文读懂机器学习,大数据/自然语言处理/算法全有了……

作者:计算机的潜意识 在本篇文章中,我将对机器学习做个概要的介绍.本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践.这篇文档也算是EasyPR开发的番外篇,从这里开始,必须对机器学习了解才能进一步介绍EasyPR的内核.当然,本文也面对一般读者,不会对阅读有相关的前提要求. 在进入正题前,我想读者心中可能会有一个疑惑:机器学习有什么重要性,以至于要阅读完这篇非常长的文章呢? 我并不直接回答这个问题前.相反,我想请大家看两张图,下图是图一: 图1 机器学习界的执牛耳者

机器学习,因为难,所以有兴趣---史上最强----机器学习经典总结---入门必读----心血总结-----回味无穷(转)

http://www.cnblogs.com/hellochennan/p/5423740.html 让我们从机器学习谈起 导读:在本篇文章中,将对机器学习做个概要的介绍.本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践.当然,本文也面对一般读者,不会对阅读有相关的前提要求.   在进入正题前,我想读者心中可能会有一个疑惑:机器学习有什么重要性,以至于要阅读完这篇非常长的文章呢?   我并不直接回答这个问题前.相反,我想请大家看两张图,下图是图一: 图1 机器学习界

转载:从机器学习谈起

在本篇文章中,我将对机器学习做个概要的介绍.本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践.这篇文档也算是EasyPR开发的番外篇,从这里开始,必须对机器学习了解才能进一步介绍EasyPR的内核.当然,本文也面对一般读者,不会对阅读有相关的前提要求. 在进入正题前,我想读者心中可能会有一个疑惑:机器学习有什么重要性,以至于要阅读完这篇非常长的文章呢? 我并不直接回答这个问题前.相反,我想请大家看两张图,下图是图一:  图1 机器学习界的执牛耳者与互联网界的大鳄的联

大数据与机器学习 2016年中盘点

本文将分以下几个部分进行盘点. 一.里程碑事件 二.开源项目(国际篇) 三.业界动态(国际篇) 四.开源项目(国内篇) 五.业界动态(国内篇) 六.下半年展望 七.周报集锦 里程碑事件 Hadoop 10岁了! Hadoop诞生10年了.2006年1月28日,Doug Cutting和Mike Cafarella从他们的开源网络爬虫项目(Apache Nutch)中分离出分布式文件系统以及MapReduce设施,把它当作一个子项目,并称其为Hadoop.Doug Cutting发表了 Apach