Stochastic Gradient Descent (SGD) ( 随机梯度下降( SGD ) ) 是一种简单但非常有效的方法,用于在诸如(线性)支持向量机和 逻辑回归 之类的凸损失函数下的线性分类器的辨别学习。即使 SGD 已经在机器学习社区中长期存在,但最近在大规模学习的背景下已经受到了相当多的关注。
SGD 已成功应用于文本分类和自然语言处理中经常遇到的大规模和稀疏机器学习问题。
SGD 已成功应用于文本分类和自然语言处理中经常遇到的 large-scale and sparse ( 大规模和稀疏 ) 机器学习问题。鉴于数据稀疏,本模块中的分类器容易扩展到具有 10^5 个以上训练样本和超过10^5个特征的问题。
随机梯度下降的优点是:
· 效率。
· 易于实施(很多机会进行代码调优)。
随机梯度下降的缺点包括:
· SGD 需要一些 hyperparameters ( 超参数 ) ,如 regularization parameter ( 正则化参数 ) 和迭代次数。
· SGD 对特征缩放敏感。
大家都知道,训练深度网络一般用的是 SGD (Stochastic Gradient Descent | 随机梯度下降)而不是 GD (Gradient Descent | 梯度下降),但是有没有考虑过 SGD 为什么比 GD 更受大家宠爱,SGD 是如何在用较低的 Computational Complexity (一般可以大概理解成,达成目标需要计算 Gradient 的次数)的同时还能保证比较好的训练效果。
本文主要给出几个特殊的例子,给大家一个从直觉性,实验上和理论上认知,为什么有时候,相对于GD 我们更宠爱 SGD?
我们主要从以下三个方面,一起看一看 SGD 相