【问题标题】:TensorFlow - GradientDescentOptimizer - are we actually finding global optimum?TensorFlow - GradientDescentOptimizer - 我们真的找到全局最优了吗?
【发布时间】:2016-07-12 15:27:06
【问题描述】:

我玩 tensorflow 有一段时间了,我有更多的理论问题。一般来说,当我们训练一个网络时,我们通常使用 GradientDescentOptimizer(可能是它的变体,如 adagrad 或 adam)来最小化损失函数。一般来说,看起来我们正在尝试调整权重和偏差,以便我们获得这个损失函数的全局最小值。但问题是,如果你绘制它,我假设这个函数看起来非常复杂,有很多局部最优值。我想知道的是,我们如何确保梯度下降找到全局最优,并且我们不会立即陷入某个远离全局最优的局部最优?

我记得,例如,当您在 sklearn 中执行聚类时,它通常会多次运行聚类算法并随机初始化聚类中心,这样做可以确保我们不会陷入非最佳结果。但是我们在 tensorflow 中训练 ANN 时并没有这样做——我们从一些随机权重开始,然后沿着函数的斜率行进。

那么,对此有什么见解吗?为什么我们可以或多或少地确定一旦损失停止显着减少,通过梯度下降的训练结果接近全局最小值?

澄清一下,为什么我想知道这个问题是,如果我们不能确定我们至少接近全局最小值,我们就不能轻易判断 2 个不同模型中的哪一个实际上更好。因为我们可以进行实验,得到一些模型评估,表明模型不好......但实际上它只是在训练开始后不久就停留在局部最小值。而其他对我们来说似乎更好的模型只是更幸运地从更好的起点开始训练并且没有快速陷入局部最小值。此外,这个问题意味着我们甚至不能确定我们可以从我们目前正在测试的网络架构中获得最大的收益。例如,它可能具有非常好的全局最小值,但很难找到它,而且我们大多陷入局部最小值的糟糕解决方案,这将远离全局最优值,并且永远看不到手头网络的全部潜力。

【问题讨论】:

  • 梯度下降,就其本质而言,是在局部查看函数(局部梯度)。因此,绝对不能保证它将是全球最小值。事实上,除非函数是凸的,否则它可能不会。这也是类似 GD 的方法对您开始的初始位置敏感的原因。话虽如此,最近有一篇论文说,在高维解空间中,最大值/最小值的数量并没有之前想象的那么多。
  • @Luca 有没有关于人们如何解决这个问题的好论文?我知道当优化器积累足够的动量时,如果你面对它,动量可能有助于“跳出”局部最小值,但这只是我的假设。我的意思是,我不敢相信来自像 berkeleyvision 或谷歌这样的严肃实验室的人没有试图避免你开始训练并立即陷入局部最小值并且没有调查此事的可能性 - 所以我认为一些论文应该是在那里,但我找不到他们
  • 嗯,以合理的方式在高维空间中找到全局最小值似乎是一个非常未解决的问题。但是,您可能想更多地关注 \textit{saddle points} 而不是最小值。例如,请参阅此帖子 (kdnuggets.com/2015/11/theoretical-deep-learning.html)
  • @Luca 这是一篇非常酷的论文,它真正阐明了这个问题。你能把它作为答案发布吗?
  • 我很高兴你发现我的漫谈有用。完成!

标签: machine-learning neural-network tensorflow deep-learning


【解决方案1】:

梯度下降,就其本质而言,是在局部观察函数(局部梯度)。因此,绝对不能保证它将是全球最小值。事实上,除非函数是凸的,否则它可能不会。这也是类似 GD 的方法对您开始的初始位置敏感的原因。话虽如此,最近有一篇论文说,在高维解空间中,最大值/最小值的数量并不像以前想象的那么多。

以合理的方式在高维空间中找到全局最小值似乎是一个非常未解决的问题。但是,您可能希望更多地关注鞍点,而不是最小值。例如看这篇文章:

High level description for saddle point problem

更详细的论文在这里 (https://arxiv.org/pdf/1406.2572.pdf)

【讨论】:

    【解决方案2】:

    你的直觉是对的。神经网络等复杂模型通常应用于高维输入的问题,其中误差面具有非常复杂的格局。

    神经网络不能保证找到全局最优值,陷入局部最小值是很多研究都集中关注的问题。如果您有兴趣了解更多相关信息,最好查看 online learningmomentum 等技术,这些技术传统上用于避免局部最小值问题。然而,这些技术本身带来了更多的困难,例如某些优化技术无法集成在线学习,并且在反向传播算法中添加动量超参数会给训练带来更多困难。

    可以在here 找到一个非常好的视频,用于可视化反向传播期间动量的影响(以及它如何克服局部最小值)。

    在问题编辑后添加 - 请参阅 cmets

    正是上述神经网络所应用问题的性质意味着我们通常无法找到全局最优解,因为(在一般情况下)使用经典计算遍历整个搜索空间以找到最优解是难以处理的技术(量子计算机可能会因某些问题而改变这一点)。因此,神经网络经过训练可以实现“良好”的局部最优。

    如果您有兴趣阅读有关用于寻找良好局部最优值(即近似全局解决方案)的技术的更多详细信息,那么可以阅读一篇好论文 this

    【讨论】:

    • 如果您有兴趣阅读有关用于寻找良好局部最优值(即近似全局解决方案)的技术的更多详细信息,那么可以阅读一篇好论文 this
    • 这很有用!请将其添加到您的答案正文中?
    • 我在答案中添加了更新,以反映问题更新和我上面的评论。
    【解决方案3】:

    没有。梯度下降法有助于找出局部最小值。如果全局最小值和局部最小值相同,那么只有我们得到实际结果,即全局最小值。

    【讨论】:

    • 我们也可以很幸运地找到全局最小值,即使两个集合不一样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-27
    • 2011-10-25
    • 2023-03-14
    • 2013-10-16
    • 2021-09-29
    • 1970-01-01
    相关资源
    最近更新 更多