多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > 詳解并行邏輯回歸

詳解并行邏輯回歸

來源:程序員人生   發布時間:2014-09-12 06:24:39 閱讀次數:4819次

編者按:回歸其實就是對已知公式的未知參數進行估計,Logistic regression是線性回歸的一種,是機器學習中十分常用的一種分類算法,在互聯網領域得到了廣泛的應用。本文來自騰訊馮揚的博客:并行邏輯回歸 ,主要從并行化的角度討論LR的實現。


CSDN推薦:歡迎免費訂閱《Hadoop與大數據周刊》獲取更多Hadoop技術文獻、大數據技術分析、企業實戰經驗,生態圈發展趨勢。


以下為原文:

邏輯回歸(Logistic Regression,簡稱LR)是機器學習中十分常用的一種分類算法,在互聯網領域得到了廣泛的應用,無論是在廣告系統中進行CTR預估,推薦系統中的預估轉換率,反垃圾系統中的識別垃圾內容……都可以看到它的身影。LR以其簡單的原理和應用的普適性受到了廣大應用者的青睞。實際情況中,由于受到單機處理能力和效率的限制,在利用大規模樣本數據進行訓練的時候往往需要將求解LR問題的過程進行并行化,本文從并行化的角度討論LR的實現。

1. LR的基本原理和求解方法

LR模型中,通過特征權重向量對特征向量的不同維度上的取值進行加權,并用邏輯函數將其壓縮到0~1的范圍,作為該樣本為正樣本的概率。邏輯函數為,曲線如圖1。


圖1 邏輯函數曲線

給定M個訓練樣本,其中Xj={xji|i=1,2,…N} 為N維的實數向量(特征向量,本文中所有向量不作說明都為列向量);yj取值為+1或-1,為分類標簽,+1表示樣本為正樣本,-1表示樣本為負樣本。在LR模型中,第j個樣本為正樣本的概率是:

其中W是N維的特征權重向量,也就是LR問題中要求解的模型參數。

求解LR問題,就是尋找一個合適的特征權重向量W,使得對于訓練集里面的正樣本,值盡量大;對于訓練集里面的負樣本,這個值盡量?。ɑ?img src="http://www.vxbq.cn/uploadfile/20140901/yjs/52fc40c418649.jpg" border="0" style="">

盡量大)。用聯合概率來表示:

對上式求log并取負號,則等價于:

                                                公式(1)

公式(1)就是LR求解的目標函數。

尋找合適的W令目標函數f(W)最小,是一個無約束最優化問題,解決這個問題的通用做法是隨機給定一個初始的W0,通過迭代,在每次迭代中計算目標函數的下降方向并更新W,直到目標函數穩定在最小的點。如圖2所示。


圖2 求解最優化目標函數的基本步驟

不同的優化算法的區別就在于目標函數下降方向Dt的計算。下降方向是通過對目標函數在當前的W下求一階倒數(梯度,Gradient)和求二階導數(海森矩陣,Hessian Matrix)得到。常見的算法有梯度下降法、牛頓法、擬牛頓法。

(1) 梯度下降法(Gradient Descent)

梯度下降法直接采用目標函數在當前W的梯度的反方向作為下降方向:

其中為目標函數的梯度,計算方法為:

公式(2)

(2) 牛頓法(Newton Methods)

牛頓法是在當前W下,利用二次泰勒展開近似目標函數,然后利用該近似函數來求解目標函數的下降方向:。其中Bt為目標函數f(W)在Wt處的海森矩陣。這個搜索方向也稱作牛頓方向。

(3) 擬牛頓法(Quasi-Newton Methods):

擬牛頓法只要求每一步迭代中計算目標函數的梯度,通過擬合的方式找到一個近似的海森矩陣用于計算牛頓方向。最早的擬牛頓法是DFP(1959年由W. C. Davidon提出,并由R. Fletcher和M. J. D. Powell進行完善)。DFP繼承了牛頓法收斂速度快的優點,并且避免了牛頓法中每次迭代都需要重新計算海森矩陣的問題,只需要利用梯度更新上一次迭代得到的海森矩陣,但缺點是每次迭代中都需要計算海森矩陣的逆,才能得到牛頓方向。

BFGS是由C. G. Broyden, R. Fletcher, D. Goldfarb和D. F. Shanno各自獨立發明的一種方法,只需要增量計算海森矩陣的逆Ht=Bt-1,避免了每次迭代中的矩陣求逆運算。BFGS中牛頓方向表示為:

L-BFGS(Limited-memory BFGS)則是解決了BFGS中每次迭代后都需要保存N*N階海森逆矩陣的問題,只需要保存每次迭代的兩組向量和一組標量即可:

在L-BFGS的第t次迭代中,只需要兩步循環既可以增量計算牛頓方向:

2. 并行LR的實現

由邏輯回歸問題的求解方法中可以看出,無論是梯度下降法、牛頓法、擬牛頓法,計算梯度都是其最基本的步驟,并且L-BFGS通過兩步循環計算牛頓方向的方法,避免了計算海森矩陣。因此邏輯回歸的并行化最主要的就是對目標函數梯度計算的并行化。從公式(2)中可以看出,目標函數的梯度向量計算中只需要進行向量間的點乘和相加,可以很容易將每個迭代過程拆分成相互獨立的計算步驟,由不同的節點進行獨立計算,然后歸并計算結果。

將M個樣本的標簽構成一個M維的標簽向量,M個N維特征向量構成一個M*N的樣本矩陣,如圖3所示。其中特征矩陣每一行為一個特征向量(M行),列為特征維度(N列)。


圖3 樣本標簽向量 & 特征向量

如果將樣本矩陣按行劃分,將樣本特征向量分布到不同的計算節點,由各計算節點完成自己所負責樣本的點乘與求和計算,然后將計算結果進行歸并,則實現了“按行并行的LR”。按行并行的LR解決了樣本數量的問題,但是實際情況中會存在針對高維特征向量進行邏輯回歸的場景(如廣告系統中的特征維度高達上億),僅僅按行進行并行處理,無法滿足這類場景的需求,因此還需要按列將高維的特征向量拆分成若干小的向量進行求解。

 (1) 數據分割

假設所有計算節點排列成m行n列(m*n個計算節點),按行將樣本進行劃分,每個計算節點分配M/m個樣本特征向量和分類標簽;按列對特征向量進行切分,每個節點上的特征向量分配N/n維特征。如圖4所示,同一樣本的特征對應節點的行號相同,不同樣本相同維度的特征對應節點的列號相同。


圖4 并行LR中的數據分割

一個樣本的特征向量被拆分到同一行不同列的節點中,即:

其中Xr,k表示第r行的第k個向量,X(r,c),k表示Xr,k在第c列節點上的分量。同樣的,用Wc表示特征向量W在第c列節點上的分量,即:


(2) 并行計算

觀察目標函數的梯度計算公式(公式(2)),其依賴于兩個計算結果:特征權重向量Wt和特征向量Xj的點乘,標量和特征向量Xj的相乘??梢詫⒛繕撕瘮档奶荻扔嬎惴殖蓛蓚€并行化計算步驟和兩個結果歸并步驟:

① 各節點并行計算點乘,計算,其中k=1,2,…,M/m,表示第t次迭代中節點(r,c)上的第k個特征向量與特征權重分量的點乘,Wc,t為第t次迭代中特征權重向量在第c列節點上的分量。

②對行號相同的節點歸并點乘結果:


計算得到的點乘結果需要返回到該行所有計算節點中,如圖5所示。
             
                                                           圖5 點乘結果歸并


③ 各節點獨立算標量與特征向量相乘:

G(r,c),t可以理解為由第r行節點上部分樣本計算出的目標函數梯度向量在第c列節點上的分量。

④ 對列號相同的節點進行歸并:

Gc,t就是目標函數的梯度向量Gt在第c列節點上的分量,對其進行歸并得到目標函數的梯度向量:

這個過程如圖6所示。


圖6 梯度計算結果歸并

綜合上述步驟,并行LR的計算流程如圖7所示。比較圖1和圖7,并行LR實際上就是在求解損失函數最優解的過程中,針對尋找損失函數下降方向中的梯度方向計算作了并行化處理,而在利用梯度確定下降方向的過程中也可以采用并行化(如L-BFGS中的兩步循環法求牛頓方向)。


圖7 并行LR計算流程

3. 實驗及結果

利用MPI,分別基于梯度下降法(MPI_GD)和L-BFGS(MPI_L-BFGS)實現并行LR,以Liblinear為基準,比較三種方法的訓練效率。Liblinear是一個開源庫,其中包括了基于TRON的LR(Liblinear的開發者Chih-Jen Lin于1999年創建了TRON方法,并且在論文中展示單機情況下TRON比L-BFGS效率更高)。由于Liblinear并沒有實現并行化(事實上是可以加以改造的),實驗在單機上進行,MPI_GD和MPI_L-BFGS均采用10個進程。

實驗數據是200萬條訓練樣本,特征向量的維度為2000,正負樣本的比例為3:7。采用十折交叉法比較MPI_GD、MPI_L-BFGS以及Liblinear的分類效果。結果如圖8所示,三者幾乎沒有區別。


圖8 分類效果對比

將訓練數據由10萬逐漸增加到200萬,比較三種方法的訓練耗時,結果如圖9,MPI_GD由于收斂速度慢,盡管采用10個進程,單機上的表現依舊弱于Liblinear,基本上都需要30輪左右的迭代才能達到收斂;MPI_L-BFGS則只需要3~5輪迭代即可收斂(與Liblinear接近),雖然每輪迭代需要額外的開銷計算牛頓方向,其收斂速度也要遠遠快于MPI_GD,另外由于采用多進程并行處理,耗時也遠低于Liblinear。


圖9 訓練耗時對比
原文鏈接:并行邏輯回歸(責編:Arron)

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 12306午夜被窝播播影院yw188 | 亚洲国产日韩成人综合天堂 | 久草免费网站 | 最新中文字幕在线视频 | a免费国产一级特黄aa大 | 久爱免费视频 | 久久久久99这里有精品10 | 天天久 | 久久综合精品国产一区二区三区 | 国产91精品高跟丝袜在线 | 国产大片免费观看中文字幕 | 看片一区 | 青青草原国产在线视频 | 国产在线精品一区二区中文 | 国产精品不卡片视频免费观看 | 亚洲国产欧美在线人成精品一区二区 | 日本一级黄色毛片 | 高清视频在线观看 | 麻豆成人在线 | 欧美日韩第一页 | 中文字幕日韩欧美一区二区三区 | 午夜免费福利网站 | 五月天婷婷一区二区三区久久 | 欧美日韩国产一区二区三区 | 在线一区国产 | 免费亚洲网站 | 中国一级毛片国产高清 | 亚洲精品一区91 | 亚洲国产日韩在线观频 | 欧美日韩一区二区三区免费 | 久久这里是精品 | 亚洲欧美国产精品久久久 | 最新日本免费一区二区三区中文 | 亚洲性久久 | 成人欧美一区二区三区在线观看 | 久久久毛片免费全部播放 | 欧美综合在线观看 | 亚洲另类小说图片 | 亚洲精品国产不卡在线观看 | 免费色网址| 福利国产在线 |