随机梯度下降是分类器还是优化器? [关闭]

Posted

技术标签:

【中文标题】随机梯度下降是分类器还是优化器? [关闭]【英文标题】:Is Stochastic gradient descent a classifier or an optimizer? [closed] 【发布时间】:2018-01-09 08:19:34 【问题描述】:

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

【问题讨论】:

随机梯度下降是梯度下降优化方法的随机近似,用于最小化目标函数,该目标函数写为可微函数之和。换句话说,SGD 试图通过迭代找到最小值或最大值。 【参考方案1】:

取自 SGD sikit-learn 文档

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

【讨论】:

【参考方案2】:

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

SGDClassifier 是一个线性分类器(SVM、逻辑回归、a.o.) 使用 SGD 训练。

这个估计器实现了具有随机性的正则化线性模型 梯度下降(SGD)学习:估计损失的梯度 一次每个样本,并且模型在此过程中更新 减少强度计划(又名学习率)。 SGD 允许小批量 (online/out-of-core) 学习,见 partial_fit 方法。为了最好 使用默认学习率计划的结果,数据应该有 零均值和单位方差。

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

【讨论】:

【参考方案3】:

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) 是一个求解器。在凸损失函数(如(线性)支持向量机和逻辑回归)下对线性分类器进行判别学习是一种简单有效的方法。

neural_network.MLPClassifier 中 sgd 的其他替代求解器是 lbfgsadam

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

权重优化的求解器。

‘lbfgs’是准牛顿方法家族中的一个优化器

‘sgd’指的是随机梯度下降。

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

关于SGDClassifier的实现细节可以阅读@SGDClassifier文档页面。

简而言之:

此估计器使用随机梯度下降 (SGD) 学习实现正则化线性模型:损失的梯度是一次估计每个样本,并且模型会随着强度递减的时间表(也称为学习率)不断更新。 SGD 允许小批量(在线/核外)学习

【讨论】:

【参考方案4】:

让我们用简单的英文意思来分隔每个单词

随机 - 随机, 梯度 - 斜率, 下降 - 向下

基本上,这种技术被用作一种“优化算法”,用于寻找具有最小凸损失/成本函数的参数。

通过它我们可以找出线性分类器损失最小的直线的斜率,即(SVM & Logistic Regression)

其他一些执行方式:

    批量梯度下降 随机梯度下降 小批量

如需了解更多详情,请参考以上链接: https://www.geeksforgeeks.org/ml-stochastic-gradient-descent-sgd/

【讨论】:

以上是关于随机梯度下降是分类器还是优化器? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

随机梯度下降分类器和回归器

常见优化器

各种优化器Optimizer的总结与比较

优化算法总结

pytorch常用优化器总结(包括warmup介绍及代码实现)

pytorch常用优化器总结(包括warmup介绍及代码实现)