可視化技術讓你秒懂梯度、偏導數、法向量...

2021-02-08 計算機視覺life

點擊上方「計算機視覺life」,選擇「星標」

快速獲得最新乾貨

來源丨https://www.cnblogs.com/shine-lee/p/11715033.html


寫在前面

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

為什麼說梯度方向是上升最快的方向,負梯度方向為下降最快的方向?

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

偏導數

在博文《單變量微分、導數與鏈式法則》(https://www.cnblogs.com/shine-lee/p/10324601.html)中,我們回顧了常見初等函數的導數,概括地說,

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

如果是多元函數呢?則為偏導數

偏導數是多元函數「退化」成一元函數時的導數,這裡「退化」的意思是固定其他變量的值,只保留一個變量,依次保留每個變量,則  

以二元函數為例,令

在分別固定 偏導數 曲線的導數(切線斜率)



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


方向導數

如果是方向不是沿著坐標軸方向,而是任意方向呢?則為方向導數。如下圖所示,點 

Directional Derivative

https://www.geogebra.org/m/Bx8nFMNc


方向導數為函數在某一個方向上的導數,具體地,定義

上面推導中使用了鏈式法則。其中, 

該位置處,任意方向的方向導數為偏導數的線性組合,係數為該方向的單位向量。當該方向與坐標軸正方向一致時,方向導數即偏導數,換句話說,偏導數為坐標軸方向上的方向導數,其他方向的方向導數為偏導數的合成

寫成向量形式,偏導數構成的向量為 

梯度

梯度,寫作 

我們繼續上面方向導數的推導,

其中, 同向時,方向導數取得最大值,最大值為梯度的模 反向時,方向導數取得最小值,最小值為梯度模的相反數。此外 根據上面方向導數的公式可知,在夾角 

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

當前位置的梯度方向,為函數在該位置處方向導數最大的方向,也是函數值上升最快的方向,反方向為下降最快的方向;等高線圖中的梯度

在講解各種優化算法時,我們經常看到目標函數的等高線圖示意圖,如下圖所示,來自連結

Applet: Gradient and directional derivative on a mountain

https://mathinsight.org/applet/gradient_directional_derivative_mountain


圖中,紅點為當前位置,紅色箭頭為梯度,綠色箭頭為其他方向,其與梯度的夾角為 

將左圖中 

梯度與等高線垂直。為什麼呢?

等高線,顧名思義,即這條線上的點高度(函數值)相同,令某一條等高線為 

這裡,兩邊同時全微分的幾何含義是,在當前等高線上挪動任意一個極小單元,等號兩側的變化量相同。 梯度與等高線垂直的結論。

更進一步地,梯度方向指向函數上升最快的方向,在等高線圖中,梯度指向高度更高的等高線

隱函數的梯度

同理,對於隱函數 

即,隱函數的梯度為其高維曲面的法向量

有了法向量,切線或切平面也就不難計算得到了。令曲線 

小結

至此,文章開篇幾個問題的答案就不難得出了,

方向導數為梯度在該方向上的合成,係數為該方向的單位向量;梯度方向為方向導數最大的方向,梯度的模為最大的方向導數;等高線全微分的結果為0,所以其梯度垂直於等高線,同時指向高度更高的等高線隱函數可以看成是一種等高線,其梯度為高維曲面(曲線)的法向量

以上。

參考

Gradients and Partial DerivativesApplet: Gradient and directional derivative on a mountain



專輯:計算機視覺方向簡介

專輯:視覺SLAM入門

專輯:最新SLAM/三維視覺論文/開源

專輯:三維視覺/SLAM公開課

專輯:深度相機原理及應用

專輯:手機雙攝頭技術解析與應用

專輯:相機標定

專輯:全景相機


從0到1學習SLAM,戳↓

視覺SLAM圖文+視頻+答疑+學習路線全規劃!

交流群

歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器自動駕駛、計算攝影、檢測、分割、識別、醫學影像、GAN算法競賽等微信群(以後會逐漸細分),請掃描下面微信號加群,備註:」暱稱+學校/公司+研究方向「,例如:」張三 + 上海交大 + 視覺SLAM「。請按照格式備註,否則不予通過。添加成功後會根據研究方向邀請進入相關微信群。請勿在群內發送廣告,否則會請出群,謝謝理解~

投稿、合作也歡迎聯繫:simiter@126.com

掃描關注視頻號,看最新技術落地及開源方案視頻秀 ↓

相關焦點

  • 偏導數和函數的梯度
    我們在一元微積分中對如下的微分算子都很熟悉:和,差,積,商的微分公式我們現在重新引入此符號的原因是我們不僅要接受與變量X有關的導數,還需要其它更多變量的導數,所以需要一些明確的符號來區分哪個變量現在假設我們有一個同時依賴於X和Y的函數,我們將其稱為f(x,y),這最終將稱為曲面而不是曲線
  • 形象直觀的「偏導數」和「梯度」原理
    偏導數和梯度是數學中的重要概念,貫穿於許多自然學科,本篇就用形象的圖形來解釋它們的原理圖中是有X Y 變量 和有X Y變量組成的函數Z=f(X,Y)圖形>我們保持X值不變,僅改變Y值得情況下如圖Z值僅隨Y值在變化,所以Z的變化量除以Y的變換量就是該線的斜率將X換個固定值,同樣Z的變化量除以Y的變換量就是該線的斜率,只是斜率的大小不一樣Z的增量除以Y的增量,我們稱之為Z對Y的偏導數同理,我們保持
  • 從中學數學到AI算法01:切線、導數、偏導數、梯度、梯度下降算法
    內容導讀:切線、導數、偏導數、梯度、梯度下降算法,從中學、大學數學到人工智慧,這些概念是一脈相承的。本文將這些知識進行大串聯。如果你是個中學生,讀完本篇文章,你將會了解到,中學裡學習的數學將來會在人工智慧的哪些方面應用。
  • 方向導數和梯度是什麼?
    1.梯度首先看看二元函數梯度的定義:如果函數f(x,y)在定義域D內具有一階連續偏導數,則對於定義域內D每一點P(x0, y0),都存在如下向量:則稱上述向量為函數f(x,y)在點P的梯度,記作:而下面的算子稱為向量微分算子或哈密頓算子(nabla算子):至於為什麼在梯度定義中,要附加強要求,即函數f(x, y)在定義域內具有一階連續偏導數
  • 梯度向量的意義與運用
    梯度向量是數學或自然科學中常用的一個數學工具,它的推導和講解前面的文章已經提到過很多次了,本篇主要介紹下梯度向量的運用和主要意義向量微積分在向量演算中,一個主要的課題是引入向量和三維空間梯度向量無論維數如何,梯度向量是一個包含了函數的所有一階偏導數的向量。
  • 多元函數的偏導數、方向導數、梯度以及微分之間的關係思考
    多元函數的偏導數、方向導數、梯度以及微分之間的關係思考本篇文章,探討下多元函數微分學下的一些知識點之間的關係。
  • 梯度與梯度下降法
    derivative),然後我們看看梯度下降法(Gradient Descent),了解為什麼在優化問題中使用梯度下降法來優化目標函數。可以看到,導數與偏導數本質是一致的,都是當自變量的變化量趨於0時,函數值的變化量與自變量變化量比值的極限。直觀地說,偏導數也就是函數在某一點上沿坐標軸正方向的的變化率。
  • 從 0 開始機器學習 - 一文入門多維特徵梯度下降法!
    因為在有了多維特徵向量和多變量梯度下降法後,為了幫助算法更快地收斂,還需要對選用的特徵進行尺度縮放,其實就是縮小特徵值,將多個特徵的值都縮小到同樣大小的區間,通常是縮小到 [-1, 1] 周圍。:你可能要問了為何要寫成向量的形式?
  • 《方向導數與梯度》內容小結、題型與典型題
    1.方向導數的定義設二元函數z=f(x,y)在點(x0,y0)的某鄰域內有定義,其中向量u對應的單位向量為uo=(cosα,cosβ),其中α,β為向量u的方向角,則當極限【注】從實際應用與通用性角度,我們定義方向導數ρ→0+。有些教材對方向導數的定義ρ的取值可正可負,雖然可以視偏導數為其特殊情況,但是其條件對於實際應用來說太強!
  • 手動實現梯度下降(可視化)
    0x00 前言 在讀完《還不了解梯度下降法?看完這篇就懂了!》這篇文章後,相信大家已經對梯度下降這一「全網爆紅」的解決最優化問題的方法有了一定的了解。那麼這篇文章則手動實現梯度下降。從python求導開始,一步一步封裝好梯度下降函數,並且進行調參,觀察學習率對結果的影響,最後可視化的展現出來。
  • 梯度下降法
    本文需要用到的基礎知識點見傳送門無窮小、梯度向量和泰勒展開梯度下降法是根據泰勒展開作為推導起點的,我們直接從多元函數開始,多元函數f(x)在x點處的泰勒展開有:局部極值點和鞍點都是導數為0的點,但導數為0是取得極值點的必要條件而不是充分條件。對於該問題,我們待會就在下一節中看到一些改進的策略,還有另外一種問題無需擔心極值點是鞍點或者局部極值點,這個就是凸優化問題,對於凸優化,小編會在接下來新出文章講解,這裡只需要知道結論:凸優化問題利用梯度下降求解的都是全局極值點,不會是鞍點或者局部極值點。
  • 最優化問題 | 梯度下降法與MATLAB程序實現
    梯度下降法又稱為最速下降法,是求解無約束優化問題最簡單和最古老的方法之一。大概意思就是:在腦海中想像一下,你站在一座山上,怎麼找到最快下山的方法,這時你當然會朝著最陡峭的方向前進,到達一個點後,再次朝著陡峭的方向下山,從而循環這些步驟,到達山腳。
  • 帶你一起秒懂深度學習 之 矩陣微積分 1
    導讀: 有沒有辦法讓你真正秒懂深度學習呢?答案是有的,但是在做到這一點之前,你需要省出一部分玩遊戲、看電影或者看其他公眾號的時間,來這裡學習一下由 fast.ai 創始人寫的矩陣微積分。對於深度學習,如果只是想應用一下,實際上並不難,哪怕對原理一知半解也可以做得很好。但是如果你想理解得深入一些,那還是需要鞏固一下本文即將介紹的相關數學知識。
  • 線性回歸與梯度下降
    關於 梯度 和 偏導數 的關係在上面梯度下降算法中,我們一直用的是偏導數進行討論的,可能會有人有疑問,偏導數和梯度有啥關係?1.導數如果是一元的,那麼偏導數就降級成了求導數導數的幾何意義是切線在該點的斜率,物理意義是函數在這一點的 (瞬時) 變化率。2. 偏導數在來看看偏導數的定義:
  • 機器學習 101:一文帶你讀懂梯度下降
    你怎樣才能只邁出一步,而能夠離山頂最近? 到目前為止,我們還不清楚如何邁出這一步!而這就是梯度的用武之地。 正如可汗學院的這段視頻所述,梯度獲取了一個多變量函數的所有偏導數。讓我們一步步來看看它是如何工作的。
  • CFD理論掃盲|向量與向量運算
    6 標量的梯度與方向導數流體力學中經常出現的一個重要的向量運算符為▽,也稱之為del或nabla算子,其定義為:因此,標量場的梯度是一個向量場,表明標量s的值在大小和方向上隨位置的變化而變化。▽s在單位向量ei上的投影可由下式獲取:
  • 機器學習中的梯度下降法
    線性回歸模型和邏輯斯蒂回歸模型是利用梯度下降法來尋找最佳參數值的經典案例。我們可以利用多種衡量方法來評估機器學習模型對目標函數的擬合情況。成本函數法是通過計算每個訓練集的預測值和真實值之間的差異程度(比如殘差平方和)來度量模型的擬合情況。我們可以計算成本函數中每個參數所對應的導數值,然後通過上述的更新方程進行迭代計算。在梯度下降法的每一步迭代計算後,我們都需要計算成本函數及其導數的情況。
  • 梯度下降背後的數學原理幾何?
    二、涉及到的一些數學概念1、偏導數我們知道一個多變量函數的偏導數,就是它關於其中一個變量的導數而保持其他變量恆定。但是該函數的整個求導過程是怎樣的呢?首先,讓我們了解偏導數背後的數學原理。計算像 f(x,y)=x* y 這樣的多變量函數的過程可以分解如下:好吧,我知道你此時在想什麼——導數本身已經很複雜很枯燥,為什麼還使用偏導數而不完全使用導數!函數輸入由多個變量組成,因此,其中涉及的概念就是多變量演算。偏導數用於評估每個變量相對於其他變量作為常量時的變化情況。
  • 梯度下降—Python實現
    現在,節目真正開始了:梯度下降!梯度下降具體地說,梯度下降是一種優化算法,它通過迭代遍歷數據並獲得偏導數來尋求函數的最小值(在我們的例子中是MSE)。如果這有點複雜,試著把梯度下降想像成是一個人站在山頂上,他試著以最快的速度從山上爬下來,沿著山的負方向不斷地「走」,直到到達底部。
  • 從梯度下降到擬牛頓法:詳解訓練神經網絡的五大學習算法
    我們很容易地將神經網絡的權重組合成一個 n 維權重向量 w,而訓練損失就是以這些權重為變量的函數。下圖描述了損失函數 f(w)。如上圖所示,點 w* 是訓練損失函數的極小值點。在任意點 A,損失函數能分別對權重求一階偏導數和二階偏導數。