AutoML—降低机器学习门槛的利器

2018 年 1 月 29 日 深度学习 Frankie Gu

很多初入机器学习的人会执泥于看论文和数学公式去理解背后的原理,可是绝大部分人这么干之后,不出几日就会没有继续深入的欲望了。我的建议是去看代码,知道如何实现了,通过现象看本质,很快就能明白原理是什么,跟上面的方法是殊途同归的,但是缺点是你理解的东西很难让别人也明白。这就是为啥我曾经在讲座上讲的东西,自认为很简单的东西,听的人就是听不懂。



闲言少叙,书归正传,今天给大家讲的是自动学习机AutoML。

本人是程序员出身,做过跟机器学习、深度学习相关的大大小小的项目也不下十个了,发现一个有趣的现象,不管是图像识别、语音识别还是机器翻译的项目结构差别是很小的,但是一个效果好的模型却需要大量的经验来调优。实现过程有以下步骤:

数据预处理

特性选择

模型算法选择

调参

上线后模型的再优化

效果评估

为了让机器学习模型的设计变得更加简单,我们希望能让这一过程自动化。谷歌团队在这方面做不少尝试,他们将AutoML应用于深度学习的两大数据集中,专注图像识别的 CIFAR-10 与语言建模的 Penn Treebank。在两个数据集上,系统自行设计的模型性能表现与目前机器学习专家所设计的领先模型不相上下。他们的实现方式是,使用一个控制器神经网络生成一个子模型架构,然后在特定的任务中对其进行训练和评估。然后,该反馈被用来通知控制器作出改进下一轮的提案。我们重复这个过程数千次——生成新的架构,测试它们,并将反馈给控制器来学习。



至于某些媒体上宣传的《谷歌发布“AutoML”新技术人工智能可自我创造》,我只能呵呵了,想象力真好!AutoML主要完成的功能有两个,一是模型/算法选择,二是模型超参数优化。

涉及的方法有:

贝叶斯优化

结构化数据和超大数据的逻辑回归

元学习

迁移学习

组合优化

整体过程:

1、元学习的热启动:在机器学习框架中寻找效果好的算法;计算不同数据集之间的相似度,相似的数据可以采取类似的超参数。

2、超参数优化,算法包括:Hyperopt(TPE 算法);SMAC(基于随机森林);Spearmint。输入不同的超参数为,以损失函数为准确率,调优器会在随机选择一些值的基础上,利用贪心算法去寻优。



AutoML的开源实现地址:

automl

tpot

auto_ml是Githut上为数不多的为生产环境设计的代码,包含三个极优秀的开源框架:XGBoost,TensorFlow和LightGBM。可用于分类和预测任务,单次预测仅需1毫秒,支持序列化导出模型到本地。仅需几行代码即可构建一个回归模型:

from auto_mlimport Predictor

fromauto_ml.utils import get_boston_dataset

fromauto_ml.utils_models import load_ml_model

# Load data

df_train,df_test = get_boston_dataset()

# Tell auto_mlwhich column is 'output'

# Also notecolumns that aren't purely numerical

# Examplesinclude ['nlp', 'date', 'categorical', 'ignore']

column_descriptions= {

'MEDV': 'output' ,

'CHAS': 'categorical'

}

ml_predictor =Predictor(type_of_estimator='regressor',column_descriptions=column_descriptions)

ml_predictor.train(df_train)

# Score themodel on test data

test_score =ml_predictor.score(df_test, df_test.MEDV)

# auto_ml isspecifically tuned for running in production

# It can getpredictions on an individual row (passed in as a dictionary)

# A singleprediction like this takes ~1 millisecond

# Here we willdemonstrate saving the trained model, and loading it again

file_name =ml_predictor.save()

trained_model =load_ml_model(file_name)

# .predict and.predict_proba take in either:

# A pandasDataFrame

# A list ofdictionaries

# A singledictionary (optimized for speed in production evironments)

predictions =trained_model.predict(df_test)

print(predictions)

个人认为,AutoML才是真正的机器学习,它把经验性的工作自动化,现在的机器学习只是半成品。AutoML能极大地降低未来机器学习的门槛,将是普通人使用机器学习的利器。

出处:作者古筱凡,知乎:中谷视觉。

登录查看更多
8

相关内容

【干货书】机器学习Python实战教程,366页pdf
专知会员服务
340+阅读 · 2020年3月17日
Sklearn 与 TensorFlow 机器学习实用指南,385页pdf
专知会员服务
129+阅读 · 2020年3月15日
【新书】Pro 机器学习算法Python实现,379页pdf
专知会员服务
199+阅读 · 2020年2月11日
阿里巴巴达摩院发布「2020十大科技趋势」
专知会员服务
106+阅读 · 2020年1月2日
【强化学习】深度强化学习初学者指南
专知会员服务
179+阅读 · 2019年12月14日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
概述自动机器学习(AutoML)
人工智能学家
19+阅读 · 2019年8月11日
Auto-Keras与AutoML:入门指南
云栖社区
16+阅读 · 2019年2月9日
告别调参,AutoML新书发布
THU数据派
9+阅读 · 2018年10月20日
干货 | AutoML 和神经架构搜索初探
AI科技评论
3+阅读 · 2018年8月1日
AutoML 和神经架构搜索初探
雷锋网
5+阅读 · 2018年8月1日
比xgboost强大的LightGBM:调参指南(带贝叶斯优化代码)
数据挖掘入门与实战
23+阅读 · 2018年4月9日
【机器学习】推荐13个机器学习框架
产业智能官
8+阅读 · 2017年9月10日
Transfer Adaptation Learning: A Decade Survey
Arxiv
37+阅读 · 2019年3月12日
Arxiv
18+阅读 · 2019年1月16日
Adaptive Neural Trees
Arxiv
4+阅读 · 2018年12月10日
Arxiv
5+阅读 · 2018年9月11日
Phrase-Based & Neural Unsupervised Machine Translation
Arxiv
6+阅读 · 2018年1月11日
VIP会员
相关VIP内容
【干货书】机器学习Python实战教程,366页pdf
专知会员服务
340+阅读 · 2020年3月17日
Sklearn 与 TensorFlow 机器学习实用指南,385页pdf
专知会员服务
129+阅读 · 2020年3月15日
【新书】Pro 机器学习算法Python实现,379页pdf
专知会员服务
199+阅读 · 2020年2月11日
阿里巴巴达摩院发布「2020十大科技趋势」
专知会员服务
106+阅读 · 2020年1月2日
【强化学习】深度强化学习初学者指南
专知会员服务
179+阅读 · 2019年12月14日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
相关资讯
概述自动机器学习(AutoML)
人工智能学家
19+阅读 · 2019年8月11日
Auto-Keras与AutoML:入门指南
云栖社区
16+阅读 · 2019年2月9日
告别调参,AutoML新书发布
THU数据派
9+阅读 · 2018年10月20日
干货 | AutoML 和神经架构搜索初探
AI科技评论
3+阅读 · 2018年8月1日
AutoML 和神经架构搜索初探
雷锋网
5+阅读 · 2018年8月1日
比xgboost强大的LightGBM:调参指南(带贝叶斯优化代码)
数据挖掘入门与实战
23+阅读 · 2018年4月9日
【机器学习】推荐13个机器学习框架
产业智能官
8+阅读 · 2017年9月10日
相关论文
Top
微信扫码咨询专知VIP会员