Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

Nadav Cohen作者Panda编译

如何理解深度学习的优化?通过分析梯度下降的轨迹

深度学习很大程度上仍是一个黑箱,但研究者一直没有停下理解它的步伐。普林斯顿高等研究院的研究者 Nadav Cohen 近日发文介绍了理解深度学习优化的进展以及他们近期在这方面的一项研究成果。

神经网络优化本质上是非凸的,但简单的基于梯度的方法似乎总是能解决这样的问题。这一现象是深度学习的核心支柱之一,并且也是我们很多理论学家试图揭示的谜题。这篇文章将总结一些试图攻克这一问题的近期研究,最后还将讨论我与 Sanjeev Arora、Noah Golowich 和 Wei Hu 合作的一篇新论文(arXiv:1810.02281)。该论文研究了深度线性神经网络梯度下降的情况,能保证以线性速率收敛到全局最小值。

图景(landscape)方法及其局限性

很多有关深度学习优化的论文都隐含地假设:在建立了损失图景(尤其是临界点的损失图景,临界点是指梯度消失的点)的几何性质之后,就会得到对其的严格理解。举个例子,通过类比凝聚态物理学的球形自旋玻璃模型,Choromanska et al. 2015 的论证变成了深度学习领域的一个猜想:

图景猜想:在神经网络优化问题中,次优的临界点的 Hessian 非常可能有负的特征值。换句话说,几乎没有糟糕的局部最小值,而且几乎所有的鞍点都是严格的。

针对多种不同的涉及浅(两层)模型的简单问题的损失图景,这一猜想的强形式已经得到了证明。这些简单问题包括矩阵感知、矩阵完成、正交张量分解、相位恢复和具有二次激活的神经网络。也有研究者在探究当图景猜想成立时实现梯度下降到全局最小值的收敛,Rong Ge、Ben Recht、Chi Jin 和 Michael Jordan 的博客已经给出了很好的描述:

他们描述了梯度下降可以如何通过逃避所有的严格鞍点来达到二阶局部最小值(Hessian 为正半定的临界点),并还描述了当将扰动加入到该算法时这个过程是如何有效的。注意这是在图景猜想下,即当没有糟糕的局部最小值和非严格鞍点时,二阶局部最小值可能也是全局最小值。

但是,很显然,图景方法(和图景猜想)不能以这种方式应用于深度(三层或更多层)网络。有多个原因。第一,深度网络通常会引入非严格鞍点(比如,在所有权重都为零的点,参见 Kawaguchi 2016)。第二,图景角度很大程度上忽视了算法方面,而在实践中算法方面对深度网络的收敛有很大的影响——比如初始化或批归一化的类型。最后,正如我在之前的文章中谈到的,基于 Sanjeev Arora 和 Elad Hazan 的研究,为经典线性模型添加(冗余的)线性层有时能为基于梯度的优化带来加速,而不会给模型的表现力带来任何增益,但是却会为之前的凸问题引入非凸性。任何仅依靠临界点性质的图景分析都难以解释这一现象,因为通过这样的方法,因为优化一个具有单个临界点且该临界点是全局最小值的凸目标是最困难的。

解决方案?

图景方法在分析深度学习优化上的局限性说明它可能抛弃了太多重要细节。比起「图景方法是否优雅」,也许更相关的问题是「来自特定初始化的特定优化器轨迹(trajectory)具有怎样的行为?」

尽管基于轨迹的方法看起来比图景方法繁重得多,但它已经带来了可观的进展。近期一些论文(比如 Brutzkus and Globerson 2017、Li and Yuan 2017、Zhong et al. 2017、Tian 2017、Brutzkus et al. 2018、Li et al. 2018、Du et al. 2018、Liao et al. 2018)已经采用了这一策略,并成功分析了不同类型的浅模型。此外,基于轨迹的分析也正开始涉足图景方法之外的领域——对于线性神经网络情况,他们已经成功确立在任意深度下梯度下降到全局最小值的收敛性。

对深度线性神经网络的基于轨迹的分析

线性神经网络是使用线性激活或不使用激活的全连接神经网络。具体来说,一个输入维度为 d_0,输出维度为 d_N 且隐藏维度为 d_1,d_2...d_{N-1} 的深度为 N 的线性网络是的线性映射,该映射参数化为,其中是第 j 层的权重矩阵。尽管这样表示看起来很简单普通,但线性神经网络在优化方面在某种程度上复杂得让人惊讶——它们会导致具有多个最小值和鞍点的非凸训练问题。被视为深度学习中优化的替代理论,基于梯度的算法在线性神经网络上的应用在这段时间收到了极大的关注。

就我所知,Saxe et al. 2014 是首次为深度(三或更多层)线性网络执行了基于轨迹的分析,在白化的数据上处理最小化 ℓ2 损失的梯度流(学习率极小的梯度下降)。尽管这个分析有很重要的贡献,但却并未正式确立到全局最小值的收敛性,也没有考虑计算复杂性方面(收敛所需的迭代次数)。近期研究 Bartlett et al. 2018 在填补这些空白上取得了进展,应用了基于轨迹的方法来分析用于线性残差网络特定案例的梯度下降,即所有层都有统一宽度(d_0=d_1=...=d_N)且同等初始化(W_j=I, ∀j)的线性网络。考虑到数据-标签分布各有不同(他们称之为「targets」),Bartlett 等人展示了可证明梯度下降以线性速率收敛到全局最小值的案例——在次迭代后与最优的损失小于 ϵ>0;还展示了无法收敛的情况。

在我与 Sanjeev Arora、Noah Golowich 和 Wei Hu 合作的一篇新论文中,我们在使用基于轨迹的方法方面又向前迈进了一步。具体而言,我们分析了任意不包含「瓶颈层」的线性神经网络梯度下降轨迹,瓶颈层是指其隐藏维度不小于输入和输出维度之间的最小值;还证明了以线性速率到全局最小值的收敛性。但初始化需要满足下面两个条件:(1)近似平衡度(approximate balancedness)——;(2)缺值余量(deficiency margin)——初始损失小于任意秩缺失解的损失。我们证明这两个条件都是必需的,违反其中任意一个都可能导致轨迹不收敛。在线性残差网络的特殊案例中,初始化时的近似平衡度很容易满足,而且对于以零为中心的小随机扰动进行初始化的自定义设置也同样容易满足。后者也会导致出现具有正概率的缺值余量。对于 d_N=1 的情况(即标量回归),我们提供了一个随机初始化方案,能同时满足这两个条件,因此能以恒定概率以线性速率收敛到全局最小值。

我们分析的关键是观察权重是否初始化到了近似平衡,它们会在梯度下降的整个迭代中一直这样保持。换句话说,优化方法所采取的轨迹遵循一个特殊的特征:

其意思是在整个时间线中,所有层都有(接近)一样的奇异值集合,而且每层的左侧奇异值向量都与其后一层的右侧奇异值向量(接近)一致。我们表明这种规律性意味着梯度下降能稳定运行,从而证明即使是在损失图景整体很复杂的案例中(包括很多非严格鞍点),它也可能会在优化器所取的特定轨迹周围表现得特别良好。

总结

通过图景方法解决深度学习中优化的问题在概念上很吸引人,即分析与训练所用算法无关的目标的几何性质。但是这一策略存在固有的局限性,主要是因为它要求整个目标都要优雅,这似乎是一个过于严格的要求。替代方法是将优化器及其初始化纳入考量,并且仅沿所得到的轨迹关注其图景。这种替代方法正得到越来越多的关注。图景分析目前仅限于浅(两层)模型,而基于轨迹的方法最近已经处理了任意深度的模型,证明了梯度下降能以线性速率收敛到全局最小值。但是,这一成功仅包含了线性神经网络,还仍有很多工作有待完成。我预计基于轨迹的方法也将成为我们正式理解深度非线性网络的基于梯度的优化的关键。


原文链接:http://www.offconvex.org/2018/11/07/optimization-beyond-landscape/

理论梯度下降深度学习
3
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

学习率技术

在使用不同优化器(例如随机梯度下降,Adam)神经网络相关训练中,学习速率作为一个超参数控制了权重更新的幅度,以及训练的速度和精度。学习速率太大容易导致目标(代价)函数波动较大从而难以找到最优,而弱学习速率设置太小,则会导致收敛过慢耗时太长

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

梯度下降技术

梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

批归一化技术

批归一化(Batch Normalization,BN)由谷歌于2015年提出,是一个深度神经网络训练的技巧,它不仅可以加快模型的收敛速度,还能在一定程度上缓解深层网络中的“梯度弥散”问题,从而使得训练深层网络模型更加容易和稳定。目前BN已经成为几乎所有卷积神经网络的标配技巧了。从字面意思看来Batch Normalization(简称BN)就是对每一批数据进行归一化。

优化器技术

优化器基类提供了计算梯度loss的方法,并可以将梯度应用于变量。优化器里包含了实现了经典的优化算法,如梯度下降和Adagrad。 优化器是提供了一个可以使用各种优化算法的接口,可以让用户直接调用一些经典的优化算法,如梯度下降法等等。优化器(optimizers)类的基类。这个类定义了在训练模型的时候添加一个操作的API。用户基本上不会直接使用这个类,但是你会用到他的子类比如GradientDescentOptimizer, AdagradOptimizer, MomentumOptimizer(tensorflow下的优化器包)等等这些算法。

推荐文章
暂无评论
暂无评论~