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??α4001?i=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 问题描述及流程-机器学习笔记-