我之前遇到过适应度景观的概念,在我的理解中,平滑的适应度景观是一种算法可以通过增量运动或在景观中的迭代收敛到全局最优的地方。
我的问题是:深度学习是否假设发生梯度下降的适应度环境是平滑的?如果是这样,这是一个有效的假设吗?
我见过的大多数梯度下降的图形表示都显示出平滑的景观。
这个维基百科页面描述了健身景观。
我之前遇到过适应度景观的概念,在我的理解中,平滑的适应度景观是一种算法可以通过增量运动或在景观中的迭代收敛到全局最优的地方。
我的问题是:深度学习是否假设发生梯度下降的适应度环境是平滑的?如果是这样,这是一个有效的假设吗?
我见过的大多数梯度下降的图形表示都显示出平滑的景观。
这个维基百科页面描述了健身景观。
尽可能直接地回答您的问题:不,深度学习不会做出这种“假设”。
但你很接近。只需将“假设”一词替换为“强制”即可。
深度学习使景观(大部分)平滑且始终连续*,因此可以通过梯度下降进行某种优化。
*关于该位的快速脚注:
在深度学习中,我们有线性层,我们知道这些层是可微的。我们还有非线性激活,以及一个损失函数,为了本次讨论的目的,它可以与非线性激活捆绑在一起。如果您查看专门针对制作新型非线性激活和损失函数的论文,您通常会发现一个讨论部分类似于“我们以这种方式设计它以便它是可区分的。这是您区分它的方法。这里是导数的性质”。例如,只需查看这篇关于 ELU 的论文,它是对 ReLU 的改进。
我们不需要真正“假设”任何事情,因为我们是指定深度学习网络构建块的人。并且构建块本身并不是那么复杂,因此我们可以知道它们是可微的(或像 ReLU 一样的分段可微)。而且为了严谨,我还要提醒你,多个可微函数的组合也是可微的。
所以希望这能帮助你理解我所说的深度学习架构师“强加”可区分性,而不是“假设”它的意思。毕竟,我们是建筑师!
我将把适应度景观作为损失函数的图表,, 在哪里参数化网络(即权重和偏差)和是给定的损失函数;换句话说,您可以通过根据其参数绘制损失函数来获得的表面。
为了进行反向传播,我们总是假设损失函数是可微的,这意味着至少损失函数足够平滑以保持连续,但原则上它可能不是无限可微的1。
你谈到使用梯度下降来找到全局最小化器。通常这是不可能的:许多函数具有不是全局最小化器的局部最小化器。例如,您可以绘制: 当然,在更高维度上,情况类似,如果更难想象的话。一类称为凸函数的函数满足任何局部最小化器都是全局最小化器的性质。不幸的是,神经网络的损失函数很少是凸的。
有关一些有趣的图片,请参阅Li 等人的 Visualizing the Loss Landscape of Neural Nets。
1对于连续性和可微性的更详细讨论,任何关于数学分析的好书都可以,例如鲁丁的数学分析原理。一般来说,任何函数在某个区间上可微的也是连续的,但它不必是两次可微的,即不必存在。
深度学习是否假设发生梯度下降的适应度环境是平滑的?
人们可以从形式数学的角度和更“直观实用”的角度来解释这个问题。
从形式上看,平滑是要求函数连续且一阶导数连续。而且这个假设在很多应用中往往是不正确的——主要是因为 ReLU 激活函数的广泛使用——它在零处不可微。
但是,从实际的角度来看,“平滑度”是指函数的“景观”没有很多像这样的急剧跳跃和边缘:
实际上,具有不连续导数和具有非常急剧跳跃的导数之间没有太大区别。
再一次,答案是否定的——损失函数景观非常尖锐,有很多锐利的边缘——上图是实际损失函数景观的一个例子。
但是......为什么梯度下降有效呢?
据我所知,这是社区中正在进行的讨论的主题。有不同的观点和一些相互矛盾的观点仍然是争论的主题。
我的观点是,从根本上说,我们需要它收敛到全局最优的想法是有缺陷的。神经网络被证明有足够的能力来完全记住训练数据集。一个完全记住训练数据的神经网络。已达到全局优化最小值(仅给定训练数据)。我们对这种过度训练的模型不感兴趣——我们想要泛化好的模型。
据我所知,对于哪些最小值的属性与泛化能力有关,还没有确凿的结果。人们争辩说这些应该是“平坦”的最小值,但后来被驳斥了。之后,引入了“广泛优化”术语,并产生了一种有趣的随机加权平均技术。