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可以用于集群,数据中心,也可以用户多核的单机
相关文章推荐
- 用Python从零实现贝叶斯分类器的机器学习的教程
- My Machine Learning
- 机器学习---学习首页 3ff0
- Spark机器学习(一) -- Machine Learning Library (MLlib)
- 反向传播(Backpropagation)算法的数学原理
- 关于SVM的那点破事
- 也谈 机器学习到底有没有用 ?
- TensorFlow人工智能引擎入门教程之九 RNN/LSTM循环神经网络长短期记忆网络使用
- TensorFlow人工智能引擎入门教程之十 最强网络 RSNN深度残差网络 平均准确率96-99%
- TensorFlow人工智能引擎入门教程所有目录
- 如何用70行代码实现深度神经网络算法
- 量子计算机编程原理简介 和 机器学习
- 近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等)
- 已经证实提高机器学习模型准确率的八大方法
- 初识机器学习算法有哪些?
- 机器学习相关的库和工具
- 10个关于人工智能和机器学习的有趣开源项目
- 机器学习实践中应避免的7种常见错误
- 机器学习常见的算法面试题总结
- 不平衡数据处理技术——RUSBoost