机遇与挑战:用强化学习自动搜索优化算法

近年来,机器学习已经取得了巨大的成功,它已被应用在了很多不同领域中。这种成功可以归功于由数据驱动的机器学习方法,该方法能在使用专业知识手动设计的系统上自动挖掘数据中的模式。

然而,目前的范式仍存在一个悖论:由算法驱动的机器学习仍然是手动设计的。这就引出了一个问题:我们能否让算法自我学习?这将开启惊人的可能性,即自动寻找可以比手动设计更加完美的新算法,并且新算法能显著地提升学习能力。

连续优化(continuousoptimization)算法是机器学习最为常见的算法之一,其中包含一系列已知流行的算法,包括梯度下降、动量法、AdaGrad和ADAM方法。我们考虑过自动设计这些优化算法的问题,这么做有两个原因:首先,很多优化算法是在凸假设下设计的,但被应用到非凸目标函数上;通过在实际使用环境下学习,优化算法有望实现更好的性能。第二,手动设计新的优化算法通常费时费力,可能需要数月或数年之久;学习优化算法可以减少手动设计的劳动量。

学习如何优化

在去年的论文《LearningtoOptimize》中,UCBerkeley的研究者们提出了一种学习优化算法的框架,它被称之为「LearningtoOptimize」。在论文出现后,我们很快注意到DeepMind等机构的研究者也在论文《Learningtolearnbygradientdescentbygradientdescent》中提出了类似的想法(读者可以挑战一下这篇论文标题如何翻)。

考虑到现有的连续优化算法通常的工作方式:它们通常以迭代的方式运行,并保持一定程度的迭代数量,并且每一次迭代都选取目标函数域内的一个点以搜索全局最小。在每个迭代中,算法都会使用固定的更新公式来计算步长向量,然后用它来修正迭代方向与下降步长。更新公式通常是在当前和过去的迭代中所评估历史梯度的函数,这些梯度都是目标函数对不同参数所求的偏导数。例如,在梯度下降中,更新公式是一些加权的负梯度(所加权为学习率);在动量法中,更新公式是一些加权的指数移动均值。

这种更新公式是区别不同算法的基础。所以,如果我们可以学习更新公式,我们就可以学习优化算法。我们将更新公式建模为神经网络。这样,通过学习神经网络的权重,我们就可以学习出一个优化算法。将更新公式参数化为神经网络的同时满足了前面提到的两个特质:首先,它具有表达性,因为神经网络是通用函数的近似,它在本质上可以模拟具有足够容量的任何更新公式。

为了学习优化算法,我们需要先定义一个性能指标,我们将其称之为「元损失(meta-loss)」,它会奖励表现好的优化器,并惩罚不好的优化器。因为好的优化器可以快速收敛,正常的元损失是所有迭代中的目标函数值的总和(假设期望是最小化目标函数),或相当于缺失值累积(cumulativeregret)。直观地说,这对应于曲线下面积,当优化器收敛速度较慢的时候,它的曲线下面积就会增大。

学习如何学习

「学习如何学习」是什么意思?虽然这个术语在近年来的论文中不时会出现,但不同的作者给它赋予了不同的意义,我们并没有对这段话的精确含义达成共识。通常,它也可以与术语「元学习」互换使用。

这个术语可以追溯到元认知的概念(亚里士多德,公元前350年),它描述了人类不仅理性,也对于自己产生理性的过程保持理性。「学习如何学习」从这一理念中寻求启发,并试图将其转化为具体的算法。通俗地说,「学习如何学习」仅仅意味着学习一些关于学习的方法。在元层面上(meta-level)存在不同方法,我们可以通过元知识将它分为三类:

学习要学习的目标

学习要学习哪个模型

前两个方向集中于学习之外,第三个方向则有关学习的过程,即元知识捕获学习算法行为共同特征的过程。这种方法有三个部分:base-model、用于训练base-model的base-algorithm以及学习base-algorithm的meta-algorithm。其中学到的不是base-model本身,而是在某个任务中训练base-model的base-algorithm。因为base-model和任务都是由用户提供的,学习到的base-algorithm必须可以在多种不同的base-model和任务中使用。由于大多数学习算法优化了一些目标函数,因此在许多情况下学习base-algorithm难以学到优化算法。这个学习优化算法的问题曾被KeLi与JitendraMalik的《LearningtoOptimize》和MarcinAndrychowicz等人的《Learningtolearnbygradientdescentbygradientdescent》等论文研究过。与之最接近的论文则是Bengio等人在1991年发表的《Learningasynapticlearningrule》,其中研究人员试图学习了Hebb式的触突学习规则(learningrule)。学习规则取决于编码相邻神经元活动的当前迭代的维度的子集,但不依赖于目标函数,因此不具有将其推广到不同的目标函数的能力。

泛化

任何形式的学习都要求在有限的样本上进行训练,并泛化至样本所属的总体分布中。因此,考虑用于训练base-model的优化器学习,及其使用的样本和所属类别是很有用处的。每个样本就代表一个目标函数,即一个任务中用于训练base-model的损失函数。该任务的特点是一系列样本和目标预测,换言之,目标函数就是用于训练base-model的数据集。元训练集(meta-trainingset)包括多个目标函数,元测试集包括同一个类别的不同目标函数。目标函数的不同之处体现在两个方面:即它们对应不同的base-model或不同的任务。因此,本文所指泛化指在不同base-model和/或不同任务上运行的学习优化器。

泛化为何如此重要?

假设我们不关心泛化,那么我们要在用于训练优化器的同一个目标函数上评估优化器。如果我们仅使用一个目标函数,那么最佳优化器就是记忆最优解的那个优化器:该优化器通常可在一个迭代步内收敛到最优,并且在任意初始化状态下都能一步到达。在本文中,目标函数对应在特定任务中训练特定base-model的损失函数,因此本质上,该优化器记忆了base-model的最优权重。即使我们使用了很多目标函数,学习的优化器仍然能够确定它运行了哪个目标函数,并尽快跳转至记忆的最优解。

因此,要使学习优化器具备实用性,必须使它可以泛化到不同的新目标函数上,且也能有优秀的表现。

泛化的内容应该是什么?

如果我们对于泛化的要求是在类似任务上达到类似base-model的效果,那么学习的优化器能够记忆base-model和一般任务的部分最优权重,如神经网络较低层级的权重。这在本质上与学习要学习的内容构想相同,正如迁移学习那样。

与学习要学习的内容不同的是,学习如何学习的目标不是学习什么是最优,而是如何找到最优。因此,我们必须把目标设置为更强大的泛化能力,即在不类似任务上泛化到类似的base-model中。能够泛化至不类似任务的优化器无法部分地记忆最优权重,因为不类似任务的最优权重可能会完全不同。如在MNIST(包括手写体数字的黑白图像数据集)和CIFAR-10(包括自然场景中常见物体的彩色图像数据集)上训练的神经网络较低层级的权重甚至有可能完全不同。

我们应该把目标定为比这更强的泛化,即是否能在不类似任务上泛化到不类似的base-model中?由于这些对应的目标函数与训练优化器所用的目标函数完全不同,所以这实际上是在问学习优化器是否可泛化至完全不同的目标函数。

答案是不可以。给定任意优化器,我们考虑在特定目标函数上优化器后的轨迹。由于优化器仅依赖前一次迭代的信息,所以我们可以调整最后一次迭代的目标函数,使之发散(arbitrarilybad),同时维持前面所有迭代中目标函数的几何结构。因此,任何优化器都有表现很差的目标函数,没有优化器能够泛化至所有目标函数。

如果没有表现普遍良好的优化器,我们还能够期待学习有用的优化器吗?答案是yes:由于我们在实践中通常对优化特定类别的函数感兴趣,所以学习在这些类别中性能良好的优化器还是可以的。一个类别中的目标函数可以共享几何结构中的规则,如:它们可以具有共同的几何特性,如凸性(convexity)、分段线性、Lipschitz连续或其他未命名的特性。在学习如何学习的背景下,每个类别能够对应一种base-model。例如,带ReLU激活单元的神经网络是一个类别,因为它们都是分段线性。注意,在学习优化器的时候,没必要明确地描述几何规则的形式,因为优化器可以在该类别的目标函数上进行训练时,自动获取。

如何学习优化器

这看起来是非常自然的方法,但并不奏效:尽管我们尽了最大的努力,还是无法用这种方式训练出可泛化至未知目标函数的优化器,即使未知目标函数是从训练优化器所用目标函数的同分布中选取的。在几乎所有未知目标函数上,学习的优化器开始的时候保持正确的收敛趋势,但很快就发散了。另一方面,在训练的目标函数上没有这样的问题,效果很好。这是什么原因造成的呢?

学习优化器并不是看上去那么简单的学习问题。标准的监督学习假设所有的训练样本都是独立同分布的(i.i.d.);在我们的设置中,优化器在每次迭代中采用的迭代步向量都会影响到优化器在所有后续迭代中经历的梯度。迭代步向量影响后续迭代中梯度的方式尚不可知,因为这依赖于目标函数的局部几何结构,而在元测试时,这种几何结构仍是未知的。监督学习不能在该设置中运行,必须假设未知目标函数的局部几何结构与训练目标函数在所有迭代中的局部几何结构相同。

文献中将这一现象称作「复合误差」(compoundingerror)。我们都知道监督学习器的误差总量是迭代数量的二倍,而不是独立同分布设置中的线性情况(RossandBagnell,2010)。本质上,使用监督学习训练的优化器势必会与训练目标函数的几何结构产生过拟合。解决该问题的一种方式是使用强化学习。

强化学习的背景

考虑一种环境(environment),该环境的状态(state)根据采取的动作(action)以一种未知的方式发展。我们有一个可以与这种环境互动的智能体(agent),它连续选择动作,并在每个动作之后收到关于新状态是好是坏的反馈。强化学习的目标是找到一种方法,使智能体根据当前状态选择动作,使状态在期望上保持优秀。更准确地说,强化学习问题具备以下组件:

形式化为强化学习问题

回到我们上文中介绍的学习框架,其目标是找到使元损失最小化的更新公式。直观来看,我们将智能体看作一个优化算法,将环境看作由我们想让学习的优化器面对的目标函数集合。状态包括当前迭代和目前优化轨迹的一些特征,这可以是历史梯度、迭代数和目标值的统计。动作是用于更新迭代的迭代步向量。

在该公式中,策略实际上是计算动作(即迭代步向量)的步骤,依赖于当前迭代和历史梯度、迭代数和目标值。换言之,特定的策略代表特定的更新公式。

因此,学习该策略等于学习更新公式以及优化算法。初始状态概率分布是初始迭代、梯度和目标值的联合分布。状态转换概率分布记录了在当前状态和动作下一个可能的状态。由于该状态包括梯度和目标值,因此状态转换概率分布能够捕捉到梯度和目标值在任意给定的迭代步向量下的变化趋势。换言之,它对感兴趣的目标函数的局部几何关系进行编码。关键是,这种强化学习算法不能直接访问状态转换概率分布,因此它学习的策略不会与训练目标函数的几何结构产生过拟合。

结果

我们就如同在MNIST上训练一个神经网络而训练优化算法,并就在TorontoFacesDataset(TFD)、CIFAR-10和CIFAR-100上训练不同的神经网络的问题对优化算法进行测试。这些数据集互相没有任何相似性:MNIST包括手写体数字的黑白图像,TFD包括人脸的灰度图像,CIFAR-10/100包括自然场景常见物体的彩色图像。因此学习的优化算法不可能逃避使用记忆,比如说,MNIST上较低层的权重,并且在TFD和CIFAR-10/100上仍然表现不错。

如图所示,使用我们的算法在MNIST(浅红色)数据集上训练的优化算法可泛化至TFD、CIFAR-10和CIFAR-100,且表现优于其他优化算法。

为了理解使用我们的方法学习的优化算法的行为,我们在二维logistic回归问题上训练一个优化算法,并在参数空间中可视化其轨迹。值得注意的是,优化算法在低维和高维中的行为不同,因此下图中的可视化未必表示优化算法在高维中的行为。但是,它们提供了一些有用的关于可以学到的行为类型的经验。

上图显示出两个不同的未知logistic回归问题上不同算法的优化轨迹。每个箭头代表优化算法的一次迭代。如图所示,使用我们的方法学到的算法(浅红色)比其他算法的步长更大,在两次迭代后超过其他算法,但是没有振荡,而是采用更小的步长来逐渐回收。在第二个示例中,由于梯度消失,传统的优化算法步长较小,并因此收敛较慢。另一方面,学得的算法步长更大,收敛更快。

THE END
1.选对学习路线,小白也能搞AI算法开发5. 常用算法学习。卷积算法:初识卷积、卷积的核心原理,矩阵乘算法:矩阵乘,激活函数:激活函数,池化层:池化, softmax分类原理:softmax等。 6. 以上算法几乎是深度学习中最重要最常见的算法,学完之后,可以扩展学习其他算法如:dropout:dropout,交叉熵损失函数:解密熵、交叉熵损失,归一化:批归一化,one-hot 编码:one-https://zhuanlan.zhihu.com/p/644180443
2.交换机如何实现自学习算法交换机可以隔离碰撞域,因此收到了广泛的使用,隔离碰撞域的实现是基于帧交换表,而帧交换表是通过自学习算法自动建立起来的,因此着重考虑自学习算法的实现。 交换机的简单认识 交换机本质上是一个多接口的网桥,自身可以进行碰撞检测并进行转发目的主机,当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧https://www.jianshu.com/p/ed03cf24b9b1
3.一种单计算参数的自学习路径规划算法AET一种单计算参数的自学习路径规划算法 0 引言 机器人路径规划(Robot Path Planning,RPP)的主要研究目的是寻找工作空间内的一条从出发点到目标点的运动路径,使机器人可以避开所有障碍物,且路径长度最短。RPP问题的相关研究成果在物流、危险物资传送、大规模集成电路设计等领域中有着广泛的应用[1-5]。在求解RPP问题的http://www.chinaaet.com/article/3000100590
4.自监督学习算法公式自我监督方法这里介绍了一种新的图像表示的自监督学习算法BYOL。BYOL通过预测其输出的以前版本来学习它的表示,而不使用负对。并且展示了BYOL在各种基准测试上取得了最先进的结果。特别是,在使用ResNet-50(1×)的ImageNet线性评估协议下,BYOL实现了一种新的技术,并弥补了自监督方法和的监督学习基线之间的大部分剩余差距。使用Reshttps://blog.51cto.com/u_16099251/10729763
5.自学习策略和Lévy飞行的正弦余弦优化算法首先,提出正弦余弦算法自学习策略和非线性权重因子,使搜索个体记忆自身历史最优位置,在寻优过程中指导搜索个体更新位置,提高SCA的局部搜索能力;算法寻优后期,当搜索陷入局部最优时,采用基于Lévy飞行的停滞扰动策略使算法跳出局部最优,提高SCA的局部最优规避能力。基于13个经典基准测试函数对算法性能进行测试的实验结果表明http://qks.cqu.edu.cn/html/cqdxzrcn/2019/9/20190907.htm
6.基于自适应LASSO先验的稀疏贝叶斯学习算法2.3 基于自适应LASSO 先验SBL 算法的稀疏恢复原理分析 SBL 算法本质是一种鲁棒的最大后验估计方法[2,16].一般通过I 型或II 型估计器稀疏求解[28].本文采用I 型估计器对提出的基于自适应LASSO先验SBL 算法进行分析.I 型估计器为最大化后验分布[28]: https://www.fx361.com/page/2022/0618/14396851.shtml
7.概述机器学习经典算法跟监督学习相反,无监督学习中数据集是完全没有标签的,依据相似样本在数据空间中一般距离较近这一假设, 将样本分类。常见的无监督学习算法包括:稀疏自编码(Sparse Auto Encoder)、主成分分析(Principal Component Analysis, PCA)、K-Means 算法(K 均值算法)、DBSCAN算法(Density-Based Spatial Clustering of Applicationshttps://weibo.com/ttarticle/p/show?id=2309404598738399395890
8.“AI”科普丨一文读懂自注意力机制:8大步骤图解+代码转自 新机器视觉 【导读】NLP领域最近的快速进展离不开基于Transformer的架构,本文以图解+代码的形式,带领读者完全理解self-attention机制及其背后的数学原理,并扩展到Transformer。 BERT, RoBERTa, ALBERT, SpanBERT, DistilBERT, SesameBERT, SemBERT, https://mp.weixin.qq.com/s?__biz=MjM5ODIwNjEzNQ==&mid=2649887658&idx=3&sn=e579f205c683d89a5ed5682102fff792&chksm=bf0ab725ed3b7c7784b043656254cf053b58ff6465d3da485bf72cf4491aa2f106d879cdc90e&scene=27
9.自适应学习率算法AdamW优化器工作原理详解:数学公式和实现AdamW 优化器是Adam优化器的一个变种,它将权重衰减(L2正则化)与Adam优化器结合起来。AdamW的关键在于,它将权重衰减与梯度更新分开处理,这有助于解决L2正则化与自适应学习率算法(如Adam)不兼容的问题。2017 年末,Adam 似乎又重获新生。https://download.csdn.net/blog/column/12592623/136707255
10.自定义深度学习分类·LiDAR360自定义深度学习分类该功能采用深度学习算法对点云数据进行分类。此功能采用监督分类,在同一批次数据中,需要手工编辑少量数据的类别,训练模型后批量处理大量数据。支持两种流程:选择训练样本,生成训练模型,处理待分类数据,利用已有的模型处理待分类数据。采用前后端分离设计(C/S架构),允许局域网内多个用户共用同一服务器下https://www.lidar360.com/wp-content/LiDAR360-zh/ToolReference/Classify/AutoClassifyByDeepLearning.html
11.计算机网络谢希仁笔记数据链路层按照以下自学习算法 处理收到的帧和建立交换表 A 先向 B 发送一帧,从接口 1 进入到交换机。 交换机收到帧后,先查找交换表,没有查到应从哪个接口转发这个帧。 交换机把这个帧的源地址 A 和接口 1 写入交换表中,并向除接口1以外的所有的接口广播这个帧。 https://blog.itpub.net/132/viewspace-2824201/
12.从智障到智能光语音识别就花了100年(全文)手机评测第3页:语音识别实现原理:算法和自学习 第4页:语音识别现状和未来 1离人工智能统治世界还有多远 前不久,中文版Bixby开始公测,虽然这并不是Bixby的首次发布,但却意味着新的语音巨头开始打入中国市场。在我们的测试中发现,Bixby拥有优良的识别率,可以实现语音开锁、语音文本转换,并且用户可以通过语音对手机进行电话短信、https://mobile.zol.com.cn/665/6656792_all.html
13.科学网—[转载]转自:数据标准化/归一化normalization有些模型在各个维度进行不均匀伸缩后,最优解与原来等价,例如logistic regression(因为θ的大小本来就自学习出不同的feature的重要性吧?)。对于这样的模型,是否标准化理论上不会改变最优解。但是,由于实际求解往往使用迭代算法,如果目标函数的形状太“扁”,迭代算法可能收敛得很慢甚至不收敛。所以对于具有伸缩不变性的https://blog.sciencenet.cn/blog-601186-1228314.html
14.用Qlearning算法实现自动走迷宫机器人的方法示例python但不同于监督学习与非监督学习,在强化学习的框架中,我们更侧重通过智能体与环境的交互来学习。通常在监督学习和非监督学习任务中,智能体往往需要通过给定的训练集,辅之以既定的训练目标(如最小化损失函数),通过给定的学习算法来实现这一目标。然而在强化学习中,智能体则是通过其与环境交互得到的奖励进行学习。这个https://www.jb51.net/article/162422.htm
15.见微知著,掩码自监督学习让你一叶知秋腾讯云开发者社区在前面的两篇文章中,我们介绍了基于各类代理任务 (Pretext Task)和基于对比学习 (Contrastive Learning)的自监督学习算法。 随着Vision Transformer (ViT) 在 2021 年霸榜各大数据集,如何基于 ViT 构建更加合适的自监督学习范式成为了该领域的一大问题。最初,DINO 和 MoCo v3 尝试将对比学习和 ViT 相结合,取得了https://cloud.tencent.com/developer/article/1975878