首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

梯度下降原理及分类

事实上,机器学习中的很多问题本质上都是求解优化相关的问题,模型训练的目的就是要找到最合适的参数尽可能的最小化损失函数值。求解最优化问题,有很多成熟的方法可以参考,梯度下降算是最经典的方法。通过利用梯度信息,以此不断迭代来逐步调整参数寻找最优解。

01梯度下降算法的原理

对于一个多元函数,梯度可以定义为对其每个自变量的偏导数构成的向量。为了保证更新参数后使得损失函数值减小,只需要自变量偏导数的反方向移动一定的步长即可,这里的步长是一个超参数,用于调整每次更新的程度,这就是学习率learning rate。

机器学习中优化的目标是最小化损失函数,通过梯度下降的方法进行求解的过程分为几步:

通过随机初始化需要求解的参数赋初值,以此作为优化的起始点;

使用模型对所有样本进行预测,计算总体的损失值;

利用损失值对模型参数进行求导,得到相应的梯度;

最后基于梯度调整参数,得到迭代之后的参数;

重复上述过程,直到达到停止条件;

02梯度下降的分类

上面介绍的梯度下降算法,面对全量的训练数据时,如果每次都基于全量的样本计算梯度值,然后更新以此参数,这种方法称为批梯度下降 Batch Gradient Descent。这种方法虽然更新更准确,但是面对大规模数据,模型计算时间成本很高,且随着模型的参数增加,梯度计算会更复杂。

有没有不对全量样本进行梯度计算,而使用单一样本来近似估计梯度呢?这样可以极大地减少计算量,提高模型训练的效率,实验也证明,这种方法能够保证一定的收敛性,这种方法称为随机梯度下降 Stochastic Gradient Descent(SGD)。每次只选择一个样本来计算损失和梯度总归是有一定的偏差,存在一定的不确定性。

因此,改进的方法是每次使用多个样本来估计梯度,一方面可以减小不确定性,同时也能满足计算量的要求,这种方法称为小批量梯度随机下降 mini-Batch Stochastic Gradient Descent。

码字不易,欢迎关注AINotesClub。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210206A01TO900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券