12

梯度下降存在局部最小值问题。我们需要运行梯度下降指数时间来找到全局最小值。

谁能告诉我梯度下降的任何替代方案及其优缺点。

谢谢。

4

5 回答 5

25

请参阅我的硕士论文以获得非常相似的列表:

神经网络的优化算法

  • 基于梯度
    • 梯度下降的味道(仅一阶梯度):
      • 随机梯度下降:在此处输入图像描述
      • 小批量梯度下降:
      • 学习率调度:
        • 势头:
        • RProp和小批量版本 RMSProp
        • 阿达格拉德
        • Adadelta ()
        • 指数衰减学习率
        • 性能调度
        • 新手排班
      • 快速道具
      • Nesterov 加速梯度 (NAG):解释
    • 高阶梯度
    • 不确定它是如何工作的
      • Adam(自适应矩估计)
        • 阿达麦克斯
      • 共轭梯度
  • 备择方案
    • 遗传算法
    • 模拟退火
    • 玩弄
    • 马尔可夫随机场(graphcut/mincut)
    • Simplex 算法用于运筹学环境中的线性优化,但显然也用于神经网络(来源

您可能还想看看我关于优化基础的文章和 Alec Radfords nice gifs: 1 and 2,例如

其他有趣的资源是:

权衡取舍

我认为所有发布的优化算法都有一些具有优势的场景。一般的权衡是:

  • 一步,你能取得多少进步?
  • 你能以多快的速度计算一步?
  • 算法可以处理多少数据?
  • 是否保证找到局部最小值?
  • 优化算法对您的功能有什么要求?(例如一次、两次或三次可微)
于 2016-07-06T18:50:18.127 回答
8

与使用的方法相比,与最小化函数有关的问题更多,如果找到真正的全局最小值很重要,则使用模拟退火等方法。这将能够找到全局最小值,但这样做可能需要很长时间。

在神经网络的情况下,局部最小值不一定是个大问题。一些局部最小值是由于您可以通过置换隐藏层单元或否定网络的输入和输出权重等来获得功能相同的模型。此外,如果局部最小值只是略微非最优,那么性能上的差异将很小,因此并不重要。最后,这是很重要的一点,拟合神经网络的关键问题是过拟合,因此积极寻找成本函数的全局最小值可能会导致过拟合和模型表现不佳。

添加一个正则化项,例如权重衰减,可以帮助平滑成本函数,这可以稍微减少局部最小值的问题,无论如何我都会推荐它作为避免过度拟合的一种方法。

然而,在神经网络中避免局部最小值的最佳方法是使用高斯过程模型(或径向基函数神经网络),其局部最小值问题较少。

于 2014-06-01T16:40:26.827 回答
1

局部最小值是解空间的属性,而不是优化方法。这是一般神经网络的问题。凸方法(例如 SVM)之所以流行,主要是因为它。

于 2014-05-09T03:56:28.043 回答
1

已经证明,在高维空间中被困在局部最小值中的可能性很小,因为在每个维度上所有导数都为零是不太可能的。(来源 Andrew NG Coursera DeepLearning Specialization)这也解释了为什么梯度下降如此有效。

于 2020-02-06T22:53:09.160 回答
0

极限学习机本质上它们是一个神经网络,其中将输入连接到隐藏节点的权重是随机分配的,并且永远不会更新。通过使用矩阵求逆求解线性方程,一步即可学习隐藏节点和输出之间的权重。

于 2015-03-10T02:59:01.743 回答