目錄部落格:blog.shinelee.me | | csdn
梯度是微積分中的基本概念,也是機器學習解優化問題經常使用的數學工具(梯度下降演算法),雖然常說常聽常見,但其細節、物理意義以及幾何解釋還是值得深挖一下,這些不清楚,梯度就成了「熟悉的陌生人」,僅僅「記住就完了」在用時難免會感覺不踏實,為了「用得放心」,本文將嘗試直觀地回答以下幾個問題,
閒話少說,書歸正傳。在全篇「作用域」內,假定函式可導。
在博文《單變數微分、導數與鏈式法則 | csdn | blog.shinelee.me》中,我們回顧了常見初等函式的導數,概括地說,
導數是一元函式的變化率(斜率)。導數也是函式,是函式的變化率與位置的關係。
如果是多元函式呢?則為偏導數。
偏導數是多元函式「退化」成一元函式時的導數,這裡「退化」的意思是固定其他變數的值,只保留乙個變數,依次保留每個變數,則\(n\)元函式有\(n\)個偏導數。
以二元函式為例,令\(z=f(x,y)\),繪製在3維座標系如下圖所示,
在分別固定\(y\)和\(x\)的取值後得到下圖中的黑色曲線——「退化」為一元函式,二維座標系中的曲線——則偏導數\(\frac}}\)和\(\frac\)分別為曲線的導數(切線斜率)。
由上可知,乙個變數對應乙個座標軸,偏導數為函式在每個位置處沿著自變數座標軸方向上的導數(切線斜率)。
如果是方向不是沿著座標軸方向,而是任意方向呢?則為方向導數。如下圖所示,點\(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 &\left.\frac f(a+t \cos \theta, b+t \sin \theta)\right|_ \\=& \lim _ \frac \\=& \lim _ \frac + \lim _ \frac \\=& \frac f(a, b) \frac+\frac f(a, b) \frac \\=& 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
\]上面推導中使用了鏈式法則。其中,\(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}}, \frac}})\),多元時為\((\frac}}, \frac}},\dots)\)。
我們繼續上面方向導數的推導,\((a,b)\)處\(\theta\)方向上的方向導數為
\[\begin &\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
\]其中,\(\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\)時方向導數為正,表示\(\vec u\)方向函式值上公升,\(\phi > \frac\)時方向導數為負,表示該方向函式值下降。
至此,方才有了梯度的幾何意義:
當前位置的梯度方向,為函式在該位置處方向導數最大的方向,也是函式值上公升最快的方向,反方向為下降最快的方向;
當前位置的梯度長度(模),為最大方向導數的值。
圖中,紅點為當前位置,紅色箭頭為梯度,綠色箭頭為其他方向,其與梯度的夾角為\(\theta\)。
將左圖中\(z=f(x, y)\)曲面上的等高線投影到\(xy\)平面,得到右圖的等高線圖。
梯度與等高線垂直。為什麼呢?
等高線,顧名思義,即這條線上的點高度(函式值)相同,令某一條等高線為\(z=f(x,y)=c\),\(c\)為常數,兩邊同時全微分,如下所示
\[\begin dz = &\frac dx + \frac dy \\=& (\frac, \frac) \cdot (dx, dy) \\=& dc = 0\end
\]這裡,兩邊同時全微分的幾何含義是,在當前等高線上挪動任意乙個極小單元,等號兩側的變化量相同。\(f(x, y)\)的變化量有兩個**,乙個由\(x\)的變化帶來,另乙個由\(y\)的變化帶來,在一階情況下,由\(x\)帶來的變化量為\(\frac dx\),由\(y\)帶來的變化量為\(\frac dy\),兩者疊加為\(z\)的總變化量,等號右側為常數,因為我們指定在當前等高線上挪動乙個極小單元,其變化量為0,左側等於右側。進一步拆分成向量內積形式,\((\frac, \frac)\)為梯度,\((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)\),其幾何意義為法向量垂直切平面上的任意向量。
至此,文章開篇幾個問題的答案就不難得出了,
以上。
全微分 偏導數 方向導數 梯度 全導數
就是對某一變數求導,把其他變數作為常數 可以認為偏導數是特殊的方向導數,是在自變數方向上的方向導數。任意方向導數為 方向導數是為了求函式值在某個點沿某個方向的變化率 梯度則是為了求函式值在某個點處變化率最大的方向,梯度由各個軸的偏導函式組成 全導數本質上就是一元函式的導數。他是針對復合函式而言的定義...
方向導數和梯度
之前用過幾次梯度下降演算法來求解一些優化問題,但對梯度的具體意義並不是很理解。前一段時間翻了一遍高教的 簡明微積分 對梯度概念總算有了些理解,在這記錄一下。推薦下 簡明微積分 這本書,我向來對帶有 簡明 二字的書抱有極大的好感。偶然的機會在豆瓣上看到有人推薦這本書,作者是龔公升先生。龔公升先生是中國...
方向導數和梯度
我覺得我有必要把工數再看一遍 都忘記了 在微積分課程中,我們知道函式在某一點的導數 微商 代表了函式在該點的變化率。微分和積分,它們的定義都是建立在極限的基礎上。對於單變數函式f x 它在x0處導數是 當x趨近於x0時,函式的改變量與自變數的改變量的比值的極限,即微商 導數 等於差商的極限 f x0...