競價廣告系統-邏輯迴歸優化方法-L-BFGS

 

 

邏輯迴歸優化方法-L-BFGS

邏輯迴歸的優化方法是一個經典的問題,若是咱們把它視爲一個最大熵模型,那麼咱們知道最先的優化方法是IIS,這個方法就不細講了,由於它速度很慢。後來發如今最優化領域中很是經常使用的l-BFGS方法對於Logistic Regression的收斂速度優化是不錯的。app

       l-BFGS方法是Quasi-Newton方法中的一種,我想從工程角度談一下個人見解,上次咱們談到在分佈式環境下進行模型的優化,無非有兩種思路,一,若是數據是mixture of exponent family的分佈,用mapper進行E步驟,reducer進行M步驟進行迭代優化,這種是比較簡單的方法。若是不是mixture of exponent family的狀況,就用基於導數,基於梯度的方法優化。但基於梯度的方法有一個問題,好比有兩次函數中,函數等高線是一個很是扁的橢圓,那麼基於梯度的收斂速度是很慢的。在實際的工程問題中,這種病態的函數是很常見的,由於在工程中有成千上萬的特徵,它們的物理意義有時候是不明確的,沒法統一的對它們進行歸一化處理,所以沒法用一階導數的方法很快的求解,那麼咱們能夠用二階的導數,根據前兩次的路徑,大概求得它兩次的求值是什麼,這樣就能夠校訂它的方向,使得它快速收斂。因此Quasi-Newton在工程中是必要的方法,而不僅是優化的方法。那麼這種方法與Newton法有什麼不一樣呢?在Newton法中要求Hession矩陣是正定的,但在實際問題中,很難保證是正定的。BFGS的思路是用函數值和特徵的變化量來近似Hession矩陣,以保證正定性,並減小計算量。Hession陣是經過前幾步的路徑,估計出一個二階導數,它有不一樣的估計方法,BFGS就是其中一種估計方法。框架

       L(imited memory)-BFGS它是爲了解決空間複雜度的問題,雖然Hession陣能夠估計能夠計算,但它的規模太大,對於剛纔說的點擊率預測問題,它可能有上億個特徵,而Hession是一個n*n 的矩陣。而在L-BFGS,它是對Hession進行近似,將它拆爲一個單位陣加上三個小的矩陣之積,假設選擇一個比較小的k值以近似前面的Hession陣。它將BFGS的O(n*n)空間複雜度降到了O(n*k),k通常是10之內的數。分佈式

 

計算廣告學-競價廣告系統-邏輯迴歸優化方法-L-BFGS - quweiprotoss - Koala++s blog

 

l-BFGS在特徵量大時比BFGS實用,能夠很是容易用map/reduce實現分佈式求解,mapper求部分數據上的梯度,reducer求和並更新參數。它與梯度法實現複雜一點的地方在,它須要保存前幾回的模型,才能計算當前迭代的更新值。函數

       l-BFGS是對Logistic Regression優化的最基本的一個方法,瞭解它以後對優化的框架和思路會有一個比較清晰的線索。優化

相關文章
相關標籤/搜索