什么是Gradient Descent的替代品?

时间:2014-05-08 23:57:11

标签: machine-learning neural-network logistic-regression gradient-descent

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

任何人都能告诉我梯度下降的任何替代方案的优点和缺点。

感谢。

5 个答案:

答案 0 :(得分:16)

有关非常相似的列表,请参阅my masters thesis

神经网络的优化算法

  • 基于渐变
    • 梯度下降的味道(只有一阶梯度):
      • 随机梯度下降:enter image description here
      • 迷你批量梯度下降:
      • 学习率调度:
        • 动量:
        • RProp和迷你批量版本RMSProp
        • AdaGrad
        • Adadelta(paper
        • 指数衰减学习率
        • 效果计划
        • Newbob Scheduling
      • Quickprop
      • Nesterov Accelerated Gradient(NAG):Explanation
    • 更高阶梯度
      • 准牛顿法
        • BFGS
        • L-BFGS
    • 不确定它是如何工作的
      • Adam(自适应力矩估计)
        • AdaMax
      • 共轭渐变
  • 替代
    • 遗传算法
    • 模拟退火
    • Twiddle
    • 马尔可夫随机字段(graphcut / mincut)

您可能还想查看我关于optimization basics和Alec Radfords漂亮的GIF的文章:12,例如

其他有趣的资源是:

权衡

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

  • 您只需一步即可获得多少改进?
  • 你能多快计算一步?
  • 算法可以处理多少数据?
  • 是否可以保证找到当地的最低要求?
  • 优化算法对您的功能有哪些要求? (例如,可分为一次,两次或三次)

答案 1 :(得分:7)

与使用的方法相比,这是一个更小的问题,如果找到真正的全局最小值很重要,那么使用模拟退火等方法。这将能够找到全局最小值,但可能需要很长时间才能完成。

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

添加正则化项,例如重量衰减,可以帮助平滑成本函数,这可以减少局部最小值的问题,并且我会建议作为避免过度拟合的手段。

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

答案 2 :(得分:1)

局部最小值是解空间的属性,而不是优化方法。一般来说,它是神经网络的问题。诸如SVM之类的凸方法在很大程度上得到了普及,因为它。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

已经证明,在高维空间中不太可能发生卡在局部最小值中的情况,因为在所有维中 all 导数都等于零的可能性很小。 (来源Andrew NG Coursera DeepLearning专业化研究)这也解释了为什么梯度下降如此之好。