随机梯度下降是分类器还是优化器?

时间:2017-08-02 08:15:42

标签: machine-learning nlp classification text-classification gradient-descent

我是机器学习的新手,我正在尝试分析我的项目的分类算法。我在SGDClassifier库中遇到了sklearn。但很多论文都将SGD称为优化技术。有人可以解释一下SGDClassifier是如何实施的?

4 个答案:

答案 0 :(得分:1)

SGD确实是一种用于查找函数最小值的技术。 SGDClassifier是一个线性分类器(默认情况下,sklearn它是一个线性SVM),它使用SGD进行训练(即使用SGD查找损失的最小值)。根据{{​​3}}:

  

SGDClassifier是线性分类器(SVM,逻辑回归,a.o。)   接受SGD培训。

     

该估计器实现了随机的正则化线性模型   梯度下降(SGD)学习:估计损失的梯度   每个样本一次,模型随着更新的方式更新   减少力量计划(又称学习率)。 SGD允许小批量   (在线/核心外)学习,请参阅partial_fit方法。为了最好   结果使用默认的学习率计划,数据应该有   零均值和单位方差。

     

此实现适用于表示为密集或稀疏的数据   要素的浮点值数组。它适合的模型   可以用损耗参数控制;默认情况下,它适合   线性支持向量机(SVM)。

答案 1 :(得分:1)

取自SGD sikit-learn文档

loss="hinge" :(软边距)线性支持向量机, loss="modified_huber":平滑铰链损失, loss="log":逻辑回归

答案 2 :(得分:0)

SGDClassifier是一个线性分类器,它通过随机梯度下降(SGD)学习实现正则化线性模型

其他分类器:

classifiers = [
("ASGD", SGDClassifier(average=True, max_iter=100)),
("Perceptron", Perceptron(tol=1e-3)),
("Passive-Aggressive I", PassiveAggressiveClassifier(loss='hinge',
                                                     C=1.0, tol=1e-4)),
("Passive-Aggressive II", PassiveAggressiveClassifier(loss='squared_hinge',
                                                      C=1.0, tol=1e-4)),
("SAG", LogisticRegression(solver='sag', tol=1e-1, C=1.e4 / X.shape[0]))

]

随机梯度下降sgd)是求解器。这是一种在凸损失函数(例如(线性)支持向量机和Logistic回归)下判别线性分类器的简单有效方法。

neural_network.MLPClassifier sgd 的其他替代求解器是 lbfgs adam

solver : {‘lbfgs’, ‘sgd’, ‘adam’}, default ‘adam’

用于权重优化的求解器。

“ lbfgs”是准牛顿方法族的优化程序

“ sgd”是指随机梯度下降。

“ adam”是指由Kingma,Diederik和Jimmy Ba提出的基于梯度的随机优化器。

有关SGDClassifier的实现的详细信息,请参见SGDClassifier文档页面。

简介:

  

此估计器通过随机梯度下降(SGD)学习实现正则化线性模型:一次估计每个样本的损耗梯度,并以递减的强度进度表(又称学习率)对模型进行更新。 SGD允许小批量(在线/核心外)学习

答案 3 :(得分:0)

让每个单词都以简单的英语含义隔离

随机-随机, 渐变-坡度, 下降-向下

基本上,该技术被用作“优化算法”,以寻找具有最小凸面损耗/成本函数的参数。

通过这种方法,我们可以找到对于线性分类器(SVM和Logistic回归)损失最小的直线斜率

其他执行方式:

  1. 批次梯度下降
  2. 随机梯度下降
  3. 小批量

有关更多详细信息,请访问上面的链接: https://www.geeksforgeeks.org/ml-stochastic-gradient-descent-sgd/