看最新进展深入了解深度学习(第一部分)
摘要: 在本文中,通过讲解非凸性优化深入了解深度学习,表达对神经网络的高维损失函数和SGD的解释说明的更多感知,同时表明了新的形式主义方法正在被建立在具有深层神经网络优化的真实数学理论的目标中。
对深入学习更好理解的说法,是在2017年12月在神经信息处理系统大会(NIPS)的颁奖典礼上,阿里·拉希米(Ali Rahimi)的论文《关于时间的考验(Test-of-Time)》的核心思想。通过比较深度学习与炼金术,Ali的目的不是为了颠覆整个领域,而是“打开对话”。这个目标已经实现了,并且人们还在争论现在的深度学习实践是否应该被看作是炼金术、工程学还是科学。
七个月之后,在斯德哥尔摩召开了机器学习国际大会(ICML),有超过5000人参加,发表了629篇论文,这是关于基础机器学习研究的最重要的活动之一。深度学习理论已成为大会最重要的主题之一
大家在第一天就显露出浓厚的兴趣了,大会最大的会议室挤满了机器学习的爱好者,他们准备听SanjeevArora的《深入学习的理论认识》讲座。在普林斯顿大学计算机科学系教授的讲话中,总结了当前深度学习理论研究的领域,并将其分为四大分支:
· 非凸性优化:我们如何理解与深度神经网络相关的高度非凸性损失函数?为什么会出现随机梯度下降甚至收敛?
· 过度参数化和泛化:在传统统计学理论中,泛化取决于参数的数量,而并不是在深度学习中。为什么呢?我们能找到另一个更好的泛化方式吗?
· 深度的作用:深度是如何帮助神经网络进行收敛的呢?深度和泛化之间的联系是什么样的?
· 生成的模型:我们可以用什么理论特性来防止GANs的波动或避免模式崩溃?
在本系列文章中,特别关注一下2018年的ICML,我们基于最新的文章将尝试在以上四个领域中建立一些基本认识。
文章的第一部分将重点讨论深度网络的非凸性优化的奥秘。
非凸性优化
我猜想,很多人都尝试过从零开始训练自己的深度网络,然后当放弃的时候感觉很糟糕,因为无法让深度网络发挥作用。我认为这不是你的错,而是梯度下降的问题。
随机梯度下降(SGD)是深度学习的基石,它应当找到一个高度非凸性优化问题的解决方案,并且确定是否有效,这是我们在深层学习理论中必须解决的最基本问题。更具体地说,深度神经网络的非凸性优化学习可以分为以下两个问题:
· 损失函数是什么样的?
· 为什么随机梯度下降收敛?
损失函数是什么样的?
如果要求你设想一个全局最小值,那么你脑海中浮现的第一个表示形式很可能是这样的:
这是正常的,在二维世界中,发现问题并不稀奇,在围绕全局最小值的情况下,函数是严格的呈凸状的(这意味着此时黑塞矩阵的两个特征值都是正的)。但是,在一个拥有数十亿个参数的世界里,正如深度学习的情况一样,没有关于围绕全局最小值方向的可能性有多大?或者相同地,黑塞矩阵不包含一个零(或几乎为零)特征值?
SanjeevArora在教程中,第一个阐述是,损失函数中可能采用方向的数量随着维度呈指数性地增长。
那么,直观地说,一个全局最小值看起来可能不是一个点,而是一个连接起来的,并呈多种形式出现的形态。这意味着,如果已经达到全局最小值,那么你应该能够在所有点都是最小值的平面路径上到处移动。这已经被海德堡大学的一个团队在大型网络上得到了实验证明,相关的论文是《神经网络能量环境的本质无障碍》(Essentially No Barriers in Neural Network Energy Landscape)。他们提出了一个更通用的说法,即任何两个全局最小值都可以通过平面路径连接。
图1.左图表示了一个切片,通过在CIFAR10上DenseNet-40-12的100万维的训练损失函数和经过我们的方法找到的最小能量路径所得到的。平面是由两个最小值和路径节点的平均值组成。右图表示了沿着最小值和高维路径之间的线性线段的损失。出人意料的是,沿着这条路径的能量基本上是平的。
众所周知,MNIST上的CNN(卷积神经网络)和PTB上的RNN(循环神经网络)就是这种情况,但是这项研究将这一说法扩展到更高级的数据集(CIFAR10 and CIFAR100)上以训练更大型的网络(DenseNets and ResNets)。为了找到这个路径,他们使用了来自分子统计力学的一种启发,称为AutoNEB。其思想是在两个最小值之间创建初始路径(例如线性的),并在该路径上放置枢轴。然后迭代地修改枢轴的位置,使得每个枢轴的损失最小化,并确保枢轴之间的距离保持不变(通过弹性模拟枢轴之间的空间)。
如果他们没能从理论上证明这一结果,那么就会对存在这种路径的原因给出一些直观的解释:如果我们修改单个参数,例如添加一个小的常数,而是让其它参数自由地适应这个变化以将损失降到最低,那么可以认为通过微小地调整,其它各式各样的参数可以“弥补”仅对其中一个强加的变化。
因此,这篇论文的结果可以帮助我们以不同的方式,并通过超参数化的透镜和高维空间来看到最小值。更广泛地来说,当考虑神经网络的损失函数时,你应该始终记住在所提供点可能的方向的数量是巨大的。另一个结果是,鞍点必须比局部最小值多的多:在给定的(关键)点上,数十亿个可能的方向中,很可能找到一个下降的方向。
为什么随机梯度下降收敛(或者不收敛)?
深度神经网络优化中的第二个重要问题与SGD的收敛特性有关。虽然这个算法长久以来被认为是梯度下降的相似版本,但是我们现在有证据表明SGD实际上收敛的更好、更泛化。另外,我们是不是可以将其形式化,并在数量上解释SGD规避局部最小值或鞍点的能力呢?
随即梯度下降修改损失函数
论文《另一个观点:SGD何时规避局部最小值?》(An Alternative View: When Does SGD Escape Local Minima?)表明,执行SGD与在卷积损失函数上进行规则梯度下降是一样的。基于这种观点和某些假设,他们证明了SGD将设法规避局部最小值并收敛到全局最小值附近一个较小的区域。
图3:在一个尖峰的函数f上运行SGD。第1行:函数f在均匀的随机噪声卷积之后变得平滑了。第2行:在不同的噪声级别上运行SGD。每一个数字是用100个不同随机的、初始化后的试验获得的。红点代表这些试验的最后迭代,而蓝条代表累积计数。没有噪声的SGD容易陷入各种局部的最小值,而具有适当的噪声级别的SGD收敛到局部的区域。第3行:为了更接近x*,可以在缩小学习速率的多个阶段中运行SGD。
SGD是由随机微分方程控制的
SGD的另一种方法是连续的SGD,这确实改变了我对这个算法的看法。这个想法是由YoshuaBengio在ICML的非凸优化研讨会上关于随机梯度下降、平面性和泛化的演讲中提出的。SGD没有在损失函数上移动一个点,而是一个点云,换句话说,是一个分布。
上面幻灯片中的内容是从随机梯度下降、平坦度和泛化中提取出来的,在2018年的ICML由Y. Bengio提供,他提出了用另一种方法来理解SGD,通过这种方法你可以用分布(点云)代替点。
这个点云的大小(即相关分布的方差)与learning_rate/batch_size的值成正比。在一篇论文中给出了证明,《随机梯度下降进行变分推理,收敛到深度网络的极限循环》(Stochastic gradient descent performs variational inference, converges to limit cycles for deep networks),这是他们在机器学习几何学研讨会上提出的。这个公式非常的直观:小批量的大小意味着非常嘈杂的梯度(因为是在数据集非常小的子集上计算的),而高学习率意味着嘈杂的步骤。
将SGD看作是随时间移动的分布,其结果是,控制下降的方程现在是随机偏微分方程。更确切地说,在某些假设的条件下,表明控制方程实际上是福克-普朗克方程(Fokker-Planck equation)。
上面的幻灯片是在2018年的ICML上,从P.Chaudhari和S.Soatto的深度网络随机梯度下降的高维几何学与动力学的演讲中获得的,展示了如何从离散系统过度到福克-普朗克方程所描述的连续系统。
在统计物理学中,这种类型的方程描述了暴露于拖曳力(漂移分布,即移动其平均值)和随机力(扩散分布,即提高其方差)的颗粒演变。在SGD中,拖曳力由真实梯度模拟的,而随机力对应于算法固有的噪声。如上述幻灯片中看到的,扩散项与温度项T=1/β=learning_rate/(2*batch_size)是成比例的,这再次表明了这个比率的重要性!
上图表示福克-普朗克方程下分布的演化,它随着时间的推移在左边漂移和扩散。(来源:维基百科)
利用这个框架,Chaudhari和Soato证明了我们的分布将单调收敛到某一稳定分布(对KL-divergence来说):
论文《随机梯度下降进行变分推理,收敛到深度网络的极限循环》的主要法则之一,证明了分布到平稳状态(对KL-divergence来说)的单调收敛性。第二个方程表明了最小化F等于最小化某个可能的ϕ,以及最大化分布的熵(由温度系数1/β控制平衡)。
上面的理论有几个有趣的地方值得在这说明一下:
· 由SGD最小化的函数可以被重写为两项之和(见等式11):可能的Φ的期望值和分布的熵。温度系数1/β控制这两项之间的平衡;
可能的Φ只取决于网络的数据和体系结构(而不是优化过程),如果它等于损失函数,那么SGD将收敛到一个全局的最小值。但是,论文里表明了这种情况很少发生,并且知道Φ与损失函数的差距,这将告诉你SGD将要收敛的可能性有多大;
· 最终分布的熵取决于learning_rate /batch_size(温度)的值。直观地来说,熵与分布的大小有关,并且具有一个高的温度值常常归结为具有高方差的分布,这通常意味着是一个平面的最小值。由于平面最小值通常被认为具有更好的泛化能力,因此它与高效学习和低批量值常常导致更好的最小值的实验发现是一致的;
因此,看到SGD作为一个随着时间推移的分布,向我们表明了learning_rate/batch_size的值比每个关于收敛和泛化分离的超参数更有意义。除此之外,它能够引入与收敛相关的网络潜力,并且可以为体系结构检索提供良好的度量。
结论
寻找深度学习理论的探索可以分为两部分:首先,通过玩具模型和实验,建立关于深度学习如何和为什么起作用的感知,然后将这些感知表示成数学形式,这样就可以帮助我们解释当前的结果和以后产生新的结果。
在本文中,我们试图表达对神经网络的高维损失函数和SGD的解释说明的更多感知,同时表明了新的形式主义方法正在被建立在具有深层神经网络优化的真实数学理论的目标中。
但是,尽管非凸性优化是深层学习的基础,并且有大量网络的层和参数,但是它的成功主要来自于具备良好的泛化能力。这将是下一部分的目标。
阿里云云栖社区组织翻译。
文章原标题《Recent Advances for a Better Understanding of Deep Learning − PartI 》
作者:Arthur Pesah
译者:奥特曼,审校:袁虎。