日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

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

编程问答

OWL-QN算法

發布時間:2024/1/17 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OWL-QN算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:

http://www.cnblogs.com/vivounicorn/archive/2012/06/25/2561071.html

一、BFGS算法

??????算法思想如下:

?????????? Step1?? 取初始點,初始正定矩陣,允許誤差,令;

?????????? Step2?? 計算;

?????????? Step3?? 計算,使得

???????????????????????????????????????????????;

????????? Step4??? 令;

????????? Step5??? 如果,則取為近似最優解;否則轉下一步;

????????? Step6??? 計算

????????????????????????????????,,

?????????????????????????

????????? 令,轉Step2.

優點:

1、不用直接計算Hessian矩陣;

2、通過迭代的方式用一個近似矩陣代替Hessian矩陣的逆矩陣。

缺點:

1、矩陣存儲量為,因此維度很大時內存不可接受;

2、矩陣非稀疏會導致訓練速度慢。

?

二、L-BFGS算法

????? 針對BFGS的缺點,主要在于如何合理的估計出一個Hessian矩陣的逆矩陣,L-BFGS的基本思想是只保存最近的m次迭代信息,從而大大降低數據存儲空間。對照BFGS,我重新整理一下用到的公式:

??????????????????????????????????????

?????????????????????????????????????????????

?????????????????????????????????

?????????????????????????????????

于是估計的Hessian矩陣逆矩陣如下:?????????????????????????

????????????????????????????????

???????????????????????????????????????

????????????????????????????????

帶入上式,得:

????????????????????????????????

假設當前迭代為k,只保存最近的m次迭代信息,(即:從k-m~k-1),依次帶入,得到:

公式1:

???????????????????????????????

??????????????????????????????????????

??????????????????????????????????????

??????????????????????????????????????

???????????????????????????????????????

??????????????????????????????????????

算法第二步表明了上面推導的最終目的:找到第k次迭代的可行方向,滿足:

????????????????????????????????

為了求可行方向p,有下面的:

? two-loop recursion算法


??????????????????????????????????

??????????????????????????????????

??????????????????????????????????????????

??????????????????????????????????????????

???????????????????????????????????

???????????????????????????????????

???????????????????????????????????

?????????????????????????????????????????

?????????????????????????????????????????

????????????????????????????????????

???????????????????????????????????


該算法的正確性推導:

1、令:?????,遞歸帶入q:

????????????????????????????????

?????????????????????????????????????

?????????????????????????????????????

?????????????????????????????????????

?????????????????????????????????????

?????????????????????????????????????

?????????????????????????????????????

相應的:

????????????????????????????????

?????????????????????????????????????

2、令:

????????????????????????????????

?????????????????????????????????????

?????????????????????????????????????

于是:

????????????????????????????????

?????????????????????????????????????

?????????????????????????????????????

?????????????????????????????????????

????????????????????????????????????????????????

??????????????????????????????????????

???????????????????????????????????????????

??????????????????????????????????????

??????????????????????????????????????

??????????????????????????????????????

這個two-loop recursion算法的結果和公式1*初始梯度的形式完全一樣,這么做的好處是:

1、只需要存儲、(i=1~m);

2、計算可行方向的時間復雜度從O(n*n)降低到了O(n*m),當m遠小于n時為線性復雜度。

總結L-BFGS算法的步驟如下:

????? Step1:?????? 選初始點,允許誤差,存儲最近迭代次數m(一般取6);

????? Step2:??????;

????? Step3:?????? 如果??則返回最優解,否則轉Step4;

????? Step4:?????? 計算本次迭代的可行方向:;

????? Step5:?????? 計算步長,對下面式子進行一維搜索:

?????????????????????????;

????? Step6:?????? 更新權重x:

?????????????????????????;?????

????? Step7:????? if k > m

???????????????????????????? 只保留最近m次的向量對,需要刪除();

????? Step8:?????? 計算并保存:

????????????????????????

????????????????????????;

????? Step9:?????? 用two-loop recursion算法求得:

?????????????????????????;

????? k=k+1,轉Step3。

需要注意的地方,每次迭代都需要一個,實踐當中被證明比較有效的取法為:

??????????????????????????

??????????????????????????

?

三、OWL-QN算法

1、問題描述

對于類似于Logistic Regression這樣的Log-Linear模型,一般可以歸結為最小化下面這個問題:

?????????????????????????

其中,第一項為loss function,用來衡量當訓練出現偏差時的損失,可以是任意可微凸函數(如果是非凸函數該算法只保證找到局部最優解),后者為regularization term,用來對模型空間進行限制,從而得到一個更“簡單”的模型。

??????? 根據對模型參數所服從的概率分布的假設的不同,regularization term一般有:L2-norm(模型參數服從Gaussian分布);L1-norm(模型參數服從Laplace分布);以及其他分布或組合形式。

L2-norm的形式類似于:

????????????????????????

L1-norm的形式類似于:

????????????????????????

L1-norm和L2-norm之間的一個最大區別在于前者可以產生稀疏解,這使它同時具有了特征選擇的能力,此外,稀疏的特征權重更具有解釋意義。

對于損失函數的選取就不在贅述,看兩幅圖:

圖1 - 紅色為Laplace Prior,黑色為Gaussian Prior?

?

圖2 直觀解釋稀疏性的產生

?

??????? 對LR模型來說損失函數選取凸函數,那么L2-norm的形式也是的凸函數,根據最優化理論,最優解滿足KKT條件,即有:,但是L1-norm的regularization term顯然不可微,怎么辦呢?

2、Orthant-Wise Limited-memory Quasi-Newton

??????? OWL-QN主要是針對L1-norm不可微提出的,它是基于這樣一個事實:任意給定一個維度象限,L1-norm 都是可微的,因為此時它是一個線性函數:

圖3 任意給定一個象限后的L1-norm

OWL-QN中使用了次梯度決定搜索方向,凸函數不一定是光滑而處處可導的,但是它又符合類似梯度下降的性質,在多元函數中把這種梯度叫做次梯度,見維基百科http://en.wikipedia.org/wiki/Subderivative

舉個例子:

圖4 次導數

對于定義域中的任何x0,我們總可以作出一條直線,它通過點(x0,f(x0)),并且要么接觸f的圖像,要么在它的下方。這條直線的斜率稱為函數的次導數,推廣到多元函數就叫做次梯度。

次導數及次微分:

凸函數f:I→R在點x0的次導數,是實數c使得:

????????????????????????

對于所有I內的x。可以證明,在點x0的次導數的集合是一個非空閉區間[a,b],其中a和b是單側極限

??????????????

??????????????

它們一定存在,且滿足a?≤?b。所有次導數的集合[a,?b]稱為函數f在x0的次微分。

OWL-QN和傳統L-BFGS的不同之處在于:

1)、利用次梯度的概念推廣了梯度

?????? 定義了一個符合上述原則的虛梯度,求一維搜索的可行方向時用虛梯度來代替L-BFGS中的梯度:

??????????????????????

????????????????????????

???????????????????????

怎么理解這個虛梯度呢?見下圖:

對于非光滑凸函數,那么有這么幾種情況:

圖5??

?

圖6??

?

圖7? otherwise

2)、一維搜索要求不跨越象限

?????? 要求更新前權重與更新后權重同方向:

圖8? OWL-QN的一次迭代

總結OWL-QN的一次迭代過程:

–Find vector of steepest descent

–Choose sectant

–Find L-BFGS quadratic approximation

–Jump to minimum

–Project back onto sectant

–Update Hessian approximation using gradient of?loss alone

最后OWL-QN算法框架如下:

?????????????????????????????????

?

????? 與L-BFGS相比,第一步用虛梯度代替梯度,第二、三步要求一維搜索不跨象限,也就是迭代前的點與迭代后的點處于同一象限,第四步要求估計Hessian矩陣時依然使用loss function的梯度(因為L1-norm的存在與否不影響Hessian矩陣的估計)。

四、參考資料

1、Galen Andrew and Jianfeng Gao. 2007. 《Scalable training of L1-regularized log-linear models》. In Proceedings of ICML, pages 33–40.

2、http://freemind.pluskid.org/machine-learning/sparsity-and-some-basics-of-l1-regularization/#d20da8b6b2900b1772cb16581253a77032cec97e

3、http://research.microsoft.com/en-us/downloads/b1eb1016-1738-4bd5-83a9-370c9d498a03/default.aspx

總結

以上是生活随笔為你收集整理的OWL-QN算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。