MLP 是否总能找到局部最小值

数据挖掘 神经网络 成本函数
2021-10-08 18:24:06

我们linear regression使用下面的成本函数,它是一个凸函数: 我们使用下面的成本函数 ,因为只要假设 (h) 是逻辑函数,前面的成本函数就不是。我们已经改变了成本函数方程,使其具有凸形状以找到它的全局(唯一存在的)。有一个我无法理解的事实。人工神经网络中,我看到很多它们可能会陷入局部最小值。这是为什么?我们已经为每个感知器使用了这个成本函数,并获得了更新反向传播算法中权重值的规则;那么我们为什么会卡住呢?
在此处输入图像描述

在此处输入图像描述
logistic regressionconvexMulti Layer Perceptrons

2个回答

当存在单层时,损失函数只是关于权重参数(和特定数据)的简单凸函数。更准确地说,它们可以证明相对于简单模型(线性或逻辑回归)中的权重总是凸的,但相对于更深网络的权重则不然。

您可以通过在找到最小值时考虑交换权重来证明具有 2 层或更多层的网络中必须存在多个最小值 - 因此损失函数不能是凸的。与单层网络不同,可以将馈送周围的权重交换到隐藏层,同时保持相同的输出例如,您可以交换输入层和隐藏层之间的权重,以使神经元输出 1 和神经元输出 2 的值相反。然后,您还可以将这些神经元的权重交换输出,以便网络仍然输出相同的值。网络将有一组不同的权重,但产生相同的输出,因此这种新的权重排列也是损失函数的最小值。它是“相同”的网络,但权重矩阵不同。很明显,必须有非常多的完全等效的解决方案,所有这些解决方案都至少是真正的最小值。

这是一个有效的例子。如果您有一个具有 2 个输入、隐藏层中的 2 个神经元和一个输出的网络,并且您发现以下权重矩阵是最小值:

W(1)=[1.52.01.70.4]

W(2)=[2.30.8]

然后以下矩阵提供相同的解决方案(网络为所有输入输出相同的值):

W(1)=[1.70.41.52.0]

W(2)=[0.82.3]

正如我们所说的第一组 6 个参数是一个解/最小值,那么第二组 6 个参数也必须是一个解(因为它输出相同)。因此,损失函数在权重方面有 2 个最小值。通常对于具有一个隐藏层的 MLP,包含n神经元,有n!产生相同输出的权重排列。这意味着至少有n!最小值。

虽然这并不能证明存在更差的局部最小值,但它肯定表明损失表面一定比简单的凸函数复杂得多。

回答@Media 关于为什么有很多局部最小值的评论:

在此处输入图像描述

考虑一下,您随机初始化的权重属于上图中的能级 E4。显然,E1、E2、E3 的能量较小。因此,所有这 3 个级别都是 E4 的最小值。现在,使用神经网络,您的学习算法可以保证[是的,数学保证] 将您带到较低的能量水平。问题是你不知道它会让你进入哪个较低的状态。但是,哦,更低,会的!