百科问答小站 logo
百科问答小站 font logo



梯度下降法的神经网络容易收敛到局部最优,为什么应用广泛? 第1页

  

user avatar   li-ke-26-99 网友的相关建议: 
      

因为你的直觉是错的。

你以为你所优化的神经网络参数空间可能会像下图一样陷入local minima:

但实际上在高维空间中绝大多数梯度值为0的点不是上图所示的local minima,而是saddle point(我们在将低维空间中的直觉想当然地推广到高维时出现了问题):

假设在一个20,000维的参数空间中,如果某个点梯度值为0,那么在每个方向上既可以是凸(convex)函数也可以是凹(concave)函数(如下图所示)。但要想该点成为local minima的话,所有的20,000个方向都必须是凸的,在神经网络构成的巨大的参数空间中,这个概率是十分小的。

更详细的解释可以参看:

1. 有哪些学术界都搞错了,忽然间有人发现问题所在的事情? - 李振华的回答 - 知乎

2. Deep Learning Specialization - Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization


user avatar   summer-clover 网友的相关建议: 
      

这是Deep Learning Theory里很基本也很核心的一个问题。

在这个问题上,初学者容易被入门教学误导,非此研究方向的业内人士也容易有过时的认知。


首先问题描述不够准确。

更准确的说法是——

(1)正因为梯度下降法容易收敛到局部最优,所以大家几乎从来不用梯度下降做非凸优化,包括训练神经网络。

(2)正因为随机梯度下降法容易逃离鞍点和泛化不好的minima(主要是sharp minima),所以随机梯度下降(SGD)和它的变种(比如Momentun、Adam)才是训练神经网络最流行的方法。


鞍点(saddle points)和泛化不好的最优点(bad/sharp minima)在深度学习里的确是广泛存在的。但这是神经网络复杂的loss landscape带来的问题,而不是优化器带来的问题。反而,优化器是来解决问题的。

正因为saddle points和bad minima太多了,所以你才太需要随机优化了。


有很多问题在深度学习理论里有和传统机器学习和最优化理论完全不一样的解答。很多传统观点在深度学习里都是值得怀疑的。很少有教材会强调这件事或者指出它们的不同。于是就有一个很尴尬的现象。很多深度学习入门的教材和课程里面混合了大量传统机器学习的观点和最优化理论的观点。大量的博客和科普文章更是剪不断、理还乱。

(另一个常见误解是模型大小对泛化的影响:zhihu.com/question/4348)

这也不奇怪。因为深度学习理论的进展主要藏在最近几年的论文里,可能还要很长时间才能进入英文教材,还需要更长的时间才能进入中文教材。


归纳一下:

优化理论里大家更在乎的是到critical points的收敛性,梯度逐渐收敛到0即可。至于是找到minima还是saddle points,超纲了。

机器学习里大家在乎是找到的是global minima,还是local minima。local minima意味着training loss还比较高,还没优化到位。但是global minima还是local minima在深度学习里不重要,因为所有的minima对应的loss都差不多小[1]。

深度学习里,大家很在乎saddle points附近的动力学(影响优化),大家非常在乎flat minima还是sharp minima(影响泛化)。因为saddle points附近的优化会非常慢,而minima flatness对深度学习泛化界的影响非常大。

(Note: 鞍点逃逸问题一般指的是逃离 -first-order stationary points,其实是鞍点附近、梯度很小的区域,而不是梯度严格等于0的点。)

所以深度学习动力学有两个非常值得研究的核心问题:

一,怎么快速逃离鞍点;

二,怎么逃离sharp minima找到flat minima。

其理论价值是,我们可以更好地理解深度神经网络的训练过程。其实践价值是,我们可以更有依据地调参或者设计新的随机优化器。


很幸运的是,SGD为代表的随机优化器在这两个问题里都有相当好的性质。

直觉上的理解其实很简单——在随机梯度噪音扰动下,优化器可以加速逃离鞍点,也可以加速逃离sharp minima。


一般的意义上的回答就到这里就结束了。但这个回答只是定性的,还不够好,因为我们不能量化地预测SGD的行为。

就像我们都知道苹果会掉在地上,但我们还需要牛顿力学来准确语言苹果是如何掉在地上的。现在的深度学习理论的完善程度差不多相当于牛顿前的运动学,主要靠经验和定性的结论。俗称“炼丹“,便是如此。



如果想更深(shu)入(xue)地理解这个问题,我正好可以介绍一下这个方向的最新进展。正好是我们组的一个系列工作的其中一篇SGD Diffusion Theory[2]:分析了为什么SGD倾向于逃离sharp minima找到flat minima。(ICLR2021新鲜出炉,评分前6%: openreview.net/forum?

(我们组特长其实是弱监督学习。去年ICML2020全组(只计一作、尾作)正好10篇,其中一半左右都是弱监督学习的文章。深度学习理论是最近些年组里少部分人做的新方向,还不算很强。目前全组中的conference大多是是ICML和NeurIPS,估计以后ICLR文章也会稍稍变多一些。)


我们先来看一个一维示意图(高维空间也不难想象)。假如一个粒子初始时刻在能阱a1里,那么:Q1.它需要多长时间才能越过鞍点b进入势阱a2?Q2.经过足够长的时间,这个粒子落入陷阱a1和a2的概率分别有多大?

抽象一下,深度学习的训练过程其实就对应着这么个经典的Kramers Escape问题。这个问题的原型最早出现在1940年的一篇经典论文[3]。

统计物理学家Kramers提出了这么一个布朗运动粒子(服从朗之万动力学Langevin Dynamics)的逃逸问题。经过一些统计物理学里的经典近似手段,得到了热噪音下(即各向同性的高斯噪音)的平均逃逸时间公式:


很容易发现,在最简单的热噪音的情况,我们已经能看到随机动力学是偏好flat minima的,这种偏好是多项式级的

这里的(一维情况下的二阶导数或者高维情况下的Hessian的行列式)就是minima sharpness的一种度量。

在化学里面,类似的方法还可以计算化学反应的速率和反应式左右比例。

在深度学习里,“类似”的方法则可以计算出SGD逃离minima的速率和SGD对flat minima的偏好。



虽说是“类似”的方法,但是深度学习动力学比热力学复杂太多了。因为随机梯度噪音是一种各向异性的、位置依赖的复杂噪音。

中间的数学细节可以参考[2]。大概的流程是,从SGD算法得到对应的Generalized Langevin Dynamics,再得到对应Fokker-Planck Equation。从Fokker-Planck Equation可以解出粒子的概率密度。再借助Smoluchowski Equation可以解出粒子的概率密度从一个势阱流向另一个势陷的概率流大小。

可以直观的理解为,一堆概率云最开始在一个势阱内,渐渐地通过鞍点流向了另一个势阱,并逐渐达到平衡。达到平衡的特征时间就是平均逃逸时间 ,最终概率云的分布则反映了找到不同的解的概率。

热力学版的Kramers Escape问题其实也是走这个数学流程。只是布朗运动的Langevin Dynamics只含有非常简单的热噪音。而[2]这个工作最大的贡献就是,解决了随机梯度噪音版的Kramers Escape问题。可以说,深度学习动力学是一种自然界不存在的动力学问题。其对应的Kramers Escape问题其实就是一种物理学家没有见过的物理问题。



(这套数学工具,CS背景的同学基本上都不熟。但是有统计物理背景的同学可太熟了。解决问题的关键可能是先准确定义这个问题,再找一个懂统计物理的来解这个方程,就能大功告成。所以AI研究还是很需要diversity的。我也在和统计物理PhD合作中。。)



回到正题。[2]最后得到的深度学习版的Kramers Escape问题的平均逃逸时间表达式是:

(简单起见,这里只写一维空间的情况。高维空间类似。)

其中 是batch size, 是学习率。这里可以看到,平均逃逸时间对minima sharpness的依赖是指数级的。

而且,很幸运,SGD逃逸对minima sharpness、batch size和学习率的指数关系都在[2]的实验中被验证:


另外,SGLD(随机梯度朗之万动力学)是一种常用的做Bayesian inference的方法,它的行为更接近于热力学,因为梯度噪音主要是人为加的高斯噪音。这不奇怪,因为Bayesian inference就是从玻尔兹曼分布中推断参数。[2]的实验也验证了,SGLD对minima sharpness的依赖是多项式级的。这也说明了为什么Bayesian inference的方法都不是好的深度学习训练方法。



最后文章的结论很清晰,随机梯度噪音的性质优对深度学习来说很优越:

(1)热力学对于flat minima的偏好是多项式级的,而SGD对flat minima的偏好是指数级的。这就是为什么随机优化对深度学习如此重要。

(2)这个batch size和学习率的比值 也是指数级的重要的。这个也解释为什么large batch training时需要保持在一个稳定的值[4]。另外,这个比值还可以影响深度学习的泛化[5]。

(3)深度学习的参数空间虽然很高维,但是学习动力学主要是发生在一个低维空间的。参数几乎不会沿着在Hessian的本征值接近0的那些方向学习。这一点也和FAIR的一个经验发现[6]相符。


参考文献:

[1] Kawaguchi, K. (2016). Deep learning without poor local minima.Advances in neural information processing systems,29, 586-594.

[2] Xie, Z., Sato, I., & Sugiyama, M. (2020). A Diffusion Theory For Deep Learning Dynamics: Stochastic Gradient Descent Exponentially Favors Flat Minima. In International Conference on Learning Representations.

[3] Kramers, H. A. (1940). Brownian motion in a field of force and the diffusion model of chemical reactions. Physica,7(4), 284-304.

[4] Krizhevsky, A. (2014). One weird trick for parallelizing convolutional neural networks. arXiv preprint arXiv:1404.5997.

[5] He, F., Liu, T., & Tao, D. (2019). Control batch size and learning rate to generalize well: Theoretical and empirical evidence. In Advances in Neural Information Processing Systems(pp. 1143-1152).

[6] Gur-Ari, G., Roberts, D. A., & Dyer, E. (2018). Gradient descent happens in a tiny subspace.arXiv preprint arXiv:1812.04754.



关于鞍点逃逸的研究是另外一个很重要的课题。我们组的工作还没有经过peer review,这里就不详细介绍了。以后有空再写。

大概的结论是,随机梯度噪音在鞍点逃逸的过程里依然扮演了一个指数级重要的角色。

比较特别的发现是,Adam对flat minima的偏好比SGD要弱很多(所以泛化差),但在鞍点逃逸的表现上要比SGD快很多(所以收敛快)。


所以Adaptive Learning Rate是毒也是药

关于Adam和SGD各自的优势,可以参考我的另一篇回答:


user avatar   whearer 网友的相关建议: 
      

女王:求求题主放过我,我可不敢有什么政绩。。。




  

相关话题

  image caption这个方向更偏向NLP还是CV? 
  二分类问题,应该选择sigmoid还是softmax? 
  算法工程师是否应该持续读论文? 
  请问人工神经网络中的activation function的作用具体是什么?为什么ReLu要好过于tanh和sigmoid function? 
  深度学习调参有哪些技巧? 
  为什么机器学习解决网络安全问题总是失败? 
  深度学习领域有哪些瓶颈? 
  AMD的CPU是否适合搭建深度学习主机? 
  联邦学习在机器学习领域有什么独立存在的价值? 
  如何把梯度传递过Argmax? 

前一个讨论
「到了大学就轻松了」这句话究竟毁了多少大学生?
下一个讨论
2020年了,你们学校各学院的对外推免(保研)果真是那么自由么?





© 2024-11-15 - tinynew.org. All Rights Reserved.
© 2024-11-15 - tinynew.org. 保留所有权利