大家好,我是小黑黑。今天我們要討論的主題是:為什么梯度方向是函數值變化最快的方向。
在這篇文章中,我會詳細地講解,梯度下降算法所依賴的數學原理。讓同學們切實理解梯度的數學概念,為理解梯度下降算法打下基礎。 
考慮下面這個問題 設多元函數,f(x, y)=x^2+y^2。在多元函數上有一點P(x0, y0),如果我們從這一點出發,沿著哪個方向運動,能使函數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平面投影,標記為藍色。從藍色點出發,畫出向量(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出發,向不同的方向運動相同的長度,來說明沿著梯度方向運動,函數值會變化得最快。基于俯視的角度觀察函數。在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(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的長度,如果函數上的某個點,沿著該點的梯度方向移動,函數增長得最為迅猛。相應的,如果沿著梯度的反方向運動,函數的值減小得最快。關于該性質的嚴格數學證明,有興趣的同學,可以繼續深入學習'方向導數'和'梯度方向與方向導數的關系'的相關概念。另外,在機器學習的訓練算法中,我們總是需要找到目標函數的最小值。因此從函數的某一個點出發,使該點沿著梯度的反方向運動,會使函數減小得最快。基于這樣的運動方式,就可以更快地使函數收斂到最小,這也是梯度下降算法的理論基礎。最后,給大家留一個思考題,既然梯度方向是函數變化最快的方向,那么什么方向是函數變化最慢的方向呢?那么到這里,為什么梯度方向是函數值變化最快的方向,這一主題就講完了。感謝大家的觀看,我們下節課再會。
|