摘要:本文将讨论寻找凸路径( convex path )时可能会遇到的不同类型的临界点( critical points),特别是基于梯度下降的简单启发式学习方法,在很多情形下会使你在多项式时间内陷入局部最小值( local minimum ) 。

凸函数比较简单——它们通常只有一个局部最小值。非凸函数则更加复杂。在这篇文章中,我们将讨论不同类型的临界点( critical points) ,当你在寻找凸路径( convex path )的时候可能会遇到。特别是,基于梯度下降的简单启发式学习方法,在很多情形下会致使你在多项式时间内陷入局部最小值( local minimum ) 。

临界点类型

为了最小化函数f:Rn→R,最流行的方法就是往负梯度方向前进∇f(x)(为了简便起见,我们假定谈及的所有函数都是可微的),即:

y=x−η∇f(x),

其中η表示步长。这就是梯度下降算法(gradient descentalgorithm)。

每当梯度∇f(x)不等于零的时候,只要我们选择一个足够小的步长η,算法就可以保证目标函数向局部最优解前进。当梯度∇f(x)等零向量时,该点称为临界点(critical point),此时梯度下降算法就会陷入局部最优解。对于(强)凸函数,它只有一个临界点(critical point),也是全局最小值点(global minimum)。

然而,对于非凸函数,仅仅考虑梯度等于零向量远远不够。来看一个简单的实例:

y=x12−x22.

当x=(0,0)时,梯度为零向量,很明显此点并不是局部最小值点,因为当x=(0,ϵ)时函数值更小。在这种情况下,(0,0)点叫作该函数的鞍点(saddle point)。

为了区分这种情况,我们需要考虑二阶导数∇2f(x)——一个n×n的矩阵(通常称作Hessian矩阵),第i,j项等于 。当Hessian矩阵正定时(即对任意的u≠0,有u2f(x)u > 0恒成立),对于任何方向向量u,通过二阶泰勒展开式,可知x必定是一个局部最小值点。同样,当Hessian矩阵负定时,此点是一个局部最大值点;当Hessian矩阵同时具有正负特征值时,此点便是鞍点。

对于许多问题,包括 learning deep nets ,几乎所有的局部最优解都有与全局最优解(global optimum)非常相似的函数值,因此能够找到一个局部最小值就足够好了。然而,寻找一个局部最小值也属于NP-hard问题(参见 Anandkumar,GE 2006 中的讨论一节)。实践当中,许多流行的优化技术都是基于一阶导的优化算法:它们只观察梯度信息,并没有明确计算Hessian矩阵。这样的算法可能会陷入鞍点之中。

在文章的剩下部分,我们首先会介绍,收敛于鞍点的可能性是很大的,因为大多数自然目标函数都有指数级的鞍点。然后,我们会讨论如何对算法进行优化,让它能够尝试去避开鞍点。

对称与鞍点

许多学习问题都可以被抽象为寻找k个不同的分量(比如特征,中心…)。例如,在 聚类 问题中,有n个点,我们想要寻找k个簇,使得各个点到离它们最近的簇的距离之和最小。又如在一个两层的 神经网络 中,我们试图在中间层寻找一个含有k个不同神经元的网络。在我 先前的文章 中谈到过张量分解(tensor decomposition),其本质上也是寻找k个不同的秩为1的分量。

解决此类问题的一种流行方法是设计一个目标函数:设x1,x2,…,xK∈Rn表示所求的中心(centers),让目标函数f(x1,…,x)来衡量函数解的可行性。当向量x1,x2,…,xK是我们需要的k的分量时,此函数值会达到最小。

这种问题在本质上是非凸的自然原因是转置对称性permutation symmetry)。例如,如果我们将第一个和第二个分量的顺序交换,目标函数相当于:f(x1,x2,…,xk)= f(x1,x2,…,xk)。

然而,如果我们取平均值,我们需要求解的是,两者是不等价的!如果原来的解是最优解,这种均值情况很可能不是最优。因此,这种目标函数不是凸函数,因为对于凸函数而言,最优解的均值仍然是最优。 

所有相似解的排列有指数级的全局最优解。鞍点自然会在连接这些孤立的局部最小值点上出现。下面的图展示了函数y = x14−2x12 + X22:在两个对称的局部最小点(−1,0)和(1,0)之间,点(0,0)是一个鞍点。

避开鞍点

为了优化这些存在许多鞍点的非凸函数,优化算法在鞍点处(或者附近)也需要向最优解前进。最简单的方法就是使用二阶泰勒展开式:

如果∇f(x)的梯度为零向量,我们仍然希望能够找到一个向量u,使得u2f(x)u<0。在这种方式下,如果我们令y = x +ηu,函数值f(Y)就会更小。许多优化算法,诸如 trust region algorithms 和 cubic regularization 使用的就是这种思想,它们可以在多项式时间内避开鞍点。

严格鞍函数

通常寻找局部最小值也属于NP-hard问题,许多算法都可能陷入鞍点之中。那么避开一个鞍点需要多少步呢?这与鞍点的表现良好性密切相关。直观地说,如果存在一个方向u,使得二阶导uT2f(x)u明显比0小,则此鞍点x表现良好(well-behaved)——从几何上来讲,它表示存在一个陡坡方向会使函数值减小。为了量化它,在我 与Furong Huang, Chi Jin and Yang Yuan 合作的一篇论文中介绍了严鞍函数的概念(在 Sun et al. 2015 一文中称作“ridable”函数)

对于所有的x,如果同时满足下列条件之一,则函数f(x)是严格鞍函数: 
1. 梯度∇f(x)很大。 
2. Hessian矩阵∇2f(x)具有负的特征值。 
3. 点x位于局部极小值附近。

从本质上讲,每个点x的局部区域看起来会与下图之一类似:

对于这种函数, trust region算法 和 cubic regularization 都可以有效地找到一个局部最小值点。

定理(非正式):至少存在一种多项式时间算法,它可以找到严格鞍函数的局部最小值点。

什么函数是严格鞍? Ge et al. 2015 表明张量分解( tensor decomposition )问题属于严格鞍。 Sun et al. 2015 观察到诸如完整的 dictionary learning , phase retrieval 问题也是严格鞍。

一阶方法避开鞍点

Trust region算法非常强大。然而它们需要计算目标函数的二阶导数,这在实践中往往过于费时。如果算法只计算函数梯度,是否仍有可能避开鞍点?

这似乎很困难,因为在鞍点处梯度为零向量,并且没有给我们提供任何信息。然而,关键在于鞍点本身是非常不稳定的(unstable):如果我们把一个球放在鞍点处,然后轻微地抖动,球就可能会掉下去!当然,我们需要让这种直觉在更高维空间形式化,因为简单地寻找下跌方向,需要计算Hessian矩阵的最小特征向量。

为了形式化这种直觉,我们将尝试使用一个带有噪声的梯度下降法(noisy gradient descent

y=x−η∇f(x)+ϵ.

这里ϵ是均值为0的噪声向量。这种额外的噪声会提供初步的推动,使得球会顺着斜坡滚落。

事实上,计算噪声梯度通常比计算真正的梯度更加省时——这也是随机梯度法( stochastic gradient )的核心思想,大量的工作表明,噪声并不会干扰凸优化的收敛。对于非凸优化,人们直观地认为,固有的噪声有助于收敛,因为它有助于当前点远离鞍点(saddle points)。这并不是bug,而是一大特色!

在此之前,没有良好的迭代上限(upper bound)能够确保避开鞍点并到达局部最小值点(local minimum)。在 Ge et al. 2015 ,我们展示了:

定理(非正式):噪声梯度下降法能够在多项式时间内找到严格鞍函数的局部最小值点。

多项式高度依赖于维度N和Hessian矩阵的最小特征值,因此不是很实用。对于严格鞍问题,找到最佳收敛率仍是一个悬而未决的问题。

最近 Lee et al. 的论文表明如果初始点是随机选择的,那么即使没有添加噪声,梯度下降也不会收敛到任何严格鞍点。然而他们的结果依赖于动态系统理论(dynamical systems theory)的 稳定流形定理(Stable Manifold Theorem) ,其本身并不提供任何步数的上界。

复杂鞍点

通过上文的介绍,我们知道算法可以处理(简单)的鞍点。然而,非凸问题的外形更加复杂,含有退化鞍点(degeneratesaddle points)——Hessian矩阵是半正定的,有0特征值。这样的退化结构往往展示了一个更为复杂的鞍点(如 monkey saddle (猴鞍),图(a))或一系列连接的鞍点(图(b)(c))。在 Anandkumar, Ge 2016 我们给出了一种算法,可以处理这些退化的鞍点。

非凸函数的轮廓更加复杂,而且还存在许多公认的问题。还有什么函数是严格鞍?当存在退化鞍点,或者有伪局部最小值点时,我们又该如何使优化算法工作呢?我们希望有更多的研究者对这类问题感兴趣!

原文: Escaping from Saddle Points

译者:刘帝伟  审校:刘翔宇

责编:周建丁(投稿请联系zhoujd@csdn.net)

优化算法中的鞍点与梯度下降相关推荐

  1. AI应用开发基础傻瓜书系列2-神经网络中反向传播与梯度下降的基本概念

    AI应用开发基础傻瓜书系列2-神经网络中反向传播与梯度下降的基本概念 Copyright © Microsoft Corporation. All rights reserved. 适用于Licens ...

  2. 最优化算法数学详解之——梯度下降法和牛顿迭代法

    目录 应用情景 为何不直接求解析解? 梯度下降法 牛顿迭代法 两种算法比较 应用情景 当我们有了一堆数据,需要用这堆数据构建模型时,首先需要确定模型中的变量,其次确定模型形式,最后需要确定模型中的参数 ...

  3. 为什么在优化算法中使用指数加权平均

    本文知识点: 什么是指数加权平均? 为什么在优化算法中使用指数加权平均? β 如何选择? 1. 什么是指数加权平均 指数加权平均(exponentially weighted averges),也叫指 ...

  4. 机器学习优化算法中梯度下降,牛顿法和拟牛顿法的优缺点详细介绍

    1.梯度下降法 梯度下降法实现简单,当目标函数是凸函数时,梯度下降法的解是全局解.一般情况下,其解不保证是全局最优解,梯度下降法的速度也未必是最快的. 梯度下降法的优化思想:用当前位置负梯度方向作为搜 ...

  5. 【深度学习】PyTorch 中的线性回归和梯度下降

    作者 | JNK789   编译 | Flin  来源 | analyticsvidhya 我们正在使用 Jupyter notebook 来运行我们的代码.我们建议在Google Colaborat ...

  6. 回归算法-线性回归分析-正规方程和梯度下降

    1.分类和回归最本质的区别 定量输出称为回归,或者说是连续变量预测:     定性输出称为分类,或者说是离散变量预测. 举个特别好理解的例子: 预测明天的气温是多少度,这是一个回归任务: 预测明天是阴 ...

  7. 系列之2-神经网络中反向传播与梯度下降的基本概念

    Copyright © Microsoft Corporation. All rights reserved. 适用于License版权许可 更多微软人工智能学习资源,请见微软人工智能教育与学习共建社 ...

  8. Adam优化算法中的指数移动平均

    机器学习经典算法(三)--指数加权平均 机器学习经典算法(三)–指数加权平均 指数加权平均(Exponentially Weighted Averages)是一些改进梯度下降法重要理论,如上篇博文梯度 ...

  9. 线性回归中,三种梯度下降MGD、BGD与MBGD对比研究(一)——公式推导

    1.线性回归 我们都知道,一般线性回归的假设函数为: hθ=∑j=1nθjxjh_{\theta} = \sum_{j=1}^{n}\theta_{j}x_{j}hθ​=j=1∑n​θj​xj​ 即: ...

最新文章

  1. mysql 5.6 cmake 安装_Cmake MySQL5.6 编译安装
  2. linux没有semanage命令,SELinux-semanage命令详解
  3. Etcd 架构与实现解析
  4. C核心技术手册(五)
  5. 盘点程序员的一些经典笑话
  6. mysql中count(*),count(字段),count(1)的区别
  7. uwsgi怎么通过浏览器访问某个脚本_4个Shell小技巧帮你提高机器学习效率:写好脚本,事半功倍...
  8. KVM源代码阅读--内核版本3.17.4
  9. python编程特点_Python基础(1)--Python编程习惯与特点
  10. ubuntu设置python3.7为默认(python版本切换)
  11. CVPR2013感兴趣的文章整理
  12. java数据结构 mobi_数据结构:Java语言描述(第2版) pdf epub mobi txt 下载
  13. 在龙芯1c上使用rt-thread统一标准的spi接口
  14. OpenGL 编程指南笔记——第8章 OpenGL 绘制像素、位图、字体和图像
  15. 官网Tomcat下载方法(亲测)
  16. 【优化模型】推销员问题模型
  17. 计算机显示器画画的清晰度,如何设置显示器分辨率让画面更清晰
  18. 概述-数据建模是什么?
  19. android appwidget 空间动画,Android学习之AppWidget笔记分享
  20. python写名字-python写心形名字

热门文章

  1. 算法题之创造新世界(动态规划)
  2. 三星2016换电池教程
  3. ALSA声卡笔记4-----体验声卡
  4. 企业信息安全应对勒索软件的攻击难度提升
  5. mq查看队列管理器信息linux,IBM WebSphere MQ for linux 安装详解 | MUCHINFO
  6. SpringBoot(二)Error resolving template “xxx”, template might not exist or might not be accessible解决办法
  7. 岭南师范学院专插本计算机,2019年岭南师范学院专插本招生专业
  8. 碧山计划对乡土遗产保护的启示
  9. java 文件去除扩展名_在Java中删除文件扩展名
  10. matlab中关于fix(x),floor(x),ceil(x)的区别