使用SGD(Stochastic Gradient Descent)进行大规模机器学习
1 基于梯度下降的学习
对于一个简单的机器学习算法,每一个样例包含了一个(x,y)对,其中一个输入x和一个数值输出y。我们考虑损失函数
,它描述了预测值
和实际值y之间的损失。预测值是我们选择从一函数族F中选择一个以w为参数的函数
的到的预测结果。
我们的目标是寻找这样的函数
,能够在训练集中最小化平均损失函数
由于我们不知道数据的真实分布,所以我们通常使用
来代替
经验风险
用来衡量训练集合的效果。期望风险E(f)描述了泛化(generation)的效果,预测未知样例的能力。
如果函数族F进行足够的限制(sufficiently restrictive
),统计机器学习理论使用经验风险来代替期望风险。
1.1 梯度下降
我们经常使用梯度下降(GD)的方式来最小化期望风险,每一次迭代,基于
更新权重w:
,
为学习率,如果选择恰当,初始值选择合适,这个算法能够满足线性的收敛。也就是:
,其中
表示残余误差(residual error)。
基于二阶梯度的比较出名的算法是牛顿法,牛顿法可以达到二次函数的收敛。如果代价函数是二次的,矩阵
是确定的,那么这个算法可以一次迭代达到最优值。如果足够平滑的话,
。但是计算需要计算偏导hession矩阵,对于高维,时间和空间消耗都是非常大的,所以通常采用近似的算法,来避免直接计算hession矩阵,比如BFGS,L-BFGS。
1.2 随机梯度下降
SGD是一个重要的简化,每一次迭代中,梯度的估计并不是精确的计算
,而是基于随即选取的一个样例
:
随机过程
依赖于每次迭代时随即选择的样例,尽管这个简化的过程引入了一些噪音,但是我们希望他的表现能够和GD的方式一样。
随机算法不需要记录哪些样例已经在前面的迭代过程中被访问过,有时候随机梯度下降能够直接优化期望风险,因为样例可能是随机从真正的分布中选取的。
随机梯度算法的收敛性已经在随机近似算法的论文所讨论。收敛性要满足:
并且
二阶随机梯度下降:
这种方法并没有减少噪音,也不会对计算
有太大改进。
1.3 随即梯度的一些例子
下面列了一些比较经典的机器学习算法的随机梯度,
分享到:
相关推荐
more general technique called stochastic gradient descent (SGD). This chapter provides background material, explains why SGD is a good learning algorithm when the training set is large, and provides ...
SGD(Stochastic Gradient Descent,随机梯度下降)是神经网络中最基本的优化算法之一。它通过随机选择一小部分样本进行训练,并基于这些样本的梯度来更新模型参数。SGD 算法简单、易于实现,但可能会因为训练时梯度...
2. 随机梯度下降 Stochastic gradient descent(SGD) 4 3. 小批量梯度下降 Mini-batch gradient descent(MBGD) 5 4. Momentum(动量) 7 5. Adagrad 7 6. Adadelta 9 7. RMSprop 9 8. Adam 10 优化器的选择 11 最近邻...
随机建立一组数据,比较三种梯度下降方法(批量梯度下降,小批量梯度下降,随机梯度下降),仅供参考,用于自己整理。
Bolt-on Differential Privacy for Scalable Stochastic Gradient Descent-based Analytics 文章梳理的ppt
Fregata 是一个基于 Apache Spark 的轻量级、超快速、大规模的机器学习库,并在 Scala 中提供了高级 API。特性更准确:对于各种问题,Fregata 可以实现比 MLLib 更高的精度。更快速:对于广义线性模型,Fregata 在绝...
Stochastic Gradient Descent (SGD) is a popular algorithm that can achieve state-of-the-artperformance on a variety of machine learning tasks. Several researchers have recently pro-posed schemes to ...
http://blog.csdn.net/abcjennifer/article/details/25912675 的辅助代码,利用stochastic gradient descent 进行logistic regression, 应用于mnist数据集
Within this framework, we have developed two algorithms for large-scale distributed training: (i) Downpour SGD, an asynchronous stochastic gradient descent procedure supporting a large number of ...
皇家理工的机器学习论文作业,使用的是心脏病数据集进行研究,用到的方法有线性回归、决策树、支持向量机、神经网络、K近邻算法、SGDClassifier梯度下降分类以及XGBoost方法,完全可以满足课程要求,然后代码有注释...
Currently, stochastic gradient descent (SGD) is one of the most famous approaches for MF. However, it is non-trivial to.parallelize SGD for large-scale CF MF problems due to the dependence on the ...
本文实例为大家分享了python实现梯度下降算法的具体代码,供大家参考,具体内容如下 ...Stochastic Gradient Descent SGD ''' __author__ = 'epleone' import numpy as np import matplotlib.pyplot as pl
介绍2.1 tf.train.GradientDescentOptimizer 基础梯度下降算法批量梯度下降/标准梯度下降(Batch Gradient Descent,BGD)随机梯度下降法(Stochastic gradient descent, SGD)小批量梯度下降法(MinBatch ...
matlab代码lasso data_mining/数据挖掘 data_analysis 一、十六种回归算法 01)LineaRegrssion 02)KNeighuborsRegresspr 03)SVR 04)Lasso 05)Ridge ...Stochastic Gradient Descent (SGD) Passive Agg
We study a new aggregation operator for gradients coming from a mini-batch for stochastic gradient (SG) methods that allows a significant speed-up in the case of sparse optimization problems. We ...
import paddle from paddle.nn import Linear import paddle.nn.functional as F import numpy as np import os import random def load_data(): # 从文件导入数据 datafile = './work/... # 将原始数据进行Resh
可用于联邦学习和分布式学习中的关于网络架构和通信编码部分的实验,参考ICommunication_Ctrl接口说明( );可用于神经网络模型分割与模型验证,参考 nn 库使用说明();可用于分布式并行计算实验,参考 executor ...
机器学习算法demo合集(普通最小二乘法,决策树(Iris鸢尾花数据集),KNN(mnist手写数字数据集),朴素贝叶斯分类西瓜数据集,trec06c数据集垃圾邮件分类(spam),逻辑斯蒂回归,随机梯度下降SGD与全梯度下降的...
其中优化器采用随机梯度下降(Stochastic Gradient Descent,SGD)。随机梯度下降相对于梯度下降(Gradient Descent,GD)有在信息冗余的情况下更能有效的利用信息,前期迭代效果卓越,适合处理大样本的数据这三个优势...
机器学习中常见的距离度量方法有欧式距离、余弦距离、曼哈顿距离和切比雪夫距离,它们各有特点。 针对样本不平衡的问题,可以通过下采样、上采样或调整样本权重等方法来平衡正负样本比例。 高斯混合模型中的隐变量...