专栏名称: 机器学习研究会
机器学习研究会是北京大学大数据与机器学习创新中心旗下的学生组织,旨在构建一个机器学习从事者交流的平台。除了及时分享领域资讯外,协会还会举办各种业界巨头/学术神牛讲座、学术大牛沙龙分享会、real data 创新竞赛等活动。
目录
相关文章推荐
爱可可-爱生活  ·  【Promptwright:一个用本地大型语 ... ·  3 天前  
爱可可-爱生活  ·  几篇论文实现代码:《SuperClass: ... ·  6 天前  
DataFunTalk  ·  大模型训练的分布式策略和性能优化 ·  1 周前  
DataFunTalk  ·  大模型训练的分布式策略和性能优化 ·  1 周前  
51好读  ›  专栏  ›  机器学习研究会

【干货】详解梯度下降法的三种形式BGD,SGD以及MBGD

机器学习研究会  · 公众号  · AI  · 2017-03-23 18:49

正文



点击上方“机器学习研究会”可以订阅哦
摘要
 

转自:自然语言处理与机器学习

本篇文章目录如下:

1.批量梯度下降法BGD原理讲解

2.随机梯度下降法SGD原理讲解

3.小批量梯度详解MBGD原理讲解

4.具体实例以及三种实现方式代码详解

5.三种梯度下降法的总结


在应用机器学习算法时,我们通常采用梯度下降法来对采用的算法进行训练。其实,常用的梯度下降法还具体包含有三种不同的形式,它们也各自有着不同的优缺点。


下面我们以线性回归算法来对三种梯度下降法进行比较。


一般线性回归函数的假设函数为:


对应的损失函数为:

(这里的1/2是为了后面求导计算方便)


下图作为一个二维参数(theta0,theta1)组对应能量函数的可视化图:



下面我们来分别讲解三种梯度下降法



1批量梯度下降法BGD


我们的目的是要误差函数尽可能的小,即求解weights使误差函数尽可能小。首先,我们随机初始化weigths,然后不断反复的更新weights使得误差函数减小,直到满足要求时停止。这里更新算法我们选择梯度下降算法,利用初始化的weights并且反复更新weights:

这里代表学习率,表示每次向着J最陡峭的方向迈步的大小。为了更新weights,我们需要求出函数J的偏导数。首先当我们只有一个数据点(x,y)的时候,J的偏导数是:



则对所有数据点,上述损失函数的偏导(累和)为:


再最小化损失函数的过程中,需要不断反复的更新weights使得误差函数减小,更新过程如下:

那么好了,每次参数更新的伪代码如下:


由上图更新公式我们就可以看到,我们每一次的参数更新都用到了所有的训练数据(比如有m个,就用到了m个),如果训练数据非常多的话,是非常耗时的


下面给出批梯度下降的收敛图

从图中,我们可以得到BGD迭代的次数相对较少。


原文链接:

https://mp.weixin.qq.com/s/vWplhegZPIO7_eVtBS4xBg

“完整内容”请点击【阅读原文】
↓↓↓