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为什么这么火?里面肯定是有原因的

    因为人生苦短要用python啊! 看完本文,你将在结尾得到本文的一个福利彩蛋 你瞧瞧其他语言之父... Java之父——James Gosling PHP之父 ——Rasmus Lerdorf Obj ...

  2. Android实现EditText插入表情、超链接等格式

    参考:https://www.jianshu.com/p/84067ad289d2 参考:https://www.jianshu.com/p/d82ac2edc7e8

  3. c++输出左右对齐设置

    #include<iostream> int main(){ using std::cout; cout.setf(std::ios::left); int w = cout.width( ...

  4. Python for循环语句

    Python for 循环语句:遍历任何序列的项目,可以是字符串.列表.元组.字典.集合对象. 流程图: 第一种: ''' for 迭代对象 in 序列: 代码块(一行语句或多行代码) ''' 第二种 ...

  5. PHP __construct() 函数

    实例 函数创建一个新的 SimpleXMLElement 对象,然后输出 body 节点的内容:高佣联盟 www.cgewang.com <?php $note=<<<XML ...

  6. ajax模拟表单提交,后台使用npoi实现导入操作 方式一

    页面代码: <form id="form1" enctype="multipart/form-data"> <div style=" ...

  7. asp.net core 3.1 自定义中间件实现jwt token认证

    asp.net core 3.1 自定义中间件实现jwt token认证 话不多讲,也不知道咋讲!直接上代码 认证信息承载对象[user] /// <summary> /// 认证用户信息 ...

  8. BSGS 学习笔记

    问题:求$a^x\equiv b\ (mod\ p)$的最小正整数解. 这时候就要用到BSGS(拔山盖世)算法.直接进入正题: 设$x=im-n$, 则原式等于$a^{im-n}\equiv b\ ( ...

  9. 【SDOI2012】Longge 的问题 题解(欧拉函数)

    前言:还算比较简单的数学题,我这种数学蒟蒻也会做QAQ. --------------- 题意:求$\sum\limits_{i=1}^n gcd(i,n)$的值. 设$gcd(i,n)=d$,即$d ...

  10. Chrome自动格式化Json输出

    对JSON格式的内容进行浏览和编辑,以树形图样式展现JSON文档,并可实时编辑 安装 Chrome商店 https://chrome.google.com/webstore/detail/json-h ...