繁体   English   中英

神经网络优化

[英]Neural Network optimization

我试图了解keras中ReduceLROnPlateau()函数的用途。

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

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

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

在训练深度网络时,随着时间的推移退出学习率通常是有帮助的。 要记住的良好直觉是,在高学习率的情况下,系统包含太多的动能,并且参数矢量在混乱中反弹,无法稳定到损失函数的更深,但更窄的部分。 知道何时衰减学习速度可能会很棘手:慢慢腐烂,你会浪费计算机在混乱中蹦蹦跳跳,很长一段时间没有什么改进。 但是它过于腐蚀并且系统会冷却太快,无法达到最佳位置。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM