神经网络优化

时间:2018-02-21 17:25:25

标签: optimization machine-learning neural-network deep-learning keras

我想了解keras中 ReduceLROnPlateau() 功能的目的。

据我所知,当验证损失没有改善时,此功能有助于降低学习率。但这不会使网络不能摆脱当地的最低限度吗?如果网络在大约5个时期保持在局部最小值并且此功能进一步降低了学习速率,同时提高学习速率实际上有助于网络摆脱这样的局部最小值,该怎么办?

换句话说,如果它已经达到局部最小值或高原,它将如何理解?

1 个答案:

答案 0 :(得分:4)

首先,这里有一个很好的解释CS231n class为什么学习率衰减是合理的一般

  

在训练深度网络时,退火通常很有帮助   学习率随着时间的推移要记住的好直觉就是用   高学习率,系统包含太多的动能和   参数向量在混乱中反弹,无法稳定下来   进入更深,但更窄的损失部分。知道什么时候   腐烂的学习速度可能很棘手:缓慢腐烂,你会成功   浪费计算与小混乱混乱   改善很久了。但是它过于腐朽地腐烂了   系统会冷却太快,无法达到最佳位置   可以。

关于你的问题,不幸的是,你无法知道。如果优化器遇到一个深谷并且无法摆脱它,它只是希望这个山谷是好的,值得以较小的学习率探索。目前,没有技术可以判断是否有更好的山谷,即它是地方还是全球最小值。所以优化器下注探索当前的一个,而不是跳得很远并重新开始。事实证明,实际上没有局部最小值比其他最小值更差,这就是为什么这种策略经常起作用的原因。

另请注意,对于某些学习率,损失表面可能看起来像一个平台,但不是小于学习率的10倍。因此,“逃离高原”和“逃避当地最低限度”是不同的挑战,ReduceLROnPlateau的目标是第一个。