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=1∣x;θ) 来最优化报价:
重复直到收敛:重复直到收敛:重复直到收敛:获得关于该用户的样本(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=1∑400(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=1∑100(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=101∑200(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=201∑300(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=301∑400(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-机器学习笔记-斯坦福吴恩达教授的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 10.2 梯度下降-机器学习笔记-斯坦福
- 下一篇: 11.1 问题描述及流程-机器学习笔记-