九月 5th, 2012 · diaorui · 數值計算, 數學規劃, 資料探勘
3
前陣子去參加了數學規劃會議,報告很多,人也很多。或者說報告和人過多了……
有少數感興趣的報告,這裡談一下全場最後乙個報告。報告人是jorge nocedal,就是著名的lbfgs的作者。
他關注的問題是一類機器學習中非常常見的優化模型:j(
w)=1
n∑ni
=1l(
f(w;
xi);
yi)
他談到了機器學習裡面常用的隨機梯度下降法(stochastic gradient descent, sgd)。在實際大資料的情況下,他比經典優化方法效果要好。因為經典優化方法算一次下降方向就已經需要很大計算量了。
sgd需要的一次迭代計算量非常小,但是代價是他非常可能不是下降方向,而且需要乙個有經驗的人選擇很好的步長(學習速率)。並且,在理論上,sgd的性質少,所以在優化這個方向裡沒什麼人提到。即使是在計算上,nocedal也提到sgd有個很大的缺點是不容易並行。
以上這些現象我在學習推薦系統svd模型的時候也有一些感觸。
所以他採用了另外乙個思路,思想簡單,效果卻很好。而且能很好的利用上經典優化演算法。經典演算法都需要計算梯度。他的思想就是:只選取一部分樣本來計算梯度。
這樣有乙個近似的梯度計算方法,用js
(w)=
1|s|
∑i∈s
l(f(
w;xi
);yi
)
代替原來目標函式,求它的梯度。
其中s是樣本集,樣本集的大小相對於n來說很小。但是他也不能太小。只要有了梯度,很多演算法都能用上了,比如說他文章中提到梯度方法,newton-cg方法。s中的元素可以在每次迭代的時候隨機選取。
但是需要面臨的乙個問題就是如何確定s的大小。他給出了乙個公式用來確定s的大小是否合適。∥∇
js(w
)–∇j
(w)∥
2≤θ∥
∇j(w
)∥2
這個式子的含義就是樣本集上的近似梯度和真實梯度足夠接近。當然這個又回到了老問題,就是真實梯度計算量太大。於是他又做了一些近似變換,使得只需要計算在樣本集s上的方差即可近似估計上式是否滿足。∥v
ar2s
(l(w
;i))
∥1∥s
∥≤θ2
∥∇j(
w)∥2
2
dora blog,題目為
如果你喜歡我的部落格,請訂閱本部落格的rss以更方便的閱讀!
機器學習中的正負樣本
在機器學習中經常會遇到正負樣本的問題,花了一點時間查詢資料,基本上弄明白了一點到底是怎麼回事,記錄在這裡以便以後檢視,也希望能夠幫助到有疑惑的人,當然也希望理解的比較透徹的人看到之後對於理解的不對的地方能夠予以指點。首先我將這個問題分為分類問題與檢測問題兩個方面進行理解。在分類問題中,這個問題相對好...
機器學習中的正負樣本
本文 在機器學習中經常會遇到正負樣本的問題,花了一點時間查詢資料,基本上弄明白了一點到底是怎麼回事,記錄在這裡以便以後檢視,也希望能夠幫助到有疑惑的人,當然也希望理解的比較透徹的人看到之後對於理解的不對的地方能夠予以指點。首先我將這個問題分為分類問題與檢測問題兩個方面進行理解。在分類問題中,這個問題...
機器學習中的正負樣本
對於機器學習中的正負樣本問題,之前思考過一次,但是後來又有些迷惑,又看了些網上的總結,記錄在這裡。我們經常涉及到的任務有檢測以及分類。針對與分類問題,正樣本則是我們想要正確分類出的類別所對應的樣本,例如,我們要對一張進行分類,以確定其是否屬於汽車,那麼在訓練的時候,汽車的則為正樣本,負樣本原則上可以...