Deep learning 学习率对模型训练的影响

Deep learning 学习率对模型训练的影响,deep-learning,keras,conv-neural-network,Deep Learning,Keras,Conv Neural Network,我正在为一个简单的分类任务(猫或狗)训练一个CNN模型。当学习率为0.005时,模型不会学习(所有时期的验证损失均为0.5)。我将学习率改为0.001,模型开始学习(验证损失开始减少,并在第24个历元收敛)。你知道为什么改变学习率会导致这种差异吗 学习率表示(简单地说)您的模型改变其认为对识别样本很重要的特征的速度。因此,如果您的学习率太高,它可能会太频繁地更改这些关键功能而根本不学习,因为它放弃了一个重要的功能,因为学习率太高,它告诉模型转移到其他功能。你的学习率太高了 它通常有一个起始值,但

我正在为一个简单的分类任务(猫或狗)训练一个CNN模型。当学习率为0.005时,模型不会学习(所有时期的验证损失均为0.5)。我将学习率改为0.001,模型开始学习(验证损失开始减少,并在第24个历元收敛)。你知道为什么改变学习率会导致这种差异吗

学习率表示(简单地说)您的模型改变其认为对识别样本很重要的特征的速度。因此,如果您的学习率太高,它可能会太频繁地更改这些关键功能而根本不学习,因为它放弃了一个重要的功能,因为学习率太高,它告诉模型转移到其他功能。你的学习率太高了

它通常有一个起始值,但它带有一个递减函数,随着学习过程的推进,它将降低学习率,因此如果您的学习率停留在某个值上,您也应该检查该值。由于所有这些,学习率是网络优化的一个参数,需要进行优化调整


关于随机梯度下降的文章从数学上说明了学习率在整个优化过程中的位置,您应该对此进行检查。

这是一个巨大且非常普遍的问题,并不完全适合于SO问题。无论如何,对于初学者来说,请看一下感谢您的回答的相关部分乐于帮助:)您是否认为0.005与0.001相比太大,无法在网络培训中带来如此巨大的差异?如果您考虑到通常情况下,您会将学习率的阶跃函数设置为0.1,你会发现这是一个很大的区别,这意味着在每x(一个预先确定的数量)个时期,你会将学习率降低到其值的10%。但归根结底,这一切都取决于你的问题。例如,就在上个月,我培训了一个基础学习率为0.005的网络,但效果很好。我无法回答这个问题:/我所知道的是,你会从某个值开始,有时会进行交叉验证,尝试看看它是否适用于其他值,直到找到一个适用于你的值。由于这是一个超参数,因此需要调整:/