深度学习优化器与学习率调度策略详解
1. 优化器介绍
在深度学习中,选择合适的优化器对于模型的训练效果至关重要。以下为大家介绍几种常见的优化器及其特点。
1.1 梯度下降与动量优化
当输入数据的尺度差异较大时,成本函数会呈现出细长碗状。普通梯度下降法在陡峭的斜率上下降得很快,但在山谷中下降却非常缓慢。而动量优化则能更快地滚下山谷直至到达底部(最优解)。在未使用批量归一化的深度神经网络中,上层的输入尺度往往差异很大,此时使用动量优化能带来很大帮助,还能帮助越过局部最优解。
不过,由于动量的存在,优化器可能会出现超调现象,多次振荡后才会稳定在最小值。因此,在系统中引入一点摩擦力(如设置合适的超参数)可以消除这些振荡,加快收敛速度。
在Keras中实现动量优化非常简单,只需使用SGD优化器并设置其动量超参数即可:
optimizer = keras.optimizers.SGD(lr=0.001, momentum=0.9)
动量优化的一个缺点是增加了一个需要调整的超参数,但动量值设为0.9在实践中通常效果很好,且几乎总是比普通梯度下降更快。
1.2 Nesterov加速梯度
Nesterov加速梯度(NAG)是动量优化的一个小变体,通常比普通动量优化更快。它不是在当前位置 $\theta$ 处测量成本函数的梯度,而是在动量方向上稍微提前一点的位置 $\theta + \beta m$ 处测量。
NAG算法步骤如下:
1. $m \leftarrow
超级会员免费看
订阅专栏 解锁全文
5539

被折叠的 条评论
为什么被折叠?



