Regularization 正则化
Optimization 优化
- batch 是一次运行的所有数据集,每次只更新一次梯度下降,计算很慢。
BGD 批梯度下降
batch gradient descent BGD 对整个数据总体的loss评估进行参数更新,由于需要扫描完整个数据机才做一次更新,所以收敛速度会很慢
输出的结果实际上是对所有的训练样本对W求梯度 dw,之后再对所有样本的dw求平均的结果。
SGD 随机梯度下降
由于批量梯度下降法在更新每一个参数时,都需要所有的训练样本,所以训练过程会随着样本数量的加大而变得异常的缓慢。随机梯度下降法(Stochastic Gradient Descent,简称SGD)正是为了解决批量梯度下降法这一弊端而提出的
随机梯度下降是通过每个样本来迭代更新一次,如果样本量很大的情况(例如几十万),那么可能只用其中几万条或者几千条的样本,就已经将theta迭代到最优解了,对比上面的批量梯度下降,迭代一次需要用到十几万训练样本,一次迭代不可能最优,如果迭代10次的话就需要遍历训练样本10次。但是,SGD伴随的一个问题是噪音较BGD要多,使得SGD并不是每次迭代都向着整体最优化方向。
- 训练速度快,收敛快
- 不一定是最优解
MGD Mini-batch gradient descent
结合上述两种方案的折中形式
- 将整个数据集分割成较小的批量 mini-batch,每个mini-batch分别做损失估计,以及参数更新,能提高训练的收敛速度
- 计算的mini-batch的梯度,实际上得到的梯度是mini-batch 样本的求得的梯度均值。