您的位置:首页 > 其它

Coursera_机器学习_week10_笔记

2016-05-14 15:30 295 查看

大数据集的梯度下降算法

主要内容包括:

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

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

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

- online learning

-Map-reduce 并行化计算

回顾

梯度下降算法

Jtrain(θ)=12m∑mi=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可以用于集群,数据中心,也可以用户多核的单机
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  机器学习