終於理解了方向導數與梯度


本文作者Key,博客園主頁:https://home.cnblogs.com/u/key1994/

本內容為個人原創作品,轉載請注明出處或聯系:zhengzha16@163.com

0.淵源

第一次接觸方向導數與梯度的概念,是在大學的高等數學課堂上,當時對於這部分內容是似懂非懂的。

巧合的是,后來在參加碩士復試的時候,有位老師提問我對方向導數與梯度的理解,當時我只記得一句話:梯度是方向導數變化最大的方向。雖然后來這位老師成了我的導師,但是現在想來依然覺得慚愧,因為我對這兩個名詞完全沒有理解。

后來學習到BP神經網絡,也手動推導過根據梯度下降法得到的權值更新公式,但方向導數的定義一直是我的心結。今天終於花了時間將這個簡單的問題弄明白,特地記錄下來,以警示自己在將來的科研道路上要腳踏實地,不可浮於表面!

1.方向導數

  • 方向導數的本質是一個數值,簡單來說其定義為:

一個函數沿指定方向的變化率。

因此,構建方向導數需要有兩個元素:

1)      函數

2)      指定方向

當然,與普通函數的導數類似,方向導數也不是百分之百存在的,需要函數滿足在某點處可微,才能計算出該函數在該點的方向導數。

至於其物理含義,這里采用最常用的下山圖來表示。

 

 簡單將上圖看作是一座山的模型,我們處在山上的某一點處,需要走到山下。理論上來說,這座山的表面是可以通過一個函數的描述的(雖然想要找到這個函數可能很難),而這個函數可以在不同的方向上都確定出一個方向導數,這就好比於如果我們想下山,道路並不是唯一的,而是可以沿任何方向移動。區別在於有些方向可以讓我們下山速度更快,有些方向讓我們下山速度更慢,有些方向甚至引導我們往山頂走(也可以理解為下山速度時負的)。在這里,速度的值就是方向導數的直觀理解。

2.梯度

  • 梯度與方向導數是有本質區別的,梯度其實是一個向量,其定義為:

一個函數對於其自變量分別求偏導數,這些偏導數所組成的向量就是函數的梯度。

在很多資料中可以看到如下的梯度定義方法:

 

 

 

誠然,這種定義方法更加權威,但是卻不夠直觀,這也是為什么我在高等數學課堂上學習梯度概念時感覺雲里霧里。這種定義方法只針對二元函數,所以公式中的i,j可分別表示為函數在x和y方向上的單位向量,這樣的描述可以讓我們更好理解(因為人類大腦可以比較輕松的理解三維世界的模型圖),但是一旦到了更高維度的世界,單純靠這個公式就不容易理解了。

3.梯度與方向導數的關系

  • 梯度與方向導數的關系應該如何描述呢?

函數在某點的梯度是這樣一個向量,它的方向與取得最大方向導數的方向一致,而它的模為方向導數的最大值。

以上描述非常好理解,那如何證明呢?

 

 

說實話,我覺得以上證明過程很抽象,但這就是數學,而我們要做的就是從這些抽象中來理解問題的實質。

依然采用下山的例子來解釋。我們想要走到山下,道路有千萬條,但總有一條可以讓我們以最快的速度下山。當然,這里的最快速度僅僅作用在當前的位置點上,也就是說在當前位置A我們選擇一個方向往山下走,走了一步之后到達了另外一個位置B,然后我們在B位置計算梯度方向,並沿該方向到達位置處c,重復這個過程一直到終點。但是,如果我們把走的每一步連接起來構成下山的完整路線,這條路線可能並不是下山的最快最優路線。

原因是什么?可以用一句古詩來解釋:“不識廬山真面目,只緣身在此山中。”因為我們在山上的時候是不知道山的具體形狀的,因此無法找到一條全局最優路線。那我們只能關注腳下的路,將每一步走好,這就是梯度下降法的原理。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM