欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

10.3 在线学习与 MapReduce-机器学习笔记-斯坦福吴恩达教授

发布时间:2025/4/5 编程问答 48 豆豆
生活随笔 收集整理的这篇文章主要介绍了 10.3 在线学习与 MapReduce-机器学习笔记-斯坦福吴恩达教授 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

在线学习与 MapReduce

在线学习

用户登录了某提供货运服务的网站,输入了货运的发件地址和收件地址,该网站给出了货运报价,用户决定是购买该服务(y=1)( y=1 )y=1或者是放弃购买该服务(y=0)( y=0 )y=0

特征向量 xxx 包括了收发地址,报价信息,我们想要学习 p(y=1∣x;θ)p(y=1|x;θ)p(y=1x;θ) 来最优化报价:
重复直到收敛:重复直到收敛:获得关于该用户的样本(x,y),使用该样本更新θ:\quad\quad 获得关于该用户的样本 (x,y),使用该样本更新\ θ:(x,y)使 θθj:=θj−α(hθ(x)−y)xj,forj=0,...,nθ_j:=θ_j−α(h_θ(x)−y)x_j,\quad for\ j=0,...,nθj:=θjα(hθ(x)y)xj,for j=0,...,n

这就是在线学习(Online learning),与前面章节提到的机器学习过程不同,在线学习并不需要一个固定的样本集进行学习,而是不断接收样本,不断通过接收到的样本进行学习。因此,在线学习的前提是:我们面临着流动的数据。

MapReduce

前面,我们提到了 Mini 批量梯度下降法,假定 b=400,m=400,000,000b=400,m=400,000,000b=400,m=400,000,000 ,我们对 θθθ 的优化就为:
θj:=θj−α1400∑i=1400(hθ(x(i))−y(i))xj(i),forj=0,...,nθ_j:=θ_j−α\frac 1{400}\sum_{i=1}^{400}(h_θ(x^{(i)})−y^{(i)})x_j^{(i)},\quad for\ j=0,...,nθj:=θjα4001i=1400(hθ(x(i))y(i))xj(i),for j=0,...,n

假定我们有 4 个机器(Machine),我们首先通过 Map (映射)过程来并行计算式中的求和项,每个机器被分配到 100 个样本进行计算:
tempj(1)=∑i=1100(hθ(x(i))−y(i))xj(i)temp_j^{(1)} = \sum_{i=1}^{100}(h_θ(x^{(i)})−y^{(i)})x_j^{(i)}tempj(1)=i=1100(hθ(x(i))y(i))xj(i)tempj(2)=∑i=101200(hθ(x(i))−y(i))xj(i)temp_j^{(2)} = \sum_{i=101}^{200}(h_θ(x^{(i)})−y^{(i)})x_j^{(i)}tempj(2)=i=101200(hθ(x(i))y(i))xj(i)tempj(3)=∑i=201300(hθ(x(i))−y(i))xj(i)temp_j^{(3)} = \sum_{i=201}^{300}(h_θ(x^{(i)})−y^{(i)})x_j^{(i)}tempj(3)=i=201300(hθ(x(i))y(i))xj(i)tempj(4)=∑i=301400(hθ(x(i))−y(i))xj(i)temp_j^{(4)} = \sum_{i=301}^{400}(h_θ(x^{(i)})−y^{(i)})x_j^{(i)}tempj(4)=i=301400(hθ(x(i))y(i))xj(i)

最后,通过 Reduce(规约)操作进行求和:

θj:=θj−α1400(tempj(1)+tempj(2)+tempj(3)+tempj(4))θ_j:=θ_j−α\frac 1{400}(temp_j^{(1)}+temp_j^{(2)}+temp_j^{(3)}+temp_j^{(4)})θj:=θjα4001(tempj(1)+tempj(2)+tempj(3)+tempj(4))

我们可以使用多台机器进行 MapReduce,此时,Map 任务被分配到多个机器完成:

也可以使用单机多核心进行 MapReduce,此时,Map 任务被分配到多个 CPU 核心完成:

总结

以上是生活随笔为你收集整理的10.3 在线学习与 MapReduce-机器学习笔记-斯坦福吴恩达教授的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。