随机梯度下降(SGD)与经典的梯度下降法的区别

随机梯度下降(SGD)与经典的梯度下降法的区别

经典的优化方法,例如梯度下降法,在每次迭代过程中需要使用所有的训练数据,这就给求解大规模数据优化问题带来挑战。

知识点随机梯度下降法(SGD)小批量梯度下降法

在机器学习中,目标函数通常可以表示成为如下形式:
机器学习中,优化问题的目标函数
而经典的梯度下降法采用所有的训练数据的平均损失来近似目标函数。其中M是训练样本的个数。
在这里插入图片描述
模型参数的更新公式为:
在这里插入图片描述

因此,经典的梯度下降法在每次对模型参数进行更新时,需要遍历所有的训练数据。当M很大的时候,就需要耗费巨大的计算资源和计算时间,这在实际过程中基本不可行。那么,该怎么办呢?
为了解决该问题,随机梯度下降法(Stochastic Gradient Descent, SGD)应运而生。它采用单个训练样本的损失来近似平均损失

在这里插入图片描述
因此随机梯度下降法用单个训练数据即可对模型参数进行一次更新,大大加快了训练速度。

为了降低随机梯度的方差,从而使得迭代算法更加稳定,也为了充分利用高度优化的矩阵运算操作,在实际操作中,我们会同时处理若干训练数据,该方法叫做小批量随机梯度下降法(Mini_Batch Gradient Densent)。假设需要同时处理m个训练数据
在这里插入图片描述

关于小批量梯度下降法,需要注意的几点

1.如何选取mini_batch的大小m?在实际应用过程当中,最优的m通常会不一样,需要通过调参选取。一般m取2的幂次时能充分利用矩阵运算操作。因此可以在2的幂次中挑选最优取值。例如16、32、64、128、256等等。
2.如何选择m个训练数据?为了避免数据的特定顺序给算法收敛带来的影响,一般会在每次遍历训练数据之前,先对所有的数据进行随机排序。然后在每次迭代时按顺序挑选m个训练数据直至遍历完所有数据
3. 学习率 α \alpha α应该如何选取?为了加快收敛速度,缩短训练时间,同时为了提高求解精度,通常会采用衰减学习速率的方法,即一开始算法采用较大的学习速率,当误差曲线进入平台期后,减小学习率以做更精细的调整。最优学习率 α \alpha α通常也需要调参才能得到。

总结:

综合上述,通常采用小批量随机梯度下降法(Mini_Batch Gradient Descent)解决训练数据量过大的问题。每一次更新模型参数时,只需要处理m个训练数据即可,其中m是一个远小于总训练样本数M的常数(通常取2的整数次幂),这样可以大大加快训练过程。

  • 49
    点赞
  • 154
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值