直觀理解梯度,以及偏導數、方嚮導數和法向量等
- 2019 年 10 月 21 日
- 筆記
部落格:blog.shinelee.me | 部落格園 | CSDN
寫在前面
梯度是微積分中的基本概念,也是機器學習解優化問題經常使用的數學工具(梯度下降演算法),雖然常說常聽常見,但其細節、物理意義以及幾何解釋還是值得深挖一下,這些不清楚,梯度就成了「熟悉的陌生人」,僅僅「記住就完了」在用時難免會感覺不踏實,為了「用得放心」,本文將嘗試直觀地回答以下幾個問題,
- 梯度與偏導數的關係?
- 梯度與方嚮導數的關係?
- 為什麼說梯度方向是上升最快的方向,負梯度方向為下降最快的方向?
- 梯度的模有什麼物理意義?
- 等高線圖中繪製的梯度為什麼垂直於等高線?
- 全微分與隱函數的梯度有什麼關係?
- 梯度為什麼有時又成了法向量?
閑話少說,書歸正傳。在全篇「作用域」內,假定函數可導。
偏導數
在博文《單變數微分、導數與鏈式法則 部落格園 | CSDN | blog.shinelee.me》中,我們回顧了常見初等函數的導數,概括地說,
導數是一元函數的變化率(斜率)。導數也是函數,是函數的變化率與位置的關係。
如果是多元函數呢?則為偏導數。
偏導數是多元函數「退化」成一元函數時的導數,這裡「退化」的意思是固定其他變數的值,只保留一個變數,依次保留每個變數,則(N)元函數有(N)個偏導數。
以二元函數為例,令(z=f(x,y)),繪製在3維坐標系如下圖所示,
在分別固定(y)和(x)的取值後得到下圖中的黑色曲線——「退化」為一元函數,二維坐標系中的曲線——則偏導數(frac{part{z}}{part{x}})和(frac{part z}{part y})分別為曲線的導數(切線斜率)。
由上可知,一個變數對應一個坐標軸,偏導數為函數在每個位置處沿著自變數坐標軸方向上的導數(切線斜率)。
方嚮導數
如果是方向不是沿著坐標軸方向,而是任意方向呢?則為方嚮導數。如下圖所示,點(P)位置處紅色箭頭方向的方嚮導數為黑色切線的斜率,來自鏈接Directional Derivative
方嚮導數為函數在某一個方向上的導數,具體地,定義(xy)平面上一點((a, b))以及單位向量(vec u = (cos theta ,sin theta )),在曲面(z=f(x, y))上,從點((a,b, f(a,b)))出發,沿(vec u = (cos theta ,sin theta ))方向走(t)單位長度後,函數值(z)為(F(t)=f(a+t cos theta, b + t sin theta)),則點((a,b))處(vec u = (cos theta ,sin theta ))方向的方嚮導數為:
[ begin{aligned} &left.frac{d}{d t} f(a+t cos theta, b+t sin theta)right|_{t=0} \=& lim _{t rightarrow 0} frac{f(a+t cos theta, b+t sin theta) – f(a, b)}{t} \=& lim _{t rightarrow 0} frac{f(a+t cos theta, b+t sin theta) – f(a, b+t sin theta)}{t} + lim _{t rightarrow 0} frac{f(a, b+t sin theta) – f(a, b)}{t} \=& frac{partial}{partial x} f(a, b) frac{d x}{d t}+frac{partial}{partial y} f(a, b) frac{d y}{d t} \=& f_x (a, b) cos theta+ f_y (a, b) sin theta \=&left(f_x (a, b), f_y (a, b)right) cdot(cos theta, sin theta) end{aligned} ]
上面推導中使用了鏈式法則。其中,(f_x (a, b))和(f_y (a, b))分別為函數在((a, b))位置的偏導數。由上面的推導可知:
該位置處,任意方向的方嚮導數為偏導數的線性組合,係數為該方向的單位向量。當該方向與坐標軸正方向一致時,方嚮導數即偏導數,換句話說,偏導數為坐標軸方向上的方嚮導數,其他方向的方嚮導數為偏導數的合成。
寫成向量形式,偏導數構成的向量為(nabla f(a, b) = (f_x (a, b), f_y (a, b))),稱之為梯度。
梯度
梯度,寫作(nabla f),二元時為((frac{part{z}}{part{x}}, frac{part{z}}{part{y}})),多元時為((frac{part{z}}{part{x}}, frac{part{z}}{part{y}},dots))。
我們繼續上面方嚮導數的推導,((a,b))處(theta)方向上的方嚮導數為
[ begin{aligned} &left(f_x (a, b), f_y (a, b)right) cdot(cos theta, sin theta) \ =& |((f_x (a, b), f_y (a, b))| cdot |1| cdot cos phi \=& |nabla f(a,b)| cdot cos phi end{aligned} ]
其中,(phi)為(nabla f(a,b))與(vec u)的夾角,顯然,當(phi = 0)即(vec u)與梯度(nabla f(a,b))同向時,方嚮導數取得最大值,最大值為梯度的模(|nabla f(a,b)|),當(phi = pi)即(vec u)與梯度(nabla f(a,b))反向時,方嚮導數取得最小值,最小值為梯度模的相反數。此外,根據上面方嚮導數的公式可知,在夾角(phi < frac{pi}{2})時方嚮導數為正,表示(vec u)方向函數值上升,(phi > frac{pi}{2})時方嚮導數為負,表示該方向函數值下降。
至此,方才有了梯度的幾何意義:
- 當前位置的梯度方向,為函數在該位置處方嚮導數最大的方向,也是函數值上升最快的方向,反方向為下降最快的方向;
- 當前位置的梯度長度(模),為最大方嚮導數的值。
等高線圖中的梯度
在講解各種優化演算法時,我們經常看到目標函數的等高線圖示意圖,如下圖所示,來自鏈接Applet: Gradient and directional derivative on a mountain,
圖中,紅點為當前位置,紅色箭頭為梯度,綠色箭頭為其他方向,其與梯度的夾角為(theta)。
將左圖中(z=f(x, y))曲面上的等高線投影到(xy)平面,得到右圖的等高線圖。
梯度與等高線垂直。為什麼呢?
等高線,顧名思義,即這條線上的點高度(函數值)相同,令某一條等高線為(z=f(x,y)=C),(C)為常數,兩邊同時全微分,如下所示
[ begin{aligned} dz = &frac{part f}{part x} dx + frac{part f}{part y} dy \=& (frac{part f}{part x}, frac{part f}{part y}) cdot (dx, dy) \=& dC = 0end{aligned} ]
這裡,兩邊同時全微分的幾何含義是,在當前等高線上挪動任意一個極小單元,等號兩側的變化量相同。(f(x, y))的變化量有兩個來源,一個由(x)的變化帶來,另一個由(y)的變化帶來,在一階情況下,由(x)帶來的變化量為(frac{part f}{part x} dx),由(y)帶來的變化量為(frac{part f}{part y} dy),兩者疊加為(z)的總變化量,等號右側為常數,因為我們指定在當前等高線上挪動一個極小單元,其變化量為0,左側等於右側。進一步拆分成向量內積形式,((frac{part f}{part x}, frac{part f}{part y}))為梯度,((dx, dy))為該點指向任意方向的極小向量,因為兩者內積為0,所以兩者垂直。自然不難得出梯度與等高線垂直的結論。
更進一步地,梯度方向指向函數上升最快的方向,在等高線圖中,梯度指向高度更高的等高線。
隱函數的梯度
同理,對於隱函數(f(x,y)=0),也可以看成是一種等高線。二元時,兩邊同時微分,梯度垂直於曲線;多元時,兩邊同時微分,梯度垂直於高維曲面。
即,隱函數的梯度為其高維曲面的法向量。
有了法向量,切線或切平面也就不難計算得到了。令曲線(f(x , y))上一點為((a,b)),通過全微分得該點的梯度為((f_x, f_y)),則該點處的切線為(f_x (x-a) + f_y (y-b) = 0),相當於將上面的微分向量((dx, dy))替換為((x-a, y-b)),其幾何意義為法向量垂直切平面上的任意向量。
小結
至此,文章開篇幾個問題的答案就不難得出了,
- 偏導數構成的向量為梯度;
- 方嚮導數為梯度在該方向上的合成,係數為該方向的單位向量;
- 梯度方向為方嚮導數最大的方向,梯度的模為最大的方嚮導數;
- 微分的結果為梯度與微分向量的內積
- 等高線全微分的結果為0,所以其梯度垂直於等高線,同時指向高度更高的等高線
- 隱函數可以看成是一種等高線,其梯度為高維曲面(曲線)的法向量
以上。
參考
- Gradients and Partial Derivatives
- Directional Derivative
- Applet: Gradient and directional derivative on a mountain
- Gradient descent
- Gradient
- Partial derivative
- ppt Partial derivative