随机梯度下降
作用:在无法得到解析解的情况下,有效地训练模型
难以优化的模型效果往往更好
梯度下降:不断地在损失函数递减的方向上更新参数来降低误差
操作:计算损失函数关于模型参数的梯度
问题:执行速度慢,每次更新参数前需遍历整个数据集
解决:随机梯度下降
- 思想:在每次需要计算更新时随机抽取一小批量样本
- 步骤:
- 随机抽取小批量\(B\)(由固定数量的训练样本组成)
- 计算小批量的损失函数关于模型参数的梯度
- 当前参数减去梯度乘以学习率\(\eta\)
- 训练若干次后记录模型参数估计值\(\hat w,\hat b\) $$ (\mathbf w,b)\leftarrow(\mathbf w,b)-\dfrac{\eta}{|B|}\sum_{i\in B}\partial_{\mathbf (w,b)}l^{(i)}(\mathbf w,b) $$ 其中\(|B|\)为批量大小
超参数:预先设定而非模型训练得到(如批量大小和学习率)
调参:选择超参数的过程,根据训练迭代结果(在验证数据集上评估得到)调整
难点:
- 算法会使损失函数向最小值缓慢收敛,但不能在有限的步数内非常精确地达到最小值
- 损失平面上通常包含多个极小值
- 泛化:难以找到一组参数,在从未见过的数据上实现较小的损失