online learning,batch learning&批量梯度下降,随机梯度下降

以上几个概念之前没有完全弄清其含义及区别,容易混淆概念,在本文浅析一下:


一、online learning vs batch learning

online learning强调的是学习是实时的,流式的,每次训练不用使用全部样本,而是以之前训练好的模型为基础,每来一个样本就更新一次模型,这种方法叫做OGD(online gradient descent)。这样做的目的是快速地进行模型的更新,提升模型时效性。

online learning其实细分又可以分为batch模式和delta模式。batch模式的时效性比delta模式要低一些。分析一下batch模式,比如昨天及昨天的数据训练成了模型M,那么今天的每一条训练数据在训练过程中都会更新一次模型M,从而生成今天的模型M1。

而batch learning或者叫offline learning强调的是每次训练都需要使用全量的样本,因而可能会面临数据量过大的问题。后面要讨论的批量梯度下降法(BGD)和随机梯度下降法(SGD)都属于batch learning或者offline learning的范畴。

batch learning一般进行多轮迭代来向最优解靠近。online learning没有多轮的概念,如果数据量不够或训练数据不够充分,通过copy多份同样的训练数据来模拟batch learning的多轮训练也是有效的方法。


二、批量梯度下降(BGD)vs 随机梯度下降(SGD)

首先明确BGD和SGD都属于batch learing,都需要全量训练数据进行训练,需要遍历所有样本。

BGD在每次更新模型的时候,都要使用全量样本来计算更新的梯度值。如果有m个样本,迭代n轮,那么需要是m*n的计算复杂度。

SGD在每次更新模型的时候,只要当前遍历到的样本来计算更新的梯度值就行了。如果迭代n轮,则只需要n的计算复杂度,因为每轮只计算一个样本。

以上就是BGD和SGD的区别,容易看出,BGD的优势在于计算的是全局最优解,效果较SGD会好一些,劣势在于计算开销大;SGD则相反,优势在于计算开销减小很多,劣势在于计算的是局部最优解,可能最终达不到全局最优解。在数据量大的时候,SGD是较好的折衷选择。

  • 8
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
批量梯度下降Batch Gradient Descent)和随机梯度下降(Stochastic Gradient Descent)都是常见的优化算法,用于求解机器学习模型的参数。虽然两者都可以收敛到全局最优解,但在实际应用中,随机梯度下降往往比批量梯度下降更受欢迎,原因如下: 1. 计算效率:批量梯度下降在每一轮迭代中需要计算所有样本的梯度,因此当数据集较大时,计算成本非常高。而随机梯度下降每次只需要选取一个样本计算梯度,计算成本相对较低,特别是在大规模数据集上。 2. 模型泛化性能:批量梯度下降每次更新模型参数时,都是基于所有训练样本的平均梯度,因此在一定程度上可以减少模型的过拟合情况。但是,这也会导致批量梯度下降收敛速度较慢,可能需要迭代多轮才能达到最优解。而随机梯度下降每次只考虑一个样本,容易受到噪声的影响,但是由于更新频率高,对于凸函数或者凸优化问题,随机梯度下降通常可以更快地收敛。 3. 避免局部最优解:批量梯度下降在更新参数时,只考虑整个数据集的平均梯度,容易陷入局部最优解。而随机梯度下降每次只考虑一个样本的梯度,因此可以跳出局部最优解,寻找到全局最优解。 综上所述,虽然批量梯度下降收敛精度更高,但是在实际应用中,随机梯度下降更加高效、收敛速度更快,因此更受欢迎。不过,为了避免过拟合,通常会采用小批量梯度下降(Mini-batch Gradient Descent),即每次选取一定数量的样本进行梯度计算和更新,以平衡计算效率和模型泛化性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值