为什么深度学习能奏效,尽管它不应该奏效

2020-10-20 22:43:10

这是一个很大的问题,我也不是一个特别高大的人。因此,对于深谙文学和理论的人来说,这些都可能是显而易见的观察。然而,我发现,有一种潜移默化的直觉是专家对一个领域的理解的基础,这些直觉从来没有在文献中直接陈述过,因为它们不容易用文献要求的严谨性来证明。因此,洞察力只存在于对话和潜台词中,这使得普通读者无法接触到它们。

因为我不需要在互联网上发帖的严谨(甚至不需要是正确的),所以我会在这里贴出一些我理解的直觉。如果这对你来说都是显而易见的,跳到“研究建议”部分,因为我认为典型的论文有很多方式忽略了大多数研究人员认为是正确的事情。

特别是,我发现有统计学背景的人倾向于放弃深度学习,因为从传统的统计学角度来看,这些都不可能奏效。这让它变得非常令人沮丧。因此,他们往往对其结果和方法的看法比他们继续成功的保证要黯淡得多,所以我希望在这里我能弥合一些差距。

我要试着直观地解释的关键是,为什么模型越大越深,即使它们消耗的数据量保持不变或变小,也总是会变得更好。其中一些可能会被证明是错误的,但我认为它更有可能是不完整的,而不是错误的。我在这里描述的影响可能很重要,即使它们可能不是主要原因。这里不会有什么特别正式的东西,这会让一些人发疯,也会让另一些人松一口气。如果你觉得这一切都令人恼火,那就去看看关于深度学习的彩票理论的论文吧,因为我认为这是最接近正式理论的东西,它概括了大部分内容,目前正在取得进展。

如果你从一个合理的位置开始你的参数,它们已经接近好的位置了,即使它们完全是随机的。

在高维空间中,距离是一个统计学概念。欧几里得距离的平方只是一个很大的和,统计数据告诉我们所有大和会发生什么。它们变成正态分布,并且随着总和中项数的增加,它们在平均值周围变得越来越紧。这意味着当涉及到任何数量的行为良好的随机性时,高维中的所有距离都大致相同。在模型中,参数由于初始化而以随机变量开始,由于数据的性质而以随机变量结束,中心极限定理适用于这些和。因此,高维模型中的所有参数集彼此之间的距离大致相等。

在我们生活的维度中,我们习惯了这样的想法,有些东西比其他东西更接近,所以我们会在脑海中想到像“区域”这样的概念,并考虑像参数的坏区域和好区域这样的东西。但是高维空间是非常紧密相连的。你可以从其他任何地方跳到任何地方。没有什么不好的地方可以开始。如果随机初始化的大小大致正确,则所有地方都相当好。无论您从哪里开始,您都接近良好的参数,而且与其他任何参数一样,您也很可能接近良好的参数。我们需要的唯一假设是,最终模型的参数来自与初始化时的参数大致相同的分布,这是相当温和的。

高维空间不太可能有局部最优值,也可能根本没有最优值。

只需回想一下一组参数处于最佳状态所需的条件。所有的梯度都需要为零,而Hessian需要是半正定的。换句话说,你需要被围墙包围。在4维空间中,你可以穿墙而过。GPT3有1750亿个参数。在1750亿个维度中,墙壁远远低于你的注意,如果你完全观察它们,那就像是上帝俯视着单个质子。

如果损失前景中有任何随机性(当然是随机的),那么模型必须选择的数百万或数十亿个方向都不太可能同时上坡。有这么多方向可供选择,你总会有至少一个方向可逃。这是完全不可能的,任何一个大模型都能接近任何一个最优模型。事实上,最优的存在是令人难以置信的。如果没有明确的正则化来限制值的大小,强制正曲率,并损害模型的性能,所有真实的模型都会发散。

提前停止的正则化比任何手工挑选的先验正则化都要好,包括隐式正则化,如模型大小。

统计学入门教科书中有一半是关于如何处理共线性的。但是共线性只在你关心归因的情况下才重要,而你并不关心。假设你有两个近乎共线的输入。在梯度下降开始时,每个相关输入的系数都得到几乎相同的梯度。最终它们不会,最终它们的梯度之间的一些差异将是噪声,从而过度拟合。所以,当这种情况发生时,你就停下来!

这意味着具有n个参数和n+1个参数之间的差异可以通过提前停止有效地控制。您可能有很多实际上未使用的参数,但是同样,您并不关心。拥有低维模型只会使模型产生偏差,因为如果低维模型起作用,由于渐变的工作方式,提前停止会自动选择。当您获得的大多数渐变都是噪波时,验证集会告诉您,因此您只需忽略它们并停止。

当我们开始向它走去的时候,我们永远不会被困在路上,因为没有局部最优。

一旦我们偶然发现了一组很好的参数,我们就会知道它,然后我们就可以停下来了。

就这样。一旦你相信了所有这些事情,那么你就会直觉地发现,即使没有更多的数据,大的模型也总是更好,因为所有这些趋势都会变得越来越真实,你拥有的维度越多。

别再说最低限度了。不要再谈论您的优化算法是如何在最小值附近运行的。从来没有人把他们的模型训练到接近收敛的程度。亚当甚至不能被证明是收敛的。所有的真人模特都分道扬镳了!你离最低限度还差得远呢!别再说Minima了,他妈的!为什么要考虑最低限度呢?!最低限度是个神话!

每个人都证明了他们关于凸函数极小值的结果,然后谈论如何需要进一步的研究来证明关于非凸函数的结果。但这没有任何意义。深度模型足够接近于凸,所有常见的东西都可以工作,因为维数使得局部最优变得不可能。真正需要进一步研究的是算法的行为如何远离极小值。

优化算法最好被认为是要学习的事物的优先队列,需要证明的重要一点是,您的算法首先学习好的东西。当您的模型在验证集上达到顶峰时,它开始了解更多不好的东西而不是好的东西。如果你有一个优化算法,它更善于在坏事之前学习好的东西,那么它就会实现更低的损失。对我来说,这解释了很多其他令人困惑的现象,比如为什么蒸馏效果这么好。蒸馏使学生模型在学习坏东西之前先学习更多的好东西,因为教师模型已经知道更多的好东西了。这就是为什么一个更强大的模型可以从一个较弱的模型中有效地学习的原因。