如下内容是对AutoML技术现状与将来展望讲座的总结。html
1.机器学习定义
《西瓜书》中的直观定义是:利用经验来改善系统的性能。(这里的经验通常是指数据)算法
Mitchell在《Machine Learning》一书中的较为形式化的定义是一个程序经过给它一些数据,它可以提高在某个任务上的某种度量。(以下图示)markdown
下图很清楚明了的展现了机器学习所作的事情,再也不赘述。
网络
2.AutoML技术回顾
不少时候在某一领域使用机器学习获得了效果很好的模型,可是若要在另外一个领域使用该模型则不必定适用,并且一般须要大量的专业知识。正是因为受到这样的限制,因此才有了AutoML技术的发展。dom
2.1 AutoML研究的主要场景
2.1.1 静态闭环AutoML
a. 介绍
第一个场景是静态闭环AutoML,该场景是目前用的最多的场景。该场景是给定数据和度量标准以后,经过AutoML选择出效果最好的模型。该过程没有任何的人工干预,都是算法自动选择的。机器学习
下图展现了机器学习的基本流程图,能够看到主要有数据预处理、特征处理、模型训练等过程,而且每一个过程都包含多种方法。异步
b. 存在的问题
而AutoML的本质工做是将各个过程的方法进行选择、组合、优化。函数
可是AutoML存在以下问题:post
- 因为咱们一般并不知道所优化的参数和预期效果之间是什么样的显示表达,因此 目标函数形式未知。
- 因为可能的组合方式太多,因此 搜索空间巨大
- 正是因为组合方式太多,并且每个组合都须要从头作数据预处理,特征处理,模型训练等操做,因此 函数计算代价巨大。
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理论