误差表面形状是否有助于检测哪个局部最小值更适合泛化?
总的来说,我同意@nbro 的回答,但严格遵守这个具体问题,我想分享一些猜测:
问题的作者为我们提供的是损失函数形状,所以我将尝试使用此处的完整信息来比较 2 个最小值
查看 LF 陡度,我们观察到左 LM 比右 LM 处于更陡峭的区域:如何解释?
我将 LF 陡度解释为参数化稳定性的度量:实际上,稍微扰动参数化对左 LM 观察到的性能而不是右 LM 的影响更大
当 NN 在“生产中”运行时,参数化通常是固定的(在大多数典型应用中,权重不会在训练阶段改变)所以你不应该担心参数化稳定性,但是我是相信Flat的人之一Minima - Schmidhuber 1997 年认为局部最小值平坦度与泛化属性相关的想法
然而,重要的是要观察到这仍然是一个非常开放和有趣的问题,如Sharp Minima Can Generalize For Deep Nets Dinh 2017 等。证明它不仅仅是平坦度,因为 NN 模型的重新参数化,虽然保留了最小值位置,但改变了它的形状,所以基本上尖锐的最小值可以转换为平坦的最小值而不影响网络性能
我不认为泛化的概念(直接)与接近达到最小值的函数的“形状”有关。
泛化的概念是指经过训练的模型能够在未见数据(即在训练阶段未见的数据)上“表现良好”。如果经过训练的模型不能很好地泛化,那么它可能已经“过度拟合”或“欠拟合”。
过拟合意味着模型在训练数据上表现良好,但在其他数据上表现不佳。换句话说,在过拟合的情况下,模型学习的是训练数据的结构,而不是整个人群(感兴趣的),或者它学习了“噪声”(即不属于人群的数据)感兴趣的)存在于训练数据中。这也意味着训练数据不是总体的“好”样本,也就是说,它不能很好地“总结”总体的所有特征。在实践中,情况往往如此(对于大量人口)。
当模型在训练阶段甚至无法充分了解训练数据时,就会出现欠拟合。例如,当您尝试训练线性模型但数据不具有线性关系时,就会发生欠拟合。
因此,能否泛化(或不能泛化)取决于模型(包括参数的数量),还取决于您提供的数据。
与左侧相比,右侧的泛化能力更好吗?
函数的形状仅在训练阶段有用。更具体地说,在这种情况下,您可能会比另一个更快地达到两个最小值之一(还取决于您使用的优化算法、模型等)。
我想指出,在机器学习中,我们经常最小化函数的函数(在数学中称为“函数”)。这是为什么?对于“简单性”,考虑一个简单的神经网络 (NN) 模型(例如多层感知器)。我们通常使用梯度下降(或其变体之一)通过最小化函数(例如均方误差)来训练这种神经网络。本质上,当我们训练这样的 NN 时,我们希望找到最小化例如 MSE 的函数(由 NN 的参数表示)。在这种情况下,均方误差 (MSE) 是我们试图最小化的函数。请注意,MSE 是当前 NN 参数的函数,而 NN 是表示函数的模型。
让我们回到你的问题。如果在训练阶段,你得到一个最小值而不是另一个,你会得到不同的神经网络(比如和)。再次注意,我们的 MSE 函数达到其最小值的点,在这种训练 NN 的上下文中(通常,通常在机器学习中)是一个函数(而不仅仅是一个标量)。我知道,一开始(如果你不是数学专家),可能很难将函数视为最小化其他函数的点(实际上,更准确地说,我们应该称它们为“向量”),但这概念存在并且实际上是大量机器学习技术的基础(例如,通过最小化成本函数使用反向传播训练神经网络)。
那么,为什么我认为我们不能对神经网络的泛化能力说太多?和?
假设我们在训练阶段之后可以访问两个 NN和(即,与您的函数达到两个(可见)最小值的“点”相对应的那些。和将在训练数据(甚至验证数据)上表现同样出色。然后我们可能会得出结论,两者都以相同的方式概括。但这可能是一个错误的结论,因为训练和验证数据(正如我上面提到的)可能不是很好的总体样本。因此,我们不能真正说出哪个 NN(或“最小值”),或者, 概括得更好。他们可能或多或少地以相同的方式进行概括(根据它们的表现,例如在验证数据集上)或不(因为验证数据集不是总体的良好样本)。
总而言之,泛化的概念比函数最小化稍微复杂一点,因为它也与数据有关。在机器学习中,我们经常最小化一个函数(一个参数为函数的函数)。如果你的函数在两个不同的点(实际上是函数)达到相同的最小值,那么在训练期间,一个可能比另一个更快地达到。然而,如果你有两个代表这两个最小值的神经网络,我们就不能说它们的泛化能力。本质上,我们只能希望验证数据集是一个很好的总体样本。