热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

找出一个二维数组中的鞍点的流程图_如何在黎曼流形上避开鞍点?本文带你了解优化背后的数学知识...

机器之心原创作者:JoshuaChou编辑:JoniZhong翻译:魔王在一篇名为《EscapingfromsaddlepointsonR

机器之心原创

作者:Joshua Chou
编辑:Joni Zhong翻译:魔王

在一篇名为《Escaping from saddle points on Riemannian manifolds》的论文中,来自华盛顿大学、加州大学伯克利分校的研究人员深入探索了优化问题的细节,这对理解机器学习底层的数学知识非常重要。本文是对该论文的解读。

引言
「优化」通常是指将函数最大化或最小化,而函数的集合通常表示遵循约束条件的可选择范围。我们可以通过对比集合内不同的函数选择来确定哪个函数是「最优」的。
学习是模型迭代地学习最小化某个误差函数或者最大化某个奖励函数的过程。拿用于分类任务的简单线性回归为例,误差函数是模型输出和数据真值输出之间的均方差,学习过程即找出线性函数 y = a^Tx + b 的系数 a_i 和 b_i,以最小化 y(模型输出)和 y*(真值输出)间的误差。例如,学习(即优化)通常使用梯度下降算法通过反向传播来迭代进行。在每一次迭代中,系数 a_i 和 b_i 都是(所有可能 a_i 和 b_i 值集合中的)一个选择,算法将学习到能够最小化误差函数的下一组系数。因此,模型的学习过程归根结底还是优化问题。
论文《Escaping from saddle points on Riemannian manifolds》深入探索了优化问题的细节,这对理解机器学习的底层数学知识非常重要。
在经典的最小化任务中,基于梯度的优化方法是寻找局部极小值的最常用方法。「陷入鞍点」问题就出现在基于梯度的优化方法中。优化问题旨在寻找能使目标函数达到局部极小值的驻点,而鞍点是能达到局部极小值的驻点。因此,了解如何识别并避开鞍点至关重要。这篇论文介绍了一种新方法,能够针对满足流形约束的目标函数识别并避开鞍点。设置
该论文考虑在平滑流形 M 上最小化非凸平滑函数:

0386e2475ff22156281c216cbd0cd4af.png


其中 M 是一个 d 维平滑流形,f 是二次可微函数,Hessian 符合 ρ-Lipschitz。为此类问题寻找全局最小值是一项挑战,而这篇论文利用一阶优化方法找出近似的二阶驻点(达到局部极小值)。在抵达驻点时,作者引入一种方法来识别该驻点是鞍点还是局部极小值。此外,作者提出一种方法来避开鞍点,并尝试将目标函数收敛至局部极小值。
随着越来越多的应用被建模为大规模优化问题,较简单的一阶方法变得越来越重要。因此,该论文使用一阶方法处理非凸问题,并查看其效果。具体而言,作者对黎曼流形上的非凸问题执行优化。背景知识
在深入了解该论文之前,我们先要理解一些底层数学概念。理想情况下,这篇论文要求读者对高斯几何有基础了解,即三维欧几里德空间中曲线和表面的几何。此外,微分几何的知识也很重要。不过,我会尝试解释这篇论文中某些术语的意义。
每个平滑的 d 维流形 M 都局部微分同胚于 R^n。M 中每个点周围都有一个平坦的(小型)邻域。因此,它遵循 R^n 上的欧几里德度量。从视觉上来看,这意味着 M 中的每个点周围都有一个曲率为零的小型邻域和欧几里德度量。
接下来,我们需要了解可微流形 M 在 M 内的点 x 处的切空间 TxM。切空间是一个维度与 M 相同的向量空间。读者需要了解这个概念:在标准 R^n 中,点 x ∈ R^n 处的切向量 v 可解释为:对围绕 x 局部定义的实值函数执行的一阶线性可微运算。而这一点可以泛化至流形设置中。
现在我们来看黎曼流形。黎曼流形具备黎曼度量。黎曼度量为我们提供了每个切空间上的标量积,可用于衡量流形上曲线的角度和长度。它定义了距离函数,并自然而然地将流形转换为度量空间。
假设读者了解曲率这一概念,我们来看黎曼曲率张量(Riemann curvature tensor)和黎曼流形的截面曲率。我们可以把黎曼曲率张量理解为流形的曲率,这与我们对曲率的直观理解是一致的。
曲率
读者可以在标准来源中找到截面曲率的定义,其思路是向平面分配曲率。切空间中平面 p 的截面曲率与初始方向在 P 中的测地线(geodesic)所掠过表面的高斯曲率成正比。直观上,这是一个穿过给定平面的二维切片,你需要度量其二维曲率。符号
该论文关注平滑的 d 维黎曼流形 (M,g)&#xff0c;该流形使用黎曼度量 g。点 x ∈ M 的切空间是 TxM。邻域被定义为&#xff1a;Bx(r) &#61; { v ∈ TxM, ||v|| ≤ r }&#xff0c;即以 0 为中心、半径 r 位于切空间 TxM 内的球。在任意点 x ∈ M&#xff0c;度量 g 自然地推导出切空间 <· , · > : TxM x TxM → R 上的内积。黎曼曲率张量用 R(x)[u, v] 来表示&#xff0c;其中 x ∈ M&#xff0c;u, v ∈ TxM。截面曲率是 K(x)[u, v]&#xff0c;x ∈ M, u, v ∈ TxM&#xff0c;其定义如下&#xff1a;

8a36a44e65bea52fdd8ec5a69227d10f.png


该论文用 d(x, y) 表示 M 中两个点之间的距离(根据黎曼度量得出)。测地线 γ : R → M 是一条等速曲线&#xff0c;其长度等于 d(x, y)&#xff0c;即测地线是连接 x 和 y 的最短路径。
指数映射 Exp_x (v) 将 v ∈ TxM 映射到 y ∈ M&#xff0c;则存在测地线 γ&#xff0c;使 γ(0) &#61; x&#xff0c;γ(1) &#61; y&#xff0c;(d/dt)γ(0) &#61; v。这个概念很难理解&#xff0c;读者可以按照下面的方法理解指数映射。
将指数映射看作沿着切向量 v 的方向将点 x 推动一小段距离。如果我们可以将该点沿着测地线 γ 推动 1 个距离单位&#xff0c;那么我们将到达点 y。
另一个理解方式是投影。假设点 p1 的坐标为 (x_1, y_1, z_1)&#xff0c;z_1 &#61; 0&#xff0c;即 p1 在 x-y 平面上。向 p1 添加向量 p2 (x_2, y_2, z_2)&#xff0c;其中 z_2 不等于 0&#xff0c;即 p3 &#61; p1&#43;p2。现在&#xff0c;使用投影定理&#xff0c;将 p3 投影回 x-y 平面得到 p4。根据投影定理&#xff0c;p4 与 p1 间的距离最短。测地线即球面或其他曲面或流形上两点之间的最短路线。指数映射类似于该示例中的投影算子。主要算法
在黎曼流形上执行优化的主要算法如下所示&#xff1a;

ca3ecde6b8e0921e651a0fcb75877d1b.png


算法 1 看起来很吓人&#xff0c;但是作者给出的总结对于理解该算法机制很有用。算法 1 按照以下步骤运行&#xff1a;

055374622db7dced5cddea78c7e9ad76.png


算法 1 依赖流形的指数映射&#xff0c;对于易于计算指数映射的情况很有用(而多种常见流形的指数映射是容易计算的)。作者用可视化的方式进行了展示&#xff1a;

9f84a6c96980172f70231e2de53a25f9.png

图 1&#xff1a;鞍点位于球面上的函数 f。
函数 f 的定义是&#xff1a;f(x) &#61; (x_1)^2 − (x_2)^2 &#43; 4(x_3)^2&#xff0c;如图 1 所示。该算法在 x_0 处进行初始化&#xff0c;x_0 是鞍点。在其切空间中向 x_0 添加噪声&#xff0c;然后计算指数映射&#xff0c;将点 x_0 映射回流形上的点 x_1。然后算法运行黎曼梯度下降&#xff0c;并在 x* 处停止&#xff0c;x* 即局部极小值。主定理背后的概念
该算法背后的思路很简单&#xff0c;但底层证明较为复杂。我尝试简要直观地解释结果并提供一些见解。详细证明及相关文献参见原论文。假设
该论文作出了多项假设&#xff0c;前两个假设关于 f&#xff0c;最后一个假设关于 M&#xff1a;

ab4300e639fefea6df5f119af4a49824.png

简要来讲&#xff0c;利普希茨连续是连续性的定量版本。给出 x 和 y 之间的距离 d(x,y)&#xff0c;则利普希茨函数对 f(x) 和 f(y) 之间的距离设置定量上限。如果 C 是 f 的利普希茨值&#xff0c;则该距离至多为 C×d(x, y)。假设 1 和假设 2 是梯度和 Hessian 的标准利普希茨条件&#xff0c;即常数 β 和 ρ 分别描述梯度和 Hessian 在「最糟糕情况下」的分离情况。这些假设主要是为了确保梯度和 Hessian 可微分。
类似地&#xff0c;假设 3 对 M 的截面曲率设置了上限。直观来看&#xff0c;该假设旨在确保指数映射不会无限增大。例如&#xff0c;对于点 x∈M&#xff0c;其切空间 TxM 和 x 周围的曲率是极大的。TxM 中点的指数映射 Exp_x (v) 可能得到点 y∈M&#xff0c;y 距离 x 非常远。这样算法就没用了&#xff0c;因为该算法仅希望稍微离开鞍点到达另一个点&#xff0c;以便避开鞍点&#xff0c;向另一个驻点前进。主定理
主定理如下所示。本质上&#xff0c;该定理确保目标函数(向驻点收敛)的下降速率。证明策略是&#xff0c;经过特定次数的迭代后&#xff0c;当逼近鞍点时&#xff0c;该函数的值大概率会下降。

713c24f4dcc93cba21870d0700451cdb.png


上图看起来比较复杂&#xff0c;我们可以从中得到以下信息&#xff1a;

  1. 大 O 符号和步长规则都与 β 相关&#xff0c;就此我们可以得出&#xff1a;梯度的利普希茨常数 β 越大&#xff0c;算法收敛时间就越长。
  2. ρ 与参数 ϵ 直接相关&#xff0c;扰动后的黎曼梯度下降(perturbed Riemannian gradient descent)算法将以 1/(2 ϵ^2) 的速率避开鞍点。
  3. 流形的维度是影响 ϵ 的另一个参数。我们可以看到 d 以对数的方式影响收敛速率。


该论文的证明策略是&#xff0c;经过特定次数的迭代后&#xff0c;当逼近鞍点时&#xff0c;该函数的值大概率会下降。作者进一步证明&#xff0c;完成扰动和执行算法的 T 步后&#xff0c;如果迭代仍然远离鞍点&#xff0c;则函数会下降。结论
该论文研究了受限优化问题&#xff0c;即对满足多个流形约束条件和一些关于 f(x) 假设的函数 f(x) 执行最小化。该研究证明&#xff0c;只要函数和流形具备恰当的平滑度&#xff0c;则扰动黎曼梯度下降算法能够避开鞍点。



推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 本文详细解析了JavaScript中相称性推断的知识点,包括严厉相称和宽松相称的区别,以及范例转换的规则。针对不同类型的范例值,如差别范例值、统一类的原始范例值和统一类的复合范例值,都给出了具体的比较方法。对于宽松相称的情况,也解释了原始范例值和对象之间的比较规则。通过本文的学习,读者可以更好地理解JavaScript中相称性推断的概念和应用。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
author-avatar
今生绝恋2702934494
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有