Coursera_机器学习_week10_笔记

来源:互联网 发布:谈谈对大数据的好处 编辑:程序博客网 时间:2024/06/06 05:54

大数据集的梯度下降算法

主要内容包括:
- 批量梯度下降法Batch Gradient Descent(BSD)
- * 随机梯度下降Stochastic gradient descent ( SGD) *
- 小批量梯度下降 Mini-Batch Gradient Descent
- online learning
-Map-reduce 并行化计算

回顾
梯度下降算法

Jtrain(θ)=12mmi=1(hθ(x(i))y(i))2

批量梯度下降法Batch Gradient Descent(BSD)

每次迭代的时候,都对全部样本进行计算

随机梯度下降Stochastic gradient descent ( SGD)

先将样本数据随机打乱顺序,然后在每次迭代中,只是用一个样本数据
优点:节约计算成本
缺点:不是每次迭代都会是J变小,可能陷入局部最优解
为了确保SGD收敛(Convergence),在使用第i个样本更新θ之前,先计算cost,也可以选择将结果plot画出来,来感受算法的效果,如果cost振幅很大而且不变小,试试换个learning rate 或者增加feature,如果反而增大,试试减小learning rate(α
一般情况下learning rate(α)都保持恒定;如果希望最终得到全局最优解,可以试试逐渐减小learning rate(α):α=const1iterrationNumber+const2 ,但那样你又多了两个参数要调,所以通常还是用恒定learning rate(α)的多。

小批量梯度下降 Mini-Batch Gradient Descent

每次迭代使用b个样本,b通常取值范围2~100,Angrew经常用的是10

借助octave的向量化计算函数,Mini-Batch 的 性能会优于 SGD;但多了一个参数b要调

online learning

当你的网站有很多访问量,有很多免费的数据,来一个数据,计算一次,丢弃这个样本,使用onlinelearning。如果你的网站数据量很小,那还是把数据保存下来慢慢train 比较好。
online learning 可以很好的使用用户的变化,比如经济危机的时候用户可能会价格更加敏感。
举一个搜索引擎学习CTR的例子
在线机器学习

Map-reduce 并行化计算

就是将批量梯度下降算法的求和计算分配给整个集群
将训练集分成若干份,每一份在一个slave机器上跑,再汇总到master机器上
如果机器学习算法中有求和计算,就可以考虑用MapReduce进行优化
Mapreduce可以用于集群,数据中心,也可以用户多核的单机

0 0
原创粉丝点击