AutoML技术现状与未来展望
以下内容是对AutoML技术现状与未来展望讲座的总结。
1.机器学习定义
《西瓜书》中的直观定义是:利用经验来改善系统的性能。(这里的经验一般是指数据)
Mitchell在《Machine Learning》一书中的较为形式化的定义是一个程序通过给它一些数据,它能够提升在某个任务上的某种度量。(如下图示)
下图很清楚明了的展示了机器学习所做的事情,不再赘述。
2.AutoML技术回顾
很多时候在某一领域使用机器学习得到了效果很好的模型,但是若要在另一个领域使用该模型则不一定适用,而且通常需要大量的专业知识。正是由于受到这样的限制,所以才有了AutoML技术的发展。
2.1 AutoML研究的主要场景
2.1.1 静态闭环AutoML
a. 介绍
第一个场景是静态闭环AutoML,该场景是目前用的最多的场景。该场景是给定数据和度量标准之后,通过AutoML选择出效果最好的模型。该过程没有任何的人工干预,都是算法自动选择的。
下图展示了机器学习的基本流程图,可以看到主要有数据预处理、特征处理、模型训练等过程,并且每个过程都包含多种方法。
b. 存在的问题
而AutoML的本质工作是将各个过程的方法进行选择、组合、优化。
但是AutoML存在如下问题:
- 由于我们通常并不知道所优化的参数和预期效果之间是什么样的显示表达,所以 目标函数形式未知。
- 由于可能的组合方式太多,所以 搜索空间巨大
- 正是由于组合方式太多,而且每一个组合都需要从头做数据预处理,特征处理,模型训练等操作,所以 函数计算代价巨大。
c. 解决办法
- 1.基础搜索方法
该方法其实就是网格搜索,即将各种参数排列成矩阵的形式,然后使用 笛卡尔积(\(A×B = {(x,y)|x∈A∧y∈B}\)) 将所有的组合可能遍历一遍。
该方法有两个缺陷:
- 随着超参数的规模越来越大,组合的可能性会指数增加,从而导致计算量大大增加。
- 有的参数重要,但是有的并不重要,但是网格搜索会无差别组合,所以在不重要参数上浪费大量时间和计算资源。所以通常会采用随机搜索的方法来增加搜索效率,并且不会存在指数爆炸,组合爆炸的问题。
- 2.基于采样的方法
上面介绍的网格搜索和随机搜索实现起来简单,而且使用比较多,但是它们搜索起来比较盲目。
所以有了基于采样的方法以期望避免搜索盲目。
该方法是基于某种策略去产生一组可能的参数候选组合,然后对候选组合进行评估。评估之后我们可以得到反馈,基于这个反馈我们会进一步优化搜索策略,以此迭代去解决优化问题。
这样的一个优化过程是一个黑盒函数,学术界也叫做“零阶优化”,因为在这一过程中我们只能获取函数值,无法获取到它的导数信息。
具体的实现方法有如下四种:
- 1) 基于模型的零阶优化
如图示,该方法也是通过采样,评估,反馈等迭代操作来得到优化结果,包含两个重要部件:一是用什么样的模型,而是采用什么样的采样策略。
而常用的优化方法有两种:贝叶斯优化和 随机坐标收缩。
贝叶斯优化是被研究的最多的一种方法之一,而最常见的是采用高斯过程来建模。但是高斯过程在求解的时候需要一个三次方操作,所以当数据点特别多的时候计算效率是非常低下的。所以就有贝叶斯神经网络来解决复杂度问题。
另外,高斯过程要求参数必须是连续空间的,而且还有一些其他的限制,所以需要用到随机森林来解决参数类型受限问题。
对应的参数选择策略标准有:
- 选择概率提升较大的点
- 选择提升幅度大的点
- 通过交叉熵选择
- GP_UCB(不了解。。。)
贝叶斯模型存在一个致命的错误,那就是它依赖于很强的模型假设(表示我们对函数空间的认知)。
为了解决贝叶斯的缺点,有人提出可以通过分类的方式来解决,即将好的点和坏的点区分开来,而不是对模型进行假设,该方法就是随机坐标收缩(RACOS, RAndomized Coordinate Shrinking)。
该方法采用的模型是使用框将好的点选中,坏的点在框外。而框需要满足两个条件:一是尽可能的随机,而是框要尽可能的“瘦”,最瘦就是瘦成一条垂直于坐标轴的直线。
- 2) 局部搜索
该方法是指从一个点出发,在它的邻域内进行搜索。
最常见的局部搜索方法是 爬山法。即寻找可能性最大的一个方向后,往该方向前进。该方法能够收敛,但是可能会陷在局部最优解或者停在比较平的地方。
为了解决陷在局部最优问题,迭代式局部搜索应运而生。它的思想是在找到局部最优点后,对局部最优点有一些扰动,然后重新开始一轮局部搜索。
- 3) 启发式算法
该类方法相较于前两种缺乏坚实的理论支撑,主要是根据对生物,自然界的观察,去模拟一些生物或者自然现象,从而进行优化。
- 4) 强化学习
该方法是有一种杀鸡用牛刀的感觉,因为强化学习自身的优化就是一个比较大的问题。
- 3.基于梯度的方法
2.1.2 外部知识辅助AutoML
该场景其实也是静态场景,只不过该场景会从其他任务迁移一些已经做过的知识来作为辅助。
2.1.3 动态环境AutoML
上面两种场景都是静态场景,而现实应用中每天的数据都是不断产生的,任务度量也是不断变化的,所以就有了动态环境AutoML。
例如常见的推荐系统,每天有新用户注册,又有老用户离开。并且用户的喜好也不断发生变化,这就是典型的动态场景。
2.2 AutoML热点研究方向
AutoML热点研究方向主要有两个:效率和 泛化性
2.2.1 效率
常见的提高效率的方法有如下:
- 将串行的计算方式改成 同步并行或者 异步串行
- 提前停止模型训练,避免模型过拟合等现象的产生
- 使用预训练模型进行热启动
- 混合优化目标,即将计算代价和损失函数结合起来作为优化目标
2.2.2 泛化性
还有一个研究热点是训练模型的泛化性。因为机器学习的本质是希望所训练得到的模型能够对多个任务都有效,即在从未见过的样本上也能表现优秀。
- 评估
以基于采样的优化为例,假设我们通过采样得到了一些数据点,然后进行超参数评估。这个评估是怎么做的呢?
一般我们会从原数据集中选择一部分数据作为验证集,然后查看验证集的效果如何。但是这个验证集是否能代表未来的数据集呢?答案是不确定的。
所以有些工作就需要去研究怎么做更合理的评估。
我们知道AutoML是从众多模型中选择出在某一数据集上表现最好的一个作为最终的输出模型,那么这就意味着其他的模型都浪费掉了。那些模型虽然表现不是最好的,但是可能也不差,而且可能在其他数据集上表现会更好。所以我们可以试着做集成学习,以此来提高泛化性。
2.3 从理论角度看AutoML
世上没有免费的午餐。
有很多理论都证明不存在一种通用的算法能解决所有问题。
2.4 AutoML应用
视频中主讲人打了下广告,介绍了由第四范式主办的AutoML比赛。
3. AutoML未来展望
- 算法效率的提升
未来展望一个大方向是算法效率的提升。而算法效率又分为时间复杂度和样本复杂度。
时间复杂度很好理解,它主要是希望能够对全流程进行优化,如下图示,不再赘述。
样本复杂度则是指降低收集样本的成本等。因为收集高质量的有标签的样本是很昂贵而且很困难的,所以可行的办法是才用迁移学习来解决。周志华老师也提出了 学件的概念,即将以往训练的 模型和对该模型的 归约组合成学件,以供后续任务的使用。
- 算法
- AutoML理论
AutoML技术现状与未来展望的更多相关文章
- 第四范式涂威威:AutoML技术现状与未来展望
以下内容是对AutoML技术现状与未来展望讲座的总结. 1.机器学习定义 <西瓜书>中的直观定义是:利用经验来改善系统的性能.(这里的经验一般是指数据) Mitchell在<Mach ...
- 【转载】 AutoML技术现状与未来展望
原文地址: https://www.cnblogs.com/marsggbo/p/9309520.html ---------------------------------------------- ...
- 【转载】 第四范式涂威威:AutoML技术现状与未来展望
原文地址: https://www.jiqizhixin.com/articles/2018-07-12-17 -------------------------------------------- ...
- 2019年最值得关注的AI领域技术突破及未来展望
选自venturebeat 翻译:魔王.一鸣 前言 AI 领域最杰出的头脑如何总结 2019 年技术进展,又如何预测 2020 年发展趋势呢?本文介绍了 Soumith Chintala.Celest ...
- k8s极简史:K8s多集群技术发展的历史、现状与未来
引子 随着云原生技术的普及,越来越多的企业使用Kubernetes来管理应用,并且集群规模也呈爆发式增长,企业也亟需应对随集群规模增长而带来的各种挑战.同时,为了更好地提供高可用.弹性伸缩的应用,企业 ...
- 实录分享 | 计算未来轻沙龙:揭秘AutoML技术(视频 + PPT)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/c9Yv2cf9I06K2A9E/article/details/83542784 10 月 27 日 ...
- 十位一线专家分享Spark现状与未来----峰会摘录
CSDN大数据技术: 十位一线专家分享Spark现状与未来(一) 十位一线专家分享Spark现状与未来(二) 十位一线专家分享Spark现状与未来(三) 部分摘录: 加州大学伯克利分校AMP实验室博士 ...
- 【阿里云IoT+YF3300】1.时代大背景下的阿里云IoT物联网的现状和未来
“未来十到二十年,大家基本已经形成了一个共识,那便是新格局的奠定将由 AI 和物联网技术来支撑.放眼国内,在这些互联网巨头之中,未来真正成为竞争对手厮杀的,阿里和华为是首当其冲,在这两个领域双方分别暗 ...
- (函数即服务)Faas的现状与未来
刚看到jolestar一位从法律转行程序员的前辈写了一篇Faas现状与未来的文章,里面很多观点都很有启发,或许正如他说的那样,由于Faas能较好的解决资源利用率和开发效率问题,2018年Faas将变得 ...
随机推荐
- Luogu5055 【模板】可持久化文艺平衡树(fhq-treap)
注意下传标记时也需要新建节点.空间开的尽量大. #include<iostream> #include<cstdio> #include<cmath> #inclu ...
- MT【40】一道联赛二试题
让我通过这道题来演示如何利用切比雪夫多项式的内功心法: 评:如此大道至简,当年为之叫绝的精彩的做法
- OneProxy 管理
-----client-----------haproxy---------mysql1----------mysql2------192.168.1.250 192.168.1.1 192.168. ...
- 将一个字符串中的空格替换成“%20”(C、Python)
将一个字符串中的空格替换成“%20” C语言: /* ----------------------------------- 通过函数调用,传地址来操作字符串 1.先计算出替换后的字符串的长度 2.从 ...
- source insight的使用方法逆天整理
http://www.cnblogs.com/ningskyer/articles/4038501.html A. why SI: 为什么要用Source Insight呢?因为她比完整的IDE要更快 ...
- CodeForces701E DFS
http://codeforces.com/problemset/problem/701/E 一个显而易见的方法是考虑点的贡献,一次dfs记录到所有根节点不考虑匹配的答案,再一次dfs反向推出答案 # ...
- Spark进阶之路-Standalone模式搭建
Spark进阶之路-Standalone模式搭建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Spark的集群的准备环境 1>.master节点信息(s101) 2&g ...
- ElasticSearch 批量增加索引
服务端批量增加索引,版本是5.1.1 TransportClient client; Settings esSettings = Settings.builder() .put("clust ...
- webpack配置说明
webpack是一个现代JavaScript应用程序的静态模块打包器. 它有几个核心概念: 一.entry(入口) 指示webpack应该使用哪个模块,来作为构建其内部依赖图的开始, 可以在webpa ...
- 机器学习:Python实现聚类算法(二)之AP算法
1.算法简介 AP(Affinity Propagation)通常被翻译为近邻传播算法或者亲和力传播算法,是在2007年的Science杂志上提出的一种新的聚类算法.AP算法的基本思想是将全部数据点都 ...