Auto ML的概念很广很深,本篇文章旨在概念上的一些理解。
 
我们之前谈过一个模型从幕后走向台前是有很多的工作要做的,AutoML的最初目标正如其名字是想自动化这个过程。实际上有很多人讨论到AutoML的时候也是停留在这个级别。
一个机器学习的pipeline可以大致分为feature选择,算法选择, hyperparameter(超参数)优化,模型训练和模型评估。根据自动化的范围,把AutoML分成了几个级别。比如说,
初级的AutoML可以自动做hyperparameter优化+模型训练
中级的AutoML在初级的基础上还可以自动选择算法
高级的AutoML可以自动选择feature,有人说,AutoML出来的模型如果可以和kaggle的top几相当就基本成功了。
对于AutoML的使用者来说,就是给我数据,我就给你最优模型。
AutoML的本意也是能够推广机器学习,即使你不懂机器学习,只要你有数据,用AutoML, 你就可以轻松得到好模型。
 
 
如果把AutoML只是automation的话,可以自动化的东西全部自动化了就好了,本文可以结束了。
 
事实上的情况要复杂很多。当大家照着这个过程来做自动化的时候会发现,这个傻傻的自动化过程实在太不有效了。比如说hyperparameter都过一遍,那一个算法的计算量被重复了n次,n就是超参数的组合可能数,如果一个算法稍微复杂一点,被这么一乘,结果相当可观。比如说一个深度模型算法原来只需要一天,n是10,那就变成10天了,更何况超参数的组合可不是10这个数量级的。
选择算法也一样,不可能去遍历。
 
因此我们就有了meta-learning这个概念。meta-learning的主要目的就是如何有效的选择超参数和算法。而理论背景也可以说参考了人类是怎么学习的。
之前我们在transfer learning一文中提到,为什么即使是小朋友也可以做到one-shot learning,来推导出机器也可以像人类一样用已有的知识做基础,要学的新知识只是一种叠加,并不是从零学起,所以学得快。
 
而meta learning是什么呢?meta learning是说人可以从学习过程中掌握学习方法,然后用最有效的学习方法来学习新的内容。也就是我们经常说的learn to learn。transfer learning可以说是meta learning的一个特列。其实这个intuition也是很强的。在机器学习过程当中,机器学会了学习方法,当有一组新的学习任务来临的时候,机器通过之前的经验,来选择合适的算法和超参数,把要学习的内容从盲目的全遍历缩小到一个有效的学习空间。
 
一个meta-learning的简单实现例子是,如果一个新的任务的数据和之前执行过的学习任务数据类似,那用于之前任务的超参数和算法也适用于这个新任务。在推荐引擎算法中,其实也用到类似技术。如果一个新用户的profile和已知用户的profile类似,那么已知用户感兴趣的内容也适用于新用户。那要处理的一个重要问题是cold start。
 
 
当提到learn to learn的时候大家可能会很惊恐AGI的到来。(AGI: artificial general intelligence). 虽然AGI需要learn to learn,但这里的learn to learn还是针对某个学习范畴,离general还是有很远很远的路要走。
 
需要知道的是,meta-learning目前并不是靠一个特别先进的新框架新算法来解决所有问题,还是要拆分到各个环节上来。比如说超参数的优化是一大块,神经网络的选择是一大块。
 
谷歌,微软,亚马逊等这些cloud提供商们纷纷都在推广自己的AutoML, 但是技术方面确是各有各的侧重点。
 
推荐一些最近读过的相关文章:
希望不久后,我们一起来讨论learn to learn的细节。
 
关注作者微信公众号,阅读大数据和机器学习的更多原创文章。
 
 
 
 
  

浅谈AutoML的更多相关文章

  1. 浅谈 Fragment 生命周期

    版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. Fragment 是在 Android 3.0 中 ...

  2. 浅谈 LayoutInflater

    浅谈 LayoutInflater 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/View 文中如有纰漏,欢迎大家留言指出. 在 Android 的 ...

  3. 浅谈Java的throw与throws

    转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...

  4. 浅谈SQL注入风险 - 一个Login拿下Server

    前两天,带着学生们学习了简单的ASP.NET MVC,通过ADO.NET方式连接数据库,实现增删改查. 可能有一部分学生提前预习过,在我写登录SQL的时候,他们鄙视我说:“老师你这SQL有注入,随便都 ...

  5. 浅谈WebService的版本兼容性设计

    在现在大型的项目或者软件开发中,一般都会有很多种终端, PC端比如Winform.WebForm,移动端,比如各种Native客户端(iOS, Android, WP),Html5等,我们要满足以上所 ...

  6. 浅谈angular2+ionic2

    浅谈angular2+ionic2   前言: 不要用angular的语法去写angular2,有人说二者就像Java和JavaScript的区别.   1. 项目所用:angular2+ionic2 ...

  7. iOS开发之浅谈MVVM的架构设计与团队协作

    今天写这篇博客是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇博客的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦 ...

  8. Linux特殊符号浅谈

    Linux特殊字符浅谈 我们经常跟键盘上面那些特殊符号比如(?.!.~...)打交道,其实在Linux有其独特的含义,大致可以分为三类:Linux特殊符号.通配符.正则表达式. Linux特殊符号又可 ...

  9. 浅谈Angular的 $q, defer, promise

    浅谈Angular的 $q, defer, promise 时间 2016-01-13 00:28:00  博客园-原创精华区 原文  http://www.cnblogs.com/big-snow/ ...

随机推荐

  1. Python学习手册(第4版)PDF高清完整版免费下载|百度云盘

    Python学习手册(第4版)PDF高清完整版免费下载|百度云盘 提取码:z6il 内容简介 Google和YouTube由于Python的高可适应性.易于维护以及适合于快速开发而采用它.如果你想要编 ...

  2. Jquery日历编写小练习

    日历练习 总体效果展示: 代码展示: 源代码部分 <body> <!-- 日历--> <div class="div_sty"> <tab ...

  3. PHP array_replace() 函数

    实例 使用第二个数组($a2)的值替换第一个数组($a1)的值: <?php$a1=array("red","green");$a2=array(&quo ...

  4. PHP next() 函数

    实例 输出数组中的当前元素和下一个元素的值: <?php$people = array("Peter", "Joe", "Glenn" ...

  5. P2569 [SCOI2010]股票交易 dp 单调队列优化

    LINK:股票交易 题目确实不算难 但是坑点挺多 关于初值的处理问题我就wa了两次. 所以来谢罪. 由于在手中的邮票的数量存在限制 且每次买入卖出也有限制. 必然要多开一维来存每天的邮票数量. 那么容 ...

  6. 4.15 省选模拟赛 编码 trie树 前缀和优化建图 2-sat

    好题 np. 对于20分 显然可以爆搜. 对于50分 可以发现每个字符串上的问号要么是0,要么是1.考虑枚举一个字符串当前是0还是1 这会和其他字符串产生矛盾. 所以容易 发现这是一个2-sat问题. ...

  7. 3.深入k8s:Deployment控制器

    Deployment可以做到很便捷的管理Pod,只需要在Deployment中描述一下希望的Pod状态时什么,包括定义Pod副本数.滚动升级和回滚应用.扩容和缩容.暂停和继续Deployment等,然 ...

  8. Docker学习日记-安装Docker

    Docker是什么: 简单理解就是基于go语言开发的开源的应用容器引擎. 对进程进行封装隔离,属于操作系统层面的虚拟化技术. Docker的优势: 1.更高效的利用系统资源 2.更快速的启动时间 3. ...

  9. python数据处理PDF高清电子书

    点击获取提取码:jzgv 内容简介 本书采用基于项目的方法,介绍用Python完成数据获取.数据清洗.数据探索.数据呈现.数据规模化和自动化的过程.主要内容包括:Python基础知识,如何从CSV.E ...

  10. 不要再问我MVC、MVP、MVVM了

    网络上有很多类似的讨论.包括一些大v,比如 阮一峰:MVC,MVP 和 MVVM 的图示 廖雪峰:MVVM 司徒正美: 各自用一句话来概括MVC.MVP.MVVM的差异特点 ... 但是说的往往比较概 ...