专栏名称: 新智元
智能+中国主平台,致力于推动中国从互联网+迈向智能+新纪元。重点关注人工智能、机器人等前沿领域发展,关注人机融合、人工智能和机器人革命对人类社会与文明进化的影响,领航中国新智能时代。
目录
相关文章推荐
爱可可-爱生活  ·  【[252星]R1-Omni:首个将强化学习 ... ·  2 天前  
爱可可-爱生活  ·  【[157星]YOLOE:实时“看见”一切的 ... ·  2 天前  
爱可可-爱生活  ·  [LG]《Enhancing ... ·  3 天前  
爱可可-爱生活  ·  [LG]《What I cannot ... ·  3 天前  
51好读  ›  专栏  ›  新智元

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

新智元  · 公众号  · AI  · 2017-08-02 13:10

正文

1 新智元原创

作者 :胡毅奇,南京大学 LAMDA 研究所


【新智元导读】 机器学习系统有大量的超参数,在应用中需要依赖领域专家知识,并且有繁重的人工调参任务。现在,有一项工作希望让这些过程自动化,只需一个按钮,就能让你得到训练好的模型,这就是“自动机器学习”(autoML)。而自动机器学习的两大工具, Auto-weka 有可视化界面,只需轻点鼠标就能完成训练工作,auto-sklearn 也仅需数行代码便可构建可用的模型。操作如此简单,还不用担心训练后的模型不 work,是不是很值得上手试验一番?



某日出差,在出租上闲来无事和司机闲聊,告知其本人专业是人工智能,司机师傅顿时打开了话匣子:人工智能我知道,那个 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 的步数),而且每一层中结构也是从预先给定的候选结构中选择,所以欠缺了生成网络的灵活度。







请到「今天看啥」查看全文