赞
踩
如果学习率太低,网络需要终其一生来学习了。但是如果太高,每一步将完美跳过最低点,永远也得不到一个较好的loss。更严重的是会出现loss不断增加直到nan。
train loss 不断下降,test loss不断下降,说明网络仍在学习;
train loss 不断下降,test loss趋于不变,说明网络过拟合;
train loss 趋于不变,test loss不断下降,说明数据集100%有问题;
train loss 趋于不变,test loss趋于不变,说明学习遇到瓶颈,需要减小学习率或批量数目;
train loss 不断上升,test loss不断上升,说明网络结构设计不当,训练超参数设置不当,数据集经过清洗等问题。
神经网络计算其输入的加权和,并通过一个激活函数得到输出。为了获得准确的预测,一种称为梯度下降的学习算法会在从输出向输入后退的同时更新权重。
梯度下降优化器通过最小化一个损失函数(L)来估计模型权重在多次迭代中的良好值,这就是学习率发挥作用的地方。它控制模型学习的速度,换句话说,控制权重更新到l最小点的速度。新(更新后)和旧(更新前)权重值之间的关系如下:
梯度L/w是损失函数递增方向上的向量。L/w是L递减方向上的向量。由于η大于0,因此是正值,所以-ηL/w朝L的减小方向向其最小值迈进。如果η为负值,则您正在远离最小值,这是它正在改变梯度下降的作用,甚至使神经网络无法学习。如果您考虑一个负学习率值,则必须对上述方程式做一个小更改,以使损失函数保持最小:
达到最小梯度所需的步长直接影响机器学习模型的性能:
小的学习率会消耗大量的时间来收敛,或者由于梯度的消失而无法收敛,即梯度趋近于0。大的学习率使模型有超过最小值的风险,因此它将无法收敛:这就是所谓的爆炸梯度。
梯度消失(左)和梯度爆炸(右)
因此,您的目标是调整学习率,以使梯度下降优化器以最少的步数达到L的最小点。通常,您应该选择理想的学习率,该速率应足够小,以便网络能够收敛但不会导致梯度消失,还应足够大,以便可以在合理的时间内训练模型而不会引起爆炸梯度。
除了对学习率的选择之外,损失函数的形状以及对优化器的选择还决定了收敛速度和是否可以收敛到目标最小值。
当我们的输入是图像时,低设置的学习率会导致如下图所示的噪声特征。平滑、干净和多样化的特征是良好调优学习率的结果。是否适当地设置学习率决定了机器学习模型的预测质量:要么是进行良好的训练,要么是不收敛的网络。
绘制神经网络第一层产生的特征:不正确(左)和正确(右)设置学习率的情况
固定学习率时,当到达收敛状态时,会在最优值附近一个较大的区域内摆动;而当随着迭代轮次的增加而减小学习率,会使得在收敛时,在最优值附近一个更小的区域内摆动。(之所以曲线震荡朝向最优值收敛,是因为在每一个mini-batch中都存在噪音)。
可以自行设定函数,随着训练轮数增长,细微降低学习率。
对于深度学习来说,每 t 轮学习,学习率减半。对于监督学习来说,初始设置一个较大的学习率,然后随着迭代次数的增加,减小学习率。
指数减缓
分数减缓
由于理论上,不可能计算出最准确的最佳学习率,只能通过经验和二分法实验进行选取。可使用一个较大如0.1,和较小0.0001进行实验,观察loss变化和模型准确率变化,根据实际情况进行调整。
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。