1. 梯度下降算法
- 随机梯度下降
随机梯度下降(SGD) 是一种简单但又非常高效的方法,主要用于凸损失函数下线性分类器的判别式学习,例如(线性) 支持向量机 和 Logistic 回归 。 尽管 SGD 在机器学习社区已经存在了很长时间, 但是最近在 large-scale learning (大规模学习)方面 SGD 获得了相当大的关注。
(随机梯度下降法)的优势:
高效。 易于实现 (有大量优化代码的机会)。
(随机梯度下降法)的劣势:
SGD 需要一些超参数,例如 regularization (正则化)参数和 number of iterations (迭代次数)。 SGD 对 feature scaling (特征缩放)敏感。
- 动量梯度下降
mini-batch梯度下降法
在实际应用中,由于样本数量庞大,训练数据上百万是很常见的事。如果每执行一次梯度下降就遍历整个训练样本将会耗费大量的计算机资源。在所有样本中随机抽取一部分(mini-batch)样本,抽取的样本的分布规律与原样本基本相同,事实发现,实际训练中使用mini-batch梯度下降法可以大大加快训练速度。
mini-batch梯度下降法的思想很简单,将样本总体分成多个mini-batch。例如100万的数据,分成10000份,每份包含100个数据的mini-batch-1到mini-batch-10000,每次梯度下降使用其中一个mini-ba