为什么机器学习算法难以优化?一文详解算法优化内部机制

来源: 机器之心

作者:JONAS DEGRAVE、IRA KORSHUNOVA

编辑:小舟

选自:engraved.blog

损失线性组合是正确的选择吗?这篇文章或许能够给你答案。

在机器学习中,损失的线性组合无处不在。虽然它们带有一些陷阱,但仍然被广泛用作标准方法。这些线性组合常常让算法难以调整。

在本文中,作者提出了以下论点:

  1. 机器学习中的许多问题应该被视为多目标问题,但目前并非如此;

  2. 「1」中的问题导致这些机器学习算法的超参数难以调整;

  3. 检测这些问题何时发生几乎是不可能的,因此很难解决这些问题。

有一些方法可以轻微缓解这些问题,并且不需要代码。

梯度下降被视为解决所有问题的一种方法。如果一种算法不能解决你的问题,那么就需要花费更多的时间调整超参数来解决问题。

损失的线性组合无处不在

尽管存在单目标的问题,但通常都会对这些目标进行额外的正则化。本文作者从整个机器学习领域选择了这样的优化目标。

首先来说正则化函数、权重衰减和 Lasso 算法。显然当你添加了这些正则化,你已经为你的问题创建了多目标损失。毕竟我们关心的是原始损失 L_0 和正则化损失都保持很低。你将会使用λ参数在这二者之间调整平衡。

因此,损失(如 VAE 的)实际上是多目标的,第一个目标是最大程度地覆盖数据,第二个目标是保持与先前的分布接近。在这种情况下,偶尔会使用 KL 退火来引入一个可调参数β,以帮助处理这种损失的多目标性。

同样在强化学习中,你也可以发现这种多目标性。在许多环境中,简单地将为达成部分目的而获得的奖励加起来很普遍。策略损失也通常是损失的线性组合。以下是 PPO、SAC 和 MPO 的策略损失及其可调整参数α的熵正则化方法。

最后,GAN 损失当然是判别器损失和生成器损失的和:

所有这些损失都有一些共性,研究者们正在尝试同时针对多个目标进行高效优化,并且认为最佳情况是在平衡这些通常相互矛盾的力量时找到的。在某些情况下,求和方式更加具体,并且引入了超参数以判断各部分的权重。在某些情况下,组合损失的方式有明确的理论基础,并且不需要使用超参数来调整各部分之间的平衡。

一些组合损失的方法听起来很有吸引力,但实际上是不稳定且危险的。平衡行为通常更像是在「走钢丝」。

样例分析

考虑一个简单的情况,我们尝试对损失的线性组合进行优化。我们采用优化总损失(损失的总和)的方法,使用梯度下降来对此进行优化,观察到以下行为:

Jax 中的代码如下:

def loss(θ):  return loss_1(θ) + loss_2(θ)loss_derivative = grad(loss)for gradient_step in range(200):  gradient = loss_derivative(θ)  θ = θ - 0.02 * gradient

通常情况下,我们对两个损失之间的权衡并不满意,因此在第二个损失上引入了比例系数α,并运行了以下代码:

def loss(θ, α):  return loss_1(θ) + α*loss_2(θ)loss_derivative = grad(loss)for gradient_step in range(200):  gradient = loss_derivative(θ, α=0.5)  θ = θ - 0.02 * gradient
br

我们希望看到:当调整 α 时,可以选择两个损失之间的折衷,并选择最适合自身应用的点。我们将有效地进行一个超参数调整回路,手动选择一个α来运行优化过程,决定降低第二个损失,并相应地调整α并重复整个优化过程。经过几次迭代,我们满足于找到的解,并继续写论文。

但是,事实并非总是如此。有时,问题的实际行为如下动图所示:

看起来无论怎样调整参数α,都不能很好地权衡两种损失。

我们看到了两类解决方案,它们都分别忽略了一种损失。但是,这两种解决方案都不适用于大多数应用。在大多数情况下,两种损失更加平衡的点是可取的解决方案。

实际上,这种关于训练过程中两种损失的图表几乎从未绘制过,因此该图中所示的动态情况常常无法观察到。我们只观察绘制总体损失的训练曲线,并且得出超参数需要更多时间调整的结论。也许我们可以采取一种早停法(early stopping),以使得论文中的数据是有效的。毕竟,审稿人喜欢高效的数据。

问题出在哪里呢?为什么这种方法有时有效,有时却无法提供可调参数?为此,我们需要更深入地研究一下以下两个动图之间的差异。它们都是针对相同的问题,使用相同的损失函数生成的,并且正在使用相同的优化方法来优化这些损失。因此,这些都不是造成差异的原因。在这些问题之间发生变化的是模型。换句话说,模型参数θ对模型输出的影响是不同的。

因此,让我们可视化一下通常不可见的东西,这是两个优化的帕累托前沿。这是模型可以实现且是不受其他任何解决方案支配的解决方案的集合。换句话说,这是一组可实现的损失,没有一个点可以使所有损失都变得更好。无论你如何选择在两个损失之间进行权衡,首选的解决方案始终依赖帕累托前沿。通常,通过调整损失的超参数,你通常希望仅在同一个前沿找到一个不同的点。

两个帕累托前沿之间的差异会使得第一种情况的调优效果很好,但是在更改模型后却严重失败了。事实证明,当帕累托前沿为凸形时,我们可以通过调整α参数来实现所有可能的权衡效果。但是,当帕累托前沿为凹形时,该方法似乎不再有效。

为什么凹帕累托前沿面的梯度下降优化会失败?

通过查看第三个维度中的总体损失,可以发现实际上是用梯度下降优化了损失。在下图中,我们可视化了相对于每个损失的总损失平面。实际上是使用参数的梯度下降到该平面上,采取的每个梯度下降步骤也必将在该平面上向下移动。你可以想象成梯度下降优化过程是在该平面上放置一个球形小卵石,使其在重力作用下向下移动直到它停下来。

优化过程停止的点是优化过程的结果,此处用星星表示。如下图所示,无论你如何上下摆动该平面,最终都将得到最佳结果。

通过调整α,此空间将保持一个平面。毕竟更改α只会更改该平面的倾斜度。在凸的情况下,可以通过调整α来实现帕累托曲线上的任何解。α大一点会将星星拉到左侧,α小一点会将星星拉到右侧。优化过程的每个起点都将在相同的解上收敛,这对于α的所有值都是正确的。

但是,如果我们看一下具有凹帕累托前沿面的不同模型问题,那么问题出现在哪里就变得显而易见了。

如果我们想象卵石遵循该平面上的梯度:有时向左滚动更多,有时向右滚动更多,但始终向下滚动。然后很明显它最终将到达两个角点之一,即红色星或蓝色星。当我们调整α时,该平面以与凸情况下完全相同的方式倾斜,但由于帕累托前沿面的形状,将永远只能到达该前沿面上的两个点,即凹曲线末端的两个点。使用基于梯度下降方法无法找到曲线上的 × 点(实际上想要达到的点)。为什么?因为这是一个鞍点(saddle point)。

同样要注意的是,当我们调整α时会发生什么。我们可以观察到,相对于其他解,一个解需要调整多少个起点,但我们无法调整以找到帕累托前沿面上的其他解。

这些线性组合会导致哪些问题?

我们列举了使用这种线性损失组合方法的问题:

  • 第一,即使没有引入超参数来权衡损失,说梯度下降试图在反作用力之间保持平衡也是不正确的。根据模型可实现的解,可以完全忽略其中一种损失,而将注意力放在另一种损失上,反之亦然,这取决于初始化模型的位置;

  • 第二,即使引入了超参数,也将在尝试后的基础上调整此超参数。研究中往往是运行一个完整的优化过程,然后确定是否满意,再对超参数进行微调。重复此优化循环,直到对性能满意为止。这是一种费时费力的方法,通常涉及多次运行梯度下降的迭代;

  • 第三,超参数不能针对所有的最优情况进行调整。无论进行多少调整和微调,你都不会找到可能感兴趣的中间方案。这不是因为它们不存在,它们一定存在,只是因为选择了一种糟糕的组合损失方法;

  • 第四,必须强调的是,对于实际应用,帕累托前沿面是否为凸面以及因此这些损失权重是否可调始终是未知的。它们是否是好的超参数,取决于模型的参数化方式及其影响帕累托曲线的方式。但是,对于任何实际应用,都无法可视化或分析帕累托曲线。可视化比原始的优化问题要困难得多。因此出现问题并不会引起注意;

  • 最后,如果你真的想使用这些线性权重来进行权衡,则需要明确证明整个帕累托曲线对于正在使用的特定模型是凸的。因此,使用相对于模型输出而言凸的损失不足以避免问题。如果参数化空间很大(如果优化涉及神经网络内部的权重,则情况总是如此),你可能会忘记尝试这种证明。需要强调的是,基于某些中间潜势(intermediate latent),显示这些损失的帕累托曲线的凸度不足以表明你具有可调参数。凸度实际上需要取决于参数空间以及可实现解决方案的帕累托前沿面。

请注意,在大多数应用中,帕累托前沿面既不是凸的也不是凹的,而是二者的混合体,这扩大了问题。

以一个帕累托前沿面为例,凸块之间有凹块。每个凹块不仅可以确保无法通过梯度下降找到解,还可以将参数初始化的空间分成两部分,一部分可以在一侧的凸块上找到解,而另一部分智能在另一侧上找到解。如下动图所示,在帕累托前沿面上有多个凹块会使问题更加复杂。

因此,我们不仅具有无法找到所有解的超参数α,而且根据初始化,它可能会找到帕累托曲线的不同凸部分。此参数和初始化以令人困惑的方式相互混合,这让问题更加困难。如果稍微调整参数以希望稍微移动最优值,则即使保持相同的初始化,也可能会突然跳到帕累托前沿面的其他凸部分。

原文链接:

https://engraved.ghost.io/why-machine-learning-algorithms-are-hard-to-tune/

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484626.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文作者串通抱团、威胁审稿人,ACM Fellow炮轰「同行评审」作弊

来源:机器之心编辑:陈萍、杜伟布朗大学计算机科学系教授、机器学习研究者、2018 年 ACM Fellow 迈克尔 利特曼(Michael L. Littman)在 ACM 通讯上发文斥责「部分学者正在威胁计算机科学研究的诚实性」。他在文章中指出了同行评审…

JDG人脸识别课堂管理系统全栈开发流程报告-软件工程实践报告

JDG人脸识别课堂管理系统全栈开发流程报告-软件工程 ⭐️ 本报告的代码部分和程序设计参考了 计算机18-1班张宇哲(学号181002406)同学 在Gitee仓库发布的AI-Attendance,本文档基于软件工程的具体流程,从软件工程的角度细化的张同学…

浅谈贝叶斯统计

来源:京师统计团总支学生会编辑: ∑Gemini浅谈贝叶斯统计贝叶斯统计是英国学者托马斯贝叶斯在《论有关机遇问题的求解》中提出一种归纳推理的理论,后被一些统计学者发展为一种系统的统计推断方法,称为贝叶斯方法。本文旨在通过实际…

浅析虚拟语气 (Subjunctive mood)

浅析虚拟语气 (Subjunctive mood) 本文旨在通过一种时序逻辑上的联系,帮助读者更好的记忆和运用虚拟语气。文中提及的概念不一定正确,但一定程度上能辅助记忆,最终达到熟练运用的目的。(有些语法不用刨根问底,都是约定…

数论重大突破:120年后,希尔伯特的第12个数学难题借助计算机获得解决

来源:机器之心编辑:nhyilin德国数学家大卫 希尔伯特(David Hilbert)是二十世纪最伟大的数学家之一,被后人称为「数学世界的亚历山大」。他对数学领域做出了广泛和重大的贡献,研究领域涉及代数不变式、代数…

Linux进程通信的四种方式——共享内存、信号量、无名管道、消息队列|实验、代码、分析、总结

Linux进程通信的四种方式——共享内存、信号量、无名管道、消息队列|实验、代码、分析、总结 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟…

美国人测评马斯克的星链服务: 现实太骨感,梦想已破灭

来源: 风闻社区、3D实验室最近看到外国人测评马斯克的starlink服务,满篇吐槽,无数缺陷,而且都是原理上无法克服的那种缺陷,跟大家分享一下。首先星链服务不是你想像的那种一卡在手,天下我有的服务。用它之前…

编译过程中的链接地址对最终编译镜像文件的影响

MDK和交叉编译工具编译时都会指定程序的下载的地址(其实就是告诉程序它将在那个地址上开始执行),这有什么意义吗? 其实这么设计有原因的,因为这里涉及到全局变量和全局函数指针的地址问题,加入当你在编译时…

三维空间中曲线绕任意轴旋转所得的旋转曲面求法

三维空间中曲线绕任意轴旋转所得的旋转曲面求法 对2023汤家凤考研高等数学讲义225页2.三维空间直线旋转曲面的解释和推广 ©️ sylvanding

彩图完美解释:麦克斯韦方程组

来源:微波射频网麦克斯韦方程组麦克斯韦方程组(英语:Maxwells equations)是英国物理学家麦克斯韦在19世纪建立的描述电磁场的基本方程组。它含有四个方程,不仅分别描述了电场和磁场的行为,描述了它们之间的…

基于阿里云服务网格流量泳道的全链路流量管理(二):宽松模式流量泳道

作者:尹航 在前文基于阿里云服务网格流量泳道的全链路流量管理(一):严格模式流量泳道中,我们介绍了使用服务网格 ASM 的严格模式流量泳道进行全链路灰度管理的使用场景。该模式对于应用程序无任何要求,只需…

中国世界工厂地位为什么不会动摇

来源:工信头条文:赵一之在贸易保护主义和疫情的双重影响下,中国作为世界工厂是否会面临大规模制造业外迁,是时常引起关注的问题。复杂产品的供应链彼此环环相扣,缺失任何一环,都会影响到整个行业。疫情指出…

一文彻底解决YOLOv5训练找不到标签问题

YOLOv5 训练找不到标签, No labels found in /path/train.cache 问题的解决方法(亲测可用) ❤️ 网上绝大部分教程所述解决方法都不靠谱,也没有分析问题发生的原因,本文彻底解决了YOLOv5训练时找不到标签,出现 No labels found in /path/trai…

yolov5踩坑记录:标签错位(PIL读取图片方向异常)

PIL踩坑记录:读取图片方向异常(yolov5标签错位) 奇怪的现象 今天用 YOLOv5 做项目时,对数据集的标记出现了奇怪的现象,在下述测试用例中可明显看到,标记框偏离了物体,故发文阐述原因和解决方法…

理解与理论:人工智能基础问题的悲观与乐观

来源:筑土为坛梅剑华,男,1980年生,湖北秭归人,山西大学哲学社会学院教授,博士生导师,先后赴美国罗格斯大学、匹兹堡大学、奥地利萨尔茨堡大学等访学,研究方向是语言哲学与心灵哲学、…

设计模式系列 - 原型模式

所谓原型模式是指为创建重复对象提供一种新的可能。 介绍 当面对系统资源紧缺的情况下,如果我们在重新创建一个新的完全一样的对象从某种意义上来讲是资源的浪费,因为在新对象的创建过程中,是会有系统资源的消耗,而为了尽可能的节…

图像二值化(Image Binarization):平均值法、双峰法、大津算法(OTSU)

图像二值化(Image Binarization):平均值法、双峰法、大津算法(OTSU) 编程实现图像的二值化,分析不同的阈值对二值化图像的影响。 问题描述 传统的机器视觉通常包括两个步骤:预处理和物体检测…

全球最快AI超级计算机开动,每秒4百亿亿浮点运算!正拼接最大宇宙3D地图

来源:venturebeat宇宙是在不断膨胀的吗?是的!而令宇宙不断膨胀的「罪魁祸首」就是暗能量。作为是宇宙中最神秘的物质,它看不见摸不着,为了捕捉它,人类在地球上建立了许多相关实验,但都成效甚微。…

基于YOLOv5的中式快餐店菜品识别系统

基于YOLOv5的中式快餐店菜品识别系统[金鹰物联智慧食堂项目] 摘要 本文基于YOLOv5v6.1提出了一套适用于中式快餐店的菜品识别自助支付系统,综述了食品识别领域的发展现状,简要介绍了YOLOv5模型的历史背景、发展优势和网络结构。在数据集预处理过程中&am…

谋局科技创新:两院院士大会释放重要信号

来源:经济参考报作者:班娟娟、钟源从坚持把科技自立自强作为国家发展的战略支撑,到加快建设科技强国,实现高水平科技自立自强;从加强原创性、引领性科技攻关,坚决打赢关键核心技术攻坚战,到强化…