随机梯度下降,mini-batch梯度下降,在线学习机制,mapreduce

随机梯度下降算法

1.h为假设函数,J为代价函数

梯度下降算法是反复更新参数西塔的值

 

过程:

1.随机打乱所有数据,把m个训练样本重新随机排列,此为数据预处理过程。

2.用公式对西塔进行更新操作,并对样本进行逐一拟合。由于每次更新只需要对一个数据进行拟合,所以算法的速度很快。

左端为梯度下降算法,右端为随机梯度下降算法 

区别:梯度下降算法每次更新都要用到所有的样本数据,速度较慢;而随机梯度下降算法每次更新只需要用到一个样本数据,梯度较快,不需要进行过多的并行计算

 

mini-batch梯度下降算法:采用随机梯度下降算法的思想,每次对b个数据进行更新

 

 

 有点:结合梯度下降和随机梯度下降算法的特点,当有合适的向量化参数时,运算速度将比随机梯度下降算法还快

 

 

随机梯度下降算法收敛判断

 

1.原梯度下降算法缺点:如果要想得知该算法是否收敛,需要遍历整个训练集才行,否则就要暂停算法的运行。而梯度下降算法一般是运行一次就可通过查看cost函数来判断算法是否收敛,也可运用mini-batch函数对前一千个样本数据运用cost函数进行局部梯度下降来判断算法是否收敛。 

1.5000取样的曲线要比1000取样的曲线要平滑

2.如果曲线上下跳动得很明显甚至看不出下降趋势的话,可能的原因为样本数据量过小,应该适当增加样本的数据量。

3.如果代价函数曲线是往上走的,可能的原因就是a值太大,即学习梯度过大,应当使用小点的a值 

代价函数一般在收敛后会在某个值附近震荡,解决办法就是让a的值如上图所示,随着迭代次数的增加,a的值会不断减小,震荡幅度就越不明显。 

 

 

在线学习机制:随机梯度下降的一个变种

由于是在线算法,会有源源不断的数据量,因此每个数据一般只使用一次 

 

 

 

MapReduce

算法机制

 

 将工作量分给多台电脑工作后再进行汇总到一台电脑上合并运算

前提就是算法能能在大量数据的基础上表示成对训练集的求和 

 

如果一台电脑拥有多个核心,也可以运行mapreduce算法,这样就不用过多考虑数据传输等问题

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值