机器之心编辑部编译

要理解深度学习,必须突破常规视角去理解优化

普林斯顿计算机科学教授 Sanjeev Arora 认为,常规的优化观点只关注目标的价值和收敛的速度,而这对于日益重要的深度学习来说是远远不够的。深度学习算法有一些重要的特性并不总是反映在目标值中。所以,要加深对深度学习的理解,还得超越常规视角。

深度学习时代,机器学习通常归结为首先为手头的学习任务定义合适的目标/成本函数,然后使用梯度下降的某种变体(通过反向传播实现)来优化这个函数。

难怪每年有数以百计的机器学习论文贡献给优化的不同领域。但我认为,如果你的目标是对深度学习进行数学理解的话,那么从常规视角去理解优化明显是不够的。

优化的常规视角:尽快找到目标最小可能值的解决方案。

先验上来说,并不确定是否所有的学习都要优化一个目标。大脑中的学习是否也如此是神经科学中一个长期存在的开放性问题。大脑的组成部分似乎已经通过各种进化事件被重新利用/拼凑在一起,整个组合可能或不可以归结为目标的优化。详情见 Marblestone 等人的研究《Towards an integration of deep learning and neuroscience》。

我认为,深度学习算法也有一些重要的特性并不总是反映在目标值中。目前的深度网络是非常过度参数化的,因此有多个最优值。它们被训练到目标几乎为零(即接近最优),如果由此发现的最优(或接近最优)模型在未见过/保留的数据上也表现良好(即泛化效果好),则认为该训练是成功的。这里的问题是,目标的值可能和泛化并不相关(见《Understanding deep learning requires rethinking generalization》)。

当然,专家们现在会问:「泛化理论不正是因为这个原因而被发明为机器学习的「第二条腿」,而优化是「第一条腿」吗?」比如说,这个理论展示了如何给训练目标添加正则化器,以确保解决方案的泛化性。或者,即使在回归等简单任务中,早停(即在达到最佳值之前停止)或者甚至给梯度添加噪声(例如,通过调整批量大小和学习速率)都比完美优化更可取。

然而在实践中,即使是在具有随机标签的数据上,显式正则化器和噪声技巧都无法阻止深度网络达到较低的训练目标。当前的泛化理论旨在对特定模型的泛化原因进行后验解释。但它不知道如何获得解决方案,因此除了建议一些正则化方法之外,不能提供什么优化方法。(我在之前的博客里解释了描述性方法和规定性方法之间的区别,且泛化理论主要是描述性的。)主要的谜团在于:

即使是普通的梯度下降也能很好地找到具有合理泛化性能的模型。此外,加快梯度下降的方法(例如加速或自适应正则化)有时会导致更差的泛化。

换句话说,梯度下降天生就擅长寻找具有良好泛化性能的解决方案。沿着梯度下降的轨迹,我们会看到「魔法」的痕迹,而这魔法在目标值中是捕捉不到的。这让我们想起了那句古老的谚语:

过程比结果更重要。

我将通过在两个简单但具有启发性的任务中进行梯度下降分析来说明这一观点。

使用无限宽的深度网络进行计算

由于过度参数化似乎不会对深度网络造成太大的伤害,研究人员想知道参数到达无穷大这一极限会发生什么:使用固定的训练集(如 CIFAR10)来训练经典的深度网络架构,如 AlexNet 或 VGG19。

这些网络的宽度(即卷积滤波器中的通道数)和全连接内部层中的节点数允许参数增加到无穷大。注意,不管网络有多大,初始化(使用足够小的高斯权重)和训练对于任何有限的宽度来说都是有意义的。我们假设输出损失为 L2。

可以理解的是,这样的问题似乎是无望和无意义的:世界上所有的计算加起来都不足以训练一个无限的网络,而我们的理论家们已经在忙着寻找有限的网络了。

但有时在数学/物理学中,人们可以通过研究极限情况来洞察其中的问题。在这里,我们在有限的数据集(如 CIFAR10)上训练一个无限的网络,最优值的数目是无穷大的,而我们试图理解梯度下降的作用。

多亏了最近关于过度参数化深度网络可证明学习的论文中的见解(其中一些关键论文:《Learning and Generalization in Overparameterized Neural Networks, Going Beyond Two Layers》、《A Convergence Theory for Deep Learning via Over-Parameterization》、《Gradient Descent Finds Global Minima of Deep Neural Networks》和《Stochastic Gradient Descent Optimizes Over-parameterized Deep ReLU Networks》),研究人员已经认识到出现了一个很好的限制结构:

当宽度→∞时,对于一个核回归问题,轨迹接近梯度下降的轨迹,其中(固定)核是所谓的神经切线内核(NTK)。(对于卷积网络,内核是卷积的 NTK 或 CNTK。)

内核由 Jacot 等人鉴定并命名,同时也隐含在一些上述关于过度参数化网络的论文中,例如《Gradient Descent Provably Optimizes Over-parameterized Neural Networks》。

这个固定内核的定义在随机初始化时使用了无限网络。对于两个输入 x_i 和 x_j,内核内积 K(x_i,x_j) 是输出相对于输入的梯度∇x 的内积,分别在 x = x_i 和 x = x_j 处求值。随着网络大小增加到无穷大,可以发现该内核内积收敛到极限值。

我们与 Simon Du 等人的新论文《On Exact Computation with an Infinitely Wide Neural Net》表明,通过动态编程可以有效地计算 CNTK,这让我们得以为任何期望输入有效计算训练网络的结果,即使直接训练无限网络是不可行的。

另外:请不要将这些新结果与一些早期论文混淆,后者将无限网络视为内核或高斯过程,因为它们仅训练网络顶层,将较低层冻结并且随机初始化。

根据经验,我们发现这个无限网络(相对于 NTK 的内核回归)在 CIFAR10 上产生的性能比任何先前已知的内核都要好,当然,不包括那些通过图像数据训练手动调整或设计的内核。例如,我们可以计算与 10 层卷积网络(CNN)相对应的内核,并在 CIFAR10 上获得 77.4%的成功率。

求解矩阵完备化的深度矩阵分解

推荐系统的设计推动,矩阵完备化已经经过了十多年的充分研究:给定未知矩阵的 K 个随机条目,我们希望恢复未知的条目。

解决方案通常不是唯一的。但是如果未知矩阵是低秩或近似低秩并且满足一些额外的技术假设(例如不相干),那么各种算法可以近似甚至精确地恢复未知的条目。

基于核/迹范数最小化的著名算法如下:找到适合所有已知观察并具有最小核范数的矩阵(注意,核范数是秩的凸松弛)。也可以将此作为常规视角所要求的形式的单个目标改写如下,其中 S 是已知条目的索引的子集,λ是乘数:

如果你不了解核范数,你会喜欢 Gunasekar 等人(2017)提出的有趣建议:先把核范数惩罚项丢到一边。尝试通过基于损失的第一项来简单地训练(通过简单的梯度下降/反向传播)具有两层的线性网络来恢复缺失的条目。

这个线性网络只是两个 n×n 矩阵的乘积,所以我们得到以下公式,其中 e_i 是所有为 0 的条目的向量:

「数据」现在对应于索引 (i,j)∈S,并且训练损失捕获端到端模型 M_2M_1 与已知条目的拟合程度。由于 S 是在所有条目中随机选择的,因此如果在预测剩余条目方面做得很好就意味着「泛化」良好。

根据经验,通过深度学习来完成矩阵完备化工作(即,通过梯度下降来解决 M_1,M_2,并完全忘记确保低秩)和经典算法一样效果,因此有了以下猜想,如果这是真的则意味着在这种情况下,核范数捕获可以精确捕获梯度下降的隐式正则化效应。

猜想:当使用深度为 2 的线性网络解决上述矩阵完备化时,所获得的解恰好是通过核范数最小化方法获得的解。

但正如你可能已经猜到的那样,这太简单了。在与 Nadav Cohen 等人的新论文中,我们报告了新的实验,表明上述猜想是错误的。

更有趣的是,我们发现,如果通过进一步将层数从 2 增加到 3 甚至更高来过度参数化问题(我们将这称之为深度矩阵分解),这种解决矩阵完备化的效果甚至比核范数最小化更好。

请注意,我们正在使用略小于核范数算法精确恢复矩阵所需的值 S。在这种数据贫乏的设置中,归纳偏差最为重要!

我们通过分析梯度下降的轨迹以及它的偏置如何强烈偏向于寻找低秩的解决方案,提供了对深度 N 网络改进性能的部分分析,这种偏置比简单的核范数更强。

此外,我们的分析表明,这种对低秩的偏置不能被核范数或端到端矩阵的任何明显的 Schatten 准范数所捕获。

注意:我们发现,著名的深度学习加速方法 Adam 在这里也加快了优化速度,但略微损失了泛化。这与我上面所说的关于传统观点不足以捕捉泛化的内容有关。

结论

虽然上述设置很简单,但这些表明,要理解深度学习,我们必须超越传统的优化观点,后者只关注目标的价值和收敛的速度。

  1. 不同的优化策略如 GD、SGD、Adam、AdaGrad 等,会导致不同的学习算法。它们引发不同的迹,这可能导致具有不同泛化特性的解。

  2. 我们需要开发一个新的词汇(和数学)来推理迹。这超出了静止点、梯度范数、Hessian 范数、平滑度等通常的「景观视图」。注意:迹取决于初始化!

  3. 如果在大学里学到一些关于 ODE / PDE /动力系统/拉格朗日的技巧,可能会更好地理解迹。

入门矩阵分解深度学习算法
21
相关数据
深度学习技术

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

范数技术

范数(norm),是具有“长度”概念的函数。在线性代数、泛函分析及相关的数学领域,是一个函数,其为向量空间内的所有向量赋予非零的正长度或大小。半范数反而可以为非零的向量赋予零长度。

权重技术

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

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

VGG技术

2014年,牛津大学提出了另一种深度卷积网络VGG-Net,它相比于AlexNet有更小的卷积核和更深的层级。AlexNet前面几层用了11×11和5×5的卷积核以在图像上获取更大的感受野,而VGG采用更小的卷积核与更深的网络提升参数效率。VGG-Net 的泛化性能较好,常用于图像特征的抽取目标检测候选框生成等。VGG最大的问题就在于参数数量,VGG-19基本上是参数量最多的卷积网络架构。VGG-Net的参数主要出现在后面两个全连接层,每一层都有4096个神经元,可想而至这之间的参数会有多么庞大。

神经科学技术

神经科学,又称神经生物学,是专门研究神经系统的结构、功能、发育、演化、遗传学、生物化学、生理学、药理学及病理学的一门科学。对行为及学习的研究都是神经科学的分支。 对人脑研究是个跨领域的范畴,当中涉及分子层面、细胞层面、神经小组、大型神经系统,如视觉神经系统、脑干、脑皮层。

参数技术

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

收敛技术

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

推荐系统技术

推荐系统(RS)主要是指应用协同智能(collaborative intelligence)做推荐的技术。推荐系统的两大主流类型是基于内容的推荐系统和协同过滤(Collaborative Filtering)。另外还有基于知识的推荐系统(包括基于本体和基于案例的推荐系统)是一类特殊的推荐系统,这类系统更加注重知识表征和推理。

高斯过程技术

梯度下降技术

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

动力系统技术

动态系统(dynamical system)是数学上的一个概念。动态系统是一种固定的规则,它描述一个给定空间(如某个物理系统的状态空间)中所有点随时间的变化情况。例如描述钟摆晃动、管道中水的流动,或者湖中每年春季鱼类的数量,凡此等等的数学模型都是动态系统。 在动态系统中有所谓状态的概念,状态是一组可以被确定下来的实数。状态的微小变动对应这组实数的微小变动。这组实数也是一种流形的几何空间坐标。动态系统的演化规则是一组函数的固定规则,它描述未来状态如何依赖于当前状态的。这种规则是确定性的,即对于给定的时间间隔内,从现在的状态只能演化出一个未来的状态。 若只是在一系列不连续的时间点考察系统的状态,则这个动态系统为离散动态系统;若时间连续,就得到一个连续动态系统。如果系统以一种连续可微的方式依赖于时间,我们就称它为一个光滑动态系统。

正则化技术

当模型的复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后又增大。当选择的模型复杂度过大时,过拟合现象就会发生。这样,在学习时就要防止过拟合。进行最优模型的选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。

矩阵分解技术

矩阵分解是一种将矩阵简化为其组成部分的方法。这种方法可以简化更复杂的矩阵运算,这些运算可以在分解的矩阵上执行,而不是在原始矩阵本身上执行。它的衍生Non-negative matrix factorization也被用于降维等操作上。

推荐文章
宁波舜宇光电信息有限公司・无
深奥