在机械进修领域,我们经常会听到凸函数和非凸函数,简单来讲,凸函数指的是顺着梯度方向走,函数能得到最优解 ,大部分传统机械进修课题都是凸的。而非凸指的是顺着梯度方向走能够保证是局部最优,但不能保证是全部最优,深度进修以及小部分传统机械进修课题都好坏凸的。在寻求最优解的过程中,研究者通常采用梯度低沉算法。近日,reddit 上的一个热议帖子,帖子内容为「随机梯度低沉能否收敛于非凸函数?」
原贴内容包括:大量的研究和工作表明梯度低沉算法可以收敛于(确定性)凸函数、可微和利普希茨连续函数:
然而,在非凸函数领域,基于梯度低沉算法(例如随机梯度低沉)的收敛程度有多大,目前看来研究还不够充分。例如,神经网络中的受益函数几乎好坏凸的。非凸函数通常有鞍点(即受益函数的一阶导数为 0 的点),我们可以将这些鞍点视为「陷阱」,鞍点的存在阻止梯度低沉到最优点,因为梯度低沉在导数为 0 时不能向前移动。
两座山中间的鞍点(双纽线的交叉点)在机械进修、深度进修中使用的优化算法除了常见的梯度低沉和随机梯度低沉,还包括其他版本,例如 Nesterov 动量、Adam、RMSprop 等几种优化器,这些优化器旨在让梯度远离鞍点。对于这些算法,发帖者很熟悉,但 ta 比较感兴趣的是随机梯度低沉算法本身的理论局限性有哪些?在过去的几周里,发帖人一直在阅读有关这个主题的文章,但是理解其中一些结果所需的数学知识远远超出了 ta 的能力范围。为了弄清这个课题,ta 也查阅了大量的文件,以下是其中 2 篇:文件 1:Stochastic Gradient Descent for Nonconvex Learning without Bounded Gradient Assumptions
随机梯度低沉被大量应用于非凸函数,但研究者对非凸函数的随机梯度低沉的理论尚未完全了解(目前仅对凸函数的随机梯度低沉有了解);
现阶段随机梯度低沉要求对梯度的一致有界性施加一个假设;
论文作者建立了非凸函数随机梯度低沉理论基础,使有界假设可以消除而不影响收敛速度;
论文建立了应用于非凸函数随机梯度低沉收敛的充分条件和最优收敛速度。
文件 2 :Stochastic Gradient Descent on Nonconvex Functions with General Noise Models
尽管随机梯度低沉的最新进展值得注意,但这些进展是建立在对正在优化的函数施加了某些限制(例如,凸性、全部利普希茨连续等)的基础之上;
作者证明,对于一般类的非凸函数,随机梯度低沉迭代要么发散到无穷大,要么收敛到概率为 1 的静止点;
作者进一步限制并证明,无论迭代是发散还是保持有限 —— 在随机梯度低沉的迭代中评估的梯度函数的范数以概率 1 收敛到零,并且符合预期;从而扩大了随机梯度低沉可以应用于的函数范围,同时保持对其全部行为的严格保证。
发帖人表示:基于这些文件,我们是否真的能够证明(随机)梯度低沉有潜力在非凸函数上显示类似的全部收敛性质,达到之前仅在凸函数上显示收敛程度?但是我们仍然有理由相信(随机)梯度低沉与凸函数相比在非凸函数上收敛更困难。网友:课题改成「梯度低沉在什么条件下会收敛于非凸函数」更好针对发帖者的这一课题 —— 随机梯度低沉能否收敛于非凸函数?网友纷纷从自身经验进行解答。机械之心从中挑选出了几个获赞较多的回复。首先来看网友 @anonymousTestPoster 的回答。ta 表示,假设存在一个表现良好的非凸函数,可以参见 Issam Laradji 撰写的《非凸优化》文档。地址:https://www.cs.ubc.ca/labs/lci/mlrg/slides/non_convex_optimization.pdf如果存在向下延伸至 Hessian 矩阵的 Lipschitz 连续性限制,则文档 19 页中的 Thm 似乎表明可以不断取得进展以接近顶点。
如果想要更复杂的函数,则几乎可以肯定需要的函数是可微的或者利普希茨连续,否则只能选择一些处处连续、无处可微的疯狂函数(crazy function),例如 Weierstrass 函数。所以,关于「随机梯度低沉能否收敛于非凸函数」这一课题,ta 认为在某些条件下「会」,因为很多非凸函数可能扰乱可微性。在提出反例时,永远不要低估数学家的想象力。所以,ta 建议发帖者将课题改成「梯度低沉在什么条件下会收敛于某类非凸函数」,然后将每类函数作为子课题进行研究,并消除打破传统梯度低沉法子的非凸函数反例。
接着来看网友 @astone977 指出了原贴内容中存在的一些课题。ta 表示,当发帖者认为神经网络的缺点表面好坏凸时,则受益函数也好坏凸的。但是,MSE 等受益函数是凸函数。将一个非凸映射(神经网络)应用于一个受益函数的输入,可以创建一个非凸缺点表面。如果我们将 MSE、BCE 等凸函数称为受益函数,那么不应该使用相同的术语来描述一个神经网络的非凸缺点表面。这在过去一直是造成混乱的根源,所以 ta 指了出来。
最后,网友 @Funktapus 也表示,如果发帖者只是在讨论优化期间避免局部最小值,则这是优化领域一个普遍且非常古老的课题。通常而言,答案是「会」。我们可以使用随机法子来跳出小的局部最小值。蒙特・卡罗法子(Monte Carlo)是一种经典的法子。另一种法子是在开始梯度低沉之前建立一个网格并找出全部最小值的大区域。
大家如何看待这个课题呢?感兴趣的小伙伴请在留言区积极发言。参考链接:https://www.reddit.com/r/MachineLearning/comments/slnvzw/d_can_stochastic_gradient_descent_converge_on/
原创文章,作者:机器之心,如若转载,请注明出处:https://www.iaiol.com/news/30775