梯度下降,随机梯度下降,mini-batch梯度下降

三种梯度下降法

1、梯度下降法

以线性回归为例:

这里写图片描述

梯度下降:

这里写图片描述
当m很大时,所需要的时间将会很长,该梯度下降法也称为批量梯度下降法(batch gradient descent).“批量”就是表示我们需要每次都考虑所有的训练样本。

这里写图片描述

2、随机梯度下降(Stochastic gradient descent)

单个训练样本的代价函数:

这里写图片描述

总体的代价函数:

这里写图片描述

SGD过程:
step1:将数据随机打乱

step2:

这里写图片描述

随机梯度下降的做法实际上就是扫描所有的训练样本,首先是第一组训练样本(x(1), y(1)),
然后只对这第一个训练样本,我们的梯度下降只对这第一个训练样本的代价函数进行。换就话说我们要关注第一个样本,然后把参数稍微修改一点使其对第一个训练样本的拟合变得好一点完成这个内层循环(for i=1,….,m)以后,然后再转向第二个训练样本,把参数稍微修改一点使其对第二个训练样本的拟合变得好一点,然后再转向第三个训练样本以此类推直到完成所有的训练集。

与批量梯度下降不同,随机梯度下降不需要对所有m个训练样本求和来得到梯度项,只需要对单个训练样本求出这个梯度项这里写图片描述,我们已经在这个过程中开始优化参数了。

外环(Repeat)的循环次数取决于训练样本的大小,通常1次最多10次

随机梯度下降算法在每一次计算之后便更新参数 θ, 而不需要首先将所有的训练集求和,在梯度下降算法还没有完成一次迭代时, 随机梯度下降算法便已经走出了很远。 但是这样的算法存在的问题是, 不是每一步都是朝着”正确”的方向迈出的。 因此算法虽然会逐渐走向全局最小值的位置,但是可能无法站到那个最小值的那一点,而是在最小值点附近徘徊。

这里写图片描述

3、mini-batch梯度下降

批量梯度下降:use all examples in each iteration.
随机梯度下降:use 1 example in each iteration
mini-batch梯度下降:use b examples in each iteration

b=mini-batch size 通常令b在2-100

例如 b = 10 m=1000

这里写图片描述

参考资料

1、吴恩达机器学习公开课

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值