`

使用SGD(Stochastic Gradient Descent)进行大规模机器学习

阅读更多
        使用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 随即梯度的一些例子
下面列了一些比较经典的机器学习算法的随机梯度,
分享到:
评论
2 楼 fengyang0317 2013-10-27  
这个截图是哪篇文献上看的呢?
1 楼 poson 2013-06-15  
写得不错。

相关推荐

    Federated Accelerated Stochastic Gradient Descent

    - **随机梯度下降(Stochastic Gradient Descent, SGD)**:一种用于求解机器学习模型参数的优化算法。通过每次仅使用一个样本或小批量样本来更新模型参数,从而实现快速迭代。 - **联邦学习(Federated Learning, ...

    2016-J神-Mini-Batch Semi-Stochastic Gradient Descent in the Proxi

    总的来说,这篇论文的贡献在于提供了一个新的优化策略,通过Mini-Batch技术改进了Semi-Stochastic Gradient Descent,使得在大规模数据和复杂优化问题的求解中,能更好地平衡计算效率和算法的收敛性。

    机器学习-随机梯度下降(Stochastic gradient descent)和 批量梯度下降(Batch gradient

    **机器学习中的优化算法:随机梯度下降(Stochastic Gradient Descent, SGD)与批量梯度下降(Batch Gradient Descent, GD)** 在机器学习领域,优化算法是寻找模型参数的关键,而梯度下降法是其中最常用的优化策略...

    Semi-Stochastic Gradient Descent Methods

    为了应对大数据集,引入了随机梯度下降(Stochastic Gradient Descent, SGD)和半随机梯度下降(Semi-Stochastic Gradient Descent)方法。 半随机梯度下降方法是介于全梯度下降和随机梯度下降之间的一种优化方法。...

    Large-Scale Matrix Factorization with Distributed Stochastic Gradient Descent

    本文提出了一种新的算法,可以近似地对具有数百万行、数百万列以及数十亿非零元素的大规模矩阵进行分解。该方法基于随机梯度下降(SGD),这是一种迭代式的随机优化算法。我们首先开发了一个新颖的“分层”SGD变体...

    A fast distributed stochastic gradient descent algorithm for matrix factorization

    矩阵分解技术在Netflix电影推荐竞赛中展示了其准确性和有效性,其中随机梯度下降(Stochastic Gradient Descent,简称SGD)算法因其高效性而被广泛应用。然而,作为一种顺序化的方法,SGD算法在分布式集群环境...

    具有压缩和延迟补偿的CD-SGD分布式随机梯度下降_CD-SGD Distributed Stochastic Gradient

    本文提出了一种名为CD-SGD(Compression and Delay Compensation Stochastic Gradient Descent)的新分布式优化方法,它将并行机制与梯度量化和延迟全梯度补偿相结合,旨在隐藏梯度压缩的开销,部分重叠通信过程,并...

    matlab开发-StochasticGradientDescent

    在机器学习和优化领域,随机梯度下降(Stochastic Gradient Descent, SGD)是一种广泛应用的算法,用于求解无约束优化问题。MATLAB作为一种强大的数值计算环境,是实现这种算法的理想平台。本项目"matlab开发-...

    Large Scale Semi-supervised Linear SVM with Stochastic Gradient Descent

    本文探讨了大规模半监督线性支持向量机(Linear SVM)通过使用随机梯度下降(Stochastic Gradient Descent, SGD)来实现高效的训练方法。 首先,半监督学习的概念基础来源于监督学习。监督学习在许多实际应用中取得...

    Matlab library for gradient descent algorithms Version 1.0.1.zip

    3. **随机梯度下降(Stochastic Gradient Descent, SGD)**:与批量梯度下降不同,SGD每次迭代只使用一个样本的数据来更新参数,这大大降低了计算成本,适用于大数据集。不过,SGD的收敛路径可能更加波动。 4. **小...

    大规模机器学习问题研究.pdf

    典型代表如随机梯度下降(Stochastic Gradient Descent, SGD),它在每次迭代中仅使用一个样本的梯度信息,减少了计算成本,同时通过不断迭代逐步逼近全局最优。然而,在线学习可能对噪声和异常值敏感,且收敛速度较...

    Stochastic Gradient Descent:使用随机梯度下降法解决无约束优化问题。-matlab开发

    随机梯度下降法(Stochastic Gradient Descent, SGD)是一种在机器学习和优化问题中广泛使用的算法,尤其在处理大规模数据集时表现出高效性。它主要用于寻找损失函数最小化的参数,是许多机器学习模型(如逻辑回归、...

    An overview of gradient descent optimization algorithms

    文章中提到的“不同变体的梯度下降”可能指的是批量梯度下降(Batch Gradient Descent)、随机梯度下降(Stochastic Gradient Descent,SGD)和小批量梯度下降(Mini-batch Gradient Descent)三种常见的方式。...

    最新《机器学习最优化》课程笔记

    最近,一份关于机器学习最优化课程的笔记被发布,它涵盖了机器学习领域中一阶优化方法的理论与应用,以及这些方法在大规模数据集和具有大量参数的模型上的扩展性。 课程笔记强调,本课程并不涉及机器学习的建模和...

    全球关于SGD并行的首篇论文

    标题中提及的“全球关于SGD并行的首篇论文”指的是在机器学习领域,首次提出随机梯度下降法(Stochastic Gradient Descent,简称SGD)并行化处理的学术论文。SGD是一种迭代方法,用于优化机器学习模型中的参数,它...

    An overview of gradient descent optimization.pdf

    梯度下降方法主要可以分为三种类型:批量梯度下降(Batch Gradient Descent)、随机梯度下降(Stochastic Gradient Descent, SGD)和小批量梯度下降(Mini-Batch Gradient Descent)。 - **批量梯度下降**:这种...

    2014斯坦福大学机器学习mkv视频 Lecture17.pptx

    2014年斯坦福大学的机器学习课程,由Andrew Ng教授讲解的Lecture17,深入探讨了在大规模数据集上进行学习的方法。课程中强调了一个观点:“决定胜负的不是谁拥有最好的算法,而是谁掌握了最多的数据。”这一理念揭示...

    机器学习大作业.zip

    最速梯度下降法(Stochastic Gradient Descent, SGD)是优化算法的一种,特别适合处理大规模数据集。在感知机的学习过程中,SGD每次仅选取一个样本点进行迭代,极大地降低了计算复杂度,提高了训练效率。然而,这...

    SGD及其变体1

    SGD(Stochastic Gradient Descent)是机器学习和深度学习中常用的一种优化算法,尤其在训练神经网络时。它的核心思想是在每次迭代时,不是基于整个数据集的梯度进行参数更新,而是选取一个或一小批样本来计算梯度,...

    Keras SGD 随机梯度下降优化器参数设置方式

    **随机梯度下降**(Stochastic Gradient Descent, SGD)是一种迭代求解最小化问题的方法,在机器学习特别是深度学习领域非常流行。相比于批量梯度下降(Batch Gradient Descent, BGD),SGD在每次迭代时仅使用单个...

Global site tag (gtag.js) - Google Analytics