优化器(optimizer)负责优化损失函数计算的误差值。调节可变参数是依据反向传播算法的,反向传播负责将最终的误差反向依次传递到神经网络各层。
而真正实现参数调节原则应该是梯度下降(Gradient Descent)。
假设模型定义为
梯度下降的过程
定义误差函数 ,而 是 的函数,所以误差函数也是 的函数。
1. 梯度下降
以均方误差(MSE)为例
为权值。
求梯度 ,步骤
更新参数时只需要
然后迭代上述步骤,直到
其中 是某一个阈值,达到此值代表参数优化的程度已经达到期望。
2. 随机梯度下降
随机梯度下降(SGD)通过使用随机的一组数据进行梯度计算,
3. 批量梯度下降
批量梯度下降(BGD)算法是综合了普通的梯度下降和随机梯度下降的一种折中方法。准确度稍高,速度也稍慢。
4. 动量优化算法
动量优化算法(Momentum)
超参数 ,当 时,动量法等价于小批量随机梯度下降。
5. Adagrad 算法
约束学习率,达到足够的迭代周期后会选择更小的学习率。
6. 内斯特洛夫梯度加速算法
内斯特洛夫梯度加速(NAG)是对动量优化算法的进一步改进。
7. AdaDelta 与 RMSProp 算法
与 RMSProp 算法的相同点是状态变量是对平方项 的指数加权移动平均。