大家好,,我是小黑黑,。今天我們要討論的主題是:為什么梯度方向是函數值變化最快的方向。
在這篇文章中,,我會詳細地講解,,梯度下降算法所依賴的數學原理。讓同學們切實理解梯度的數學概念,,為理解梯度下降算法打下基礎,。 考慮下面這個問題 設多元函數,f(x, y)=x^2+y^2,。在多元函數上有一點P(x0, y0),,如果我們從這一點出發(fā),沿著哪個方向運動,,能使函數f(x, y)增大或減小的最快呢,? 先說結論,函數上的某一點,,如果沿著函數梯度的方向運動,,那么函數增加的最快,如果沿著函數梯度的反方向運動,,函數減小的最快,。接下來,我們就詳細地討論這個問題,。 梯度,,英文是gradient,,是微積分和向量分析中的重要概念,可以定義為一個多元函數全部偏導數所構成的向量,。我們使用倒三角符號▽,,nabla,表示某個函數的梯度,。例如,,二元函數f(x, y),它的梯度就是函數f,,對x和y求偏導組成的二維向量,。三元函數g(x, y, z)的梯度是,g對x,,y,,z求偏導組成的三維向量。n元函數f(θ1,,θ2,,…,θn)的梯度是,,f分別對n個自變量求偏導構成的n維向量,。為了更加直觀的說明函數與梯度的關系,我們畫出,,二元函數f(x, y) = x^2 + y^2,,在點(1, 1)處的梯度向量。這里將函數上的一點P(1, 1, 2),,標記為紅色,。將該點向灰色的x-o-y平面投影,標記為藍色,。從藍色點出發(fā),,畫出向量(2, 2),使用黑色箭頭表示,,它就是點(1, 1, 2)的梯度向量。對于輸入點(1, 1),,如果它沿著(2, 2)方向運動,,函數會增加得最快。這里要注意,,因為梯度向量是在函數的輸入空間中定義的,,對應x-o-y平面,因此我們畫出了藍色的投影點,,并從該點畫梯度向量,。另外,,我們可以將視角調整俯視,進一步觀察黑色的梯度向量,。仍然使用這個例子,,說明梯度的計算方法。計算函數f(x, y) = x^2 + y^2的梯度,。首先,,需要分別求出f(x, y)關于x和y的偏導數。然后將這兩個偏導數組合成一個梯度向量(2x, 2y),,它表示了f(x, y)在任意點(x, y)上的變化方向和速率,。將坐標(1, 1)帶入,計算點(1, 1)處的梯度,,可以得到向量(2, 2),。梯度的方向是函數值上升最快的方向。對于函數上的某個點,,如果沿著梯度方向移動,,那么函數值增加得最快。如果沿著梯度的反方向移動,,函數值減小得最快,。例如,對于點(1, 1),,沿著方向(2, 2)運動,,函數值會增加地的最快。沿著負梯度方向(-2, -2)運動,,函數值減小得最快,。接下來,我們舉例說明這條性質,。仍然討論點P(1, 1, 2)的運動,。將函數圖像調整為俯視角度,可以觀察P點的自變量取值(1, 1),,與其可能的運動方向,。調整為平視角度,可以觀察到函數值f(1, 1)=2,。接下來,,我們會從點P出發(fā),向不同的方向運動相同的長度,,來說明沿著梯度方向運動,,函數值會變化得最快。基于俯視的角度觀察函數,。在xOy平面上,,設置3個方向向量,(-1, 0),、(1, 0)和(2, 2),,代表接下來自變量x和y要變化的方向。分別是向左運動,,向右運動和沿梯度方向運動,。接著我們要從P點沿著(-1, 0)、(1, 0)和(2, 2)這三個向量的方向,,運動1個單位,,到達A、B,、C三個點,。然后比較A、B,、C這三個點的函數值,,相比P點函數值的變化。如果從點P(1, 1),,按照向量(-1, 0)的方向,,移動1個單位,會到達A點,。A點(0,,1)處的函數值為f(x, y)=0^2+1^2=1。我們會發(fā)現,,f(0, 1)相比f(1, 1)減小了1,。這里從側面,觀察圖像上點的運動,,可以更容易看出函數值的變化,。如果從點P(1, 1),按照向量(1, 0)的方向移動1個單位,,會到達B點(2, 1),。該點的函數值是,f(x, y)=2^2+1^2=5,,f(2, 1)比f(1, 1)增加了3,。最后按照梯度方向(2, 2)移動1個單位,大約會到達C點,。這里需要將梯度轉換為單位向量,,也就是根號2分之1,根號2分之1,,進行計算,。C點大概在(1.707,,1.707)這個位置,這里的1.707是1+的近似值,。此時函數值為1.707^2 + 1.707^2 = 5.828,,比f(1, 1)增加了3.828,是增加的最多的,。 從這個例子中可以看到,,同樣是移動單位1的長度,如果函數上的某個點,,沿著該點的梯度方向移動,,函數增長得最為迅猛。相應的,,如果沿著梯度的反方向運動,,函數的值減小得最快。關于該性質的嚴格數學證明,,有興趣的同學,,可以繼續(xù)深入學習'方向導數'和'梯度方向與方向導數的關系'的相關概念。另外,,在機器學習的訓練算法中,,我們總是需要找到目標函數的最小值。因此從函數的某一個點出發(fā),,使該點沿著梯度的反方向運動,,會使函數減小得最快。基于這樣的運動方式,,就可以更快地使函數收斂到最小,,這也是梯度下降算法的理論基礎。最后,,給大家留一個思考題,,既然梯度方向是函數變化最快的方向,那么什么方向是函數變化最慢的方向呢,?那么到這里,,為什么梯度方向是函數值變化最快的方向,這一主題就講完了,。感謝大家的觀看,,我們下節(jié)課再會。
|