【重磅】批量梯度下降、随机梯度下降、小批量梯度下降

本文介绍了三种梯度下降方法:批量梯度下降、随机梯度下降和小批量梯度下降,并对比了它们各自的优缺点及适用场景。此外还详细解释了梯度下降的基本原理及其在机器学习中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

梯度下降有三种

1. 批量梯度下降(Batch Gradient Descent,BGD)

2. 随机梯度下降(Gradient Descent,SGD)

3. 小批量梯度下降(Mini-Batch Gradient Descent,MBGD)

不同点在于损失函数使用的样本量的不同,其根本流程是一毛一样的啊!

各有优缺点。

方法说明优点缺点适用实例
批量梯度下降 BGD最原始方法,每次跟新参数时,使用所有样本,即损失函数由所有样本构成。

1. 全局最优解;

2. 易于并行实现。

1. 样本多时,训练时间慢样本量比较小
随机梯度下降 SGD损失函数使用一个样本,噪声比BGD要多1. 训练速度快

1. 准确度降低,经常非全局最优

2. 不易于并行实现

样本量比较大,或者在线学习算法
小批量梯度下降 MBGD损失函数使用一部分样本综合BGD、SGD综合BGD、SGD一般情况

 

传统普通梯度下降

或:  批量梯度下降(Batch Gradient Descent,BGD)

根据李航《统计学习方法》改编

梯度下降为最优化算法,顾名思义,优化,需要迭代才能找出最优值。

这里\theta未知,所以梯度下降整个过程 其实就是求 \theta !! 求出来还是个估计值!

输入:损失函数J(\theta), \theta为向量,\theta = (\theta_0,\theta_1,\theta_2,...,\theta_n ),n个特征

输出:\theta的最优值,用\theta^{*}表示,\small \theta^{*} = (\theta_0^{*},\theta_1^{*},\theta_2^{*},...,\theta_n^{*} )

 

设 损失函数为 J(\theta)  

说明:J(\theta)一般为平方损失、log对数损失等 能求导的 损失函数0-1损失不能求导不能用梯度下降

(图片)

说明:

1. k=0,是为了方便,有需要可以输出迭代次数,这样可以比较不同优化算法中的速率。

2. \small \theta^{(k)}=\theta^{(0)}=0也是自己为了方便设置的,当然也可以设别的初值,或者设置不同初值重复多次试验,对比最优值结果。不同初值可能会得出不同的优化结果,这是由于进入的局部最优值的情况,但是!如果损失函数为凸函数,那么最优值只有一个!只有一个!可以放心设置初值,只是时间不同而已,多迭代几次便是了。

3. \small \epsilon是一个大于0,但非常接近0的一个数,比如0.000001,用来做最后的参考,比如两个函数值的差值小于\small \epsilon,那么就可以判定两个函数值相等,那么基本收敛了,数学分析的收敛知识点就这玩意儿。当然根据实际需求,\small \epsilon = 0.01,\epsilon = 0.1,也是可以的。

4. 在第(1)步 求梯度中,需要注意的是,这里需要求n个方程,因为有n个参数(或者说系数),目前我的理解是 先对n个\small \theta求偏导数,然后在睇(4)步迭代时,同时对n个\small \theta参数进行更新。(如果我的理解不对请和我联系,我将虚心改正。)

5. 第(3)步,求步长\eta,可以理解为遍历所有正数\eta,在一定的方向(梯度即方向),求出 使得损失函数下降最多时 的\eta

6. 也有人不求\eta,直接自己设置,比如\eta= 1,\eta= 0.5,\eta= 0.3,\eta= 0.01......等等,李航大佬求出来也是蛮6的,这得求多久。或者其实大部分都是自己设置然后看效果罢了。反正就是整出个 步长\eta(也称学习率)。

7. 梯度下降中,损失函数不同,梯度(导数)就不同。

 

随机梯度下降

在传统的普通梯度下降中,我们可以从

 

 

 

 

 

 

 

 

 

参考:

李航《统计学习方法》

https://www.cnblogs.com/pinard/p/5970503.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

挺烦先森

下次复下次,下次何其多。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值