Batch Gradient Descendent (BGD) & Stochastic Gradient Descendent (SGD)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Batch Gradient Descendent (BGD) & Stochastic Gradient Descendent (SGD)相关的知识,希望对你有一定的参考价值。
SGD, BGD初步描述
(原文来自:http://blog.csdn.net/lilyth_lilyth/article/details/8973972,@熊均达@SJTU 做出解释及说明)
梯度下降(GD)是最小化风险函数、损失函数(注意Risk Function和Cost Function在本文中其实指的一个意思,在不同应用领域里面可能叫法会有所不同。解释:@熊均达@SJTU)的一种常用方法,随机梯度下降和批量梯度下降是两种迭代求解思路,下面从公式和实现的角度对两者进行分析,如有哪个方面写的不对,希望网友纠正。
下面的h(x)是要拟合的函数,J(θ)损失函数,θ是参数,要迭代求解的值,theta求解出来了那最终要拟合的函数h(θ)就出来了。其中m是训练集的记录条数,j是参数的个数。
(2)由于是要最小化风险函数(注意这里用了风险函数,其实就是损失函数。解释:@熊均达@SJTU),所以按每个参数θ的梯度负方向,来更新每个θ
(3)从上面公式可以注意到,它得到的是一个全局最优解,但是每迭代一步,都要用到训练集所有的数据,如果m很大,那么可想而知这种方法的迭代速度!!所以,这就引入了另外一种方法,随机梯度下降。
@熊均达@SJTU附注1:在BGD中,你需要把所有的样本都考虑,求所有样本处的误差的平方和。而对于SGD,遍历到哪里就是哪里。
批量梯度下降 | 随机梯度下降 |
批量更新算法 | 在线算法 |
经验风险 | 泛化风险 |
可能陷入局部最优(初值选择敏感) | 可能找到全局最优 |
对步长不敏感 | 对步长敏感 |
迭代次数少 | 迭代次数多 |
计算量大 | 计算量不大 |
对于线性回归问题,批量梯度下降和随机梯度下降是如何找到最优解的?
最后附上带有大量干货的斯坦福CS229课程主页网址:http://cs229.stanford.edu/materials.html
有兴趣的同学可以自行查阅,其实网上大部分的资料都是根据这些资料翻译的,但是这些更权威。
参考资料:
- https://hal.archives-ouvertes.fr/file/index/docid/359142/filename/ASCONVEXSET.BASIC.IJPAM.1.pdf
- http://blog.csdn.net/lilyth_lilyth/article/details/8973972
以上是关于Batch Gradient Descendent (BGD) & Stochastic Gradient Descendent (SGD)的主要内容,如果未能解决你的问题,请参考以下文章
随机梯度下降(Stochastic gradient descent)和 批量梯度下降(Batch gradient descent )的公式对比
随机梯度下降(stochastic gradient descent),批梯度下降(batch gradient descent),正规方程组(The normal equations)
随机梯度下降(Stochastic gradient descent)和 批量梯度下降(Batch gradient descent )的公式对比实现对比
随机梯度下降(Stochastic gradient descent)和 批量梯度下降(Batch gradient descent )的公式对比实现对比[转]
批量梯度下降法(Batch Gradient Descent)
flink 批量梯度下降算法线性回归参数求解(Linear Regression with BGD(batch gradient descent) )