3

在機器學習迴歸問題中,爲什麼局部最小值是針對導數函數而不是實際函數計算的?爲什麼使用函數的導數來計算局部最小值而不是實際函數?

實施例:http://en.wikipedia.org/wiki/Gradient_descent

梯度下降算法應用於找到函數$$

f(x)=x^4−3x^3+2, ----(A) 

與衍生物

f'(x)=4x^3−9x^2. ----(B) 

這裏的局部最小值使用以找到局部最小值(A)的梯度下降算法,他們已經使用了(A)的導數函數,它是函數(B)。

回答

3

原因是,因爲函數是凹的(或凸,如果你正在做最大化---這些問題是等價),你知道有一個最小值(最大值)。這意味着有一個點在梯度等於零的地方。有些技術使用函數本身,但如果可以計算漸變,則可以更快地收斂,因爲您可以考慮漸變,從而爲您提供有關如何從最佳方法獲得的信息。

除了梯度下降之外,還有一種稱爲Newton's method的優化方法,該方法需要計算二階導數(Hessian在多變量優化中)。這個收斂速度更快,但是如果你有很多參數,要求你能夠反轉Hessian,這是不可行的。所以有方法來解決這個問題,計算limited memory approximation of the Hessian。這些方法的收斂速度仍然較快,因爲他們使用有關漸變曲率的信息:這是一個簡單的折衷方案,您對要優化的函數的瞭解越多,找到解決方案的速度就越快。

+1

對不起,我有一個非常愚蠢的問題。 f'(x)= 4x^3-9x^2通過查看函數,我們可以找到局部最小值,即對於x = 0,f'(x)= 0將出現,那麼爲什麼我們需要梯度下降。 – user703555 2013-02-15 09:16:31

+0

好吧,這不僅僅是看着它:當f'(x)= 0時,你可以求解x。這是一個簡單的例子:大多數情況下,當你使用優化方法時,你無法獲得分析解決方案。請參閱http://en.wikipedia.org/wiki/Convex_optimization以獲取更多詳細信息。 – 2013-02-15 10:09:54

1

我不是數學家 - 所以我不能給你確切的答案,但是,你要明白做什麼的推導,例如:

http://en.wikipedia.org/wiki/Derivative http://en.wikipedia.org/wiki/Differential_of_a_function

這是你所需要的(什麼區別做): http://en.wikipedia.org/wiki/File:Graph_of_sliding_derivative_line.gif

在一個點的衍生物等於切線於該函數在該點的曲線的斜率。而這正是你想要的時候你想要的下降。把它看作非常非正式的觀點,維基百科的文章會給你更深入和準確的知識...

相關問題