直觀理解梯度,以及偏導數、方向導數和法向量等

博客:blog.shinelee.me | 博客園 | CSDN算法

寫在前面

梯度是微積分中的基本概念,也是機器學習解優化問題常常使用的數學工具(梯度降低算法),雖然常說常聽常見,但其細節、物理意義以及幾何解釋仍是值得深挖一下,這些不清楚,梯度就成了「熟悉的陌生人」,僅僅「記住就完了」在用時不免會感受不踏實,爲了「用得放心」,本文將嘗試直觀地回答如下幾個問題,app

  • 梯度與偏導數的關係?
  • 梯度與方向導數的關係?
  • 爲何說梯度方向是上升最快的方向,負梯度方向爲降低最快的方向?
  • 梯度的模有什麼物理意義?
  • 等高線圖中繪製的梯度爲何垂直於等高線?
  • 全微分與隱函數的梯度有什麼關係?
  • 梯度爲何有時又成了法向量?

閒話少說,書歸正傳。在全篇「做用域」內,假定函數可導。機器學習

偏導數

在博文《單變量微分、導數與鏈式法則 博客園 | CSDN | blog.shinelee.me》中,咱們回顧了常見初等函數的導數,歸納地說,ide

導數是一元函數的變化率(斜率)。導數也是函數,是函數的變化率與位置的關係。函數

若是是多元函數呢?則爲偏導數工具

偏導數是多元函數「退化」成一元函數時的導數,這裏「退化」的意思是固定其餘變量的值,只保留一個變量,依次保留每一個變量,則\(N\)元函數有\(N\)個偏導數。學習

以二元函數爲例,令\(z=f(x,y)\),繪製在3維座標系以下圖所示,優化

z = f(x, y)

在分別固定\(y\)\(x\)的取值後獲得下圖中的黑色曲線——「退化」爲一元函數,二維座標系中的曲線——則偏導數\(\frac{\part{z}}{\part{x}}\)\(\frac{\part z}{\part y}\)分別爲曲線的導數(切線斜率)spa

partial derivative x

partial derivative y

由上可知,一個變量對應一個座標軸,偏導數爲函數在每一個位置處沿着自變量座標軸方向上的導數(切線斜率)

Partial derivative

方向導數

若是是方向不是沿着座標軸方向,而是任意方向呢?則爲方向導數。以下圖所示,點\(P\)位置處紅色箭頭方向的方向導數爲黑色切線的斜率,來自連接Directional Derivative

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}\)時方向導數爲負,表示該方向函數值降低。

至此,方纔有了梯度的幾何意義

  1. 當前位置的梯度方向,爲函數在該位置處方向導數最大的方向,也是函數值上升最快的方向,反方向爲降低最快的方向;
  2. 當前位置的梯度長度(模),爲最大方向導數的值。

等高線圖中的梯度

在講解各類優化算法時,咱們常常看到目標函數的等高線圖示意圖,以下圖所示,來自連接Applet: Gradient and directional derivative on a mountain

Kl27an.png

圖中,紅點爲當前位置,紅色箭頭爲梯度,綠色箭頭爲其餘方向,其與梯度的夾角爲\(\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 = 0\end{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,因此其梯度垂直於等高線,同時指向高度更高的等高線
  • 隱函數能夠當作是一種等高線,其梯度爲高維曲面(曲線)的法向量

以上。

參考

相關文章
相關標籤/搜索