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

梯度下降有三种

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)

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

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

这里【重磅】批量梯度下降、随机梯度下降、小批量梯度下降未知,所以梯度下降整个过程 其实就是求 【重磅】批量梯度下降、随机梯度下降、小批量梯度下降 !! 求出来还是个估计值!

输入:损失函数【重磅】批量梯度下降、随机梯度下降、小批量梯度下降, 【重磅】批量梯度下降、随机梯度下降、小批量梯度下降为向量,【重磅】批量梯度下降、随机梯度下降、小批量梯度下降,n个特征

输出:【重磅】批量梯度下降、随机梯度下降、小批量梯度下降的最优值,用【重磅】批量梯度下降、随机梯度下降、小批量梯度下降表示,【重磅】批量梯度下降、随机梯度下降、小批量梯度下降

 

设 损失函数为 【重磅】批量梯度下降、随机梯度下降、小批量梯度下降  

说明:【重磅】批量梯度下降、随机梯度下降、小批量梯度下降一般为平方损失、log对数损失等 能求导的 损失函数0-1损失不能求导不能用梯度下降

(图片)

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

说明:

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

2. 【重磅】批量梯度下降、随机梯度下降、小批量梯度下降也是自己为了方便设置的,当然也可以设别的初值,或者设置不同初值重复多次试验,对比最优值结果。不同初值可能会得出不同的优化结果,这是由于进入的局部最优值的情况,但是!如果损失函数为凸函数,那么最优值只有一个!只有一个!可以放心设置初值,只是时间不同而已,多迭代几次便是了。

3. 【重磅】批量梯度下降、随机梯度下降、小批量梯度下降是一个大于0,但非常接近0的一个数,比如0.000001,用来做最后的参考,比如两个函数值的差值小于【重磅】批量梯度下降、随机梯度下降、小批量梯度下降,那么就可以判定两个函数值相等,那么基本收敛了,数学分析的收敛知识点就这玩意儿。当然根据实际需求,【重磅】批量梯度下降、随机梯度下降、小批量梯度下降,也是可以的。

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

5. 第(3)步,求步长【重磅】批量梯度下降、随机梯度下降、小批量梯度下降,可以理解为遍历所有正数【重磅】批量梯度下降、随机梯度下降、小批量梯度下降,在一定的方向(梯度即方向),求出 使得损失函数下降最多时 的【重磅】批量梯度下降、随机梯度下降、小批量梯度下降

6. 也有人不求【重磅】批量梯度下降、随机梯度下降、小批量梯度下降,直接自己设置,比如【重磅】批量梯度下降、随机梯度下降、小批量梯度下降等等,李航大佬求出来也是蛮6的,这得求多久。或者其实大部分都是自己设置然后看效果罢了。反正就是整出个 步长【重磅】批量梯度下降、随机梯度下降、小批量梯度下降(也称学习率)。

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

 

随机梯度下降

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

 

 

 

 

 

 

 

 

 

参考:

李航《统计学习方法》

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