一、概述
神经网络训练好之后,只有通过优化才能达到我们想要的效果,也就是我们说的调参,使参数更加准确的更新。
神经网络训练过程一般为两个阶段:
- 第一个阶段先通过前向传播算法计算得到预测值,并将预测值与真实值作比较,得出两者之间的差距。
- 第二个阶段通过反向传播算法计算损失函数对每一个参数的梯度,再根据梯度和学习率使用梯度下降算法更新每一个参数。
二、优化网络的方法
1、学习率的优化
每一个参数对目标函数的依赖不同,有的参数已经优化到了极小值附近,有的参数仍然有很大的梯度,所以不能使用统一学习率,学习率太小,会有一个很慢的收敛速度,学习率很大,会使已经优化的差不多的参数不稳定,一般合理的做法是对每一个参数设置不同的学习率。有三种不同自适应学习率优化算法
- AdaGrad
AdaGrad算法,独立地适应所有模型参数的学习率,缩放每个参数反比于其所有梯度历史平均值总和的平方根。具有代价函数最大梯度的参数相应地有个快速下降的学习率,而具有小梯度的参数在学习率上有相对较小的下降。 - RMSProp
RMSProp算法修改了AdaGrad的梯度积累为指数加权的移动平均,使得其在非凸设定下效果更好。 - Adam
学习率的独立设置
指数衰减的学习率
指数衰减学习率是先使用较大的学习率来快速得到一个较优的解,然后随着迭代的继续,逐步减小学习率,使得模型在训练后期更加稳定。