如何理解雅克比矩陣在深度學習中的應用?

dayceng發表於2021-10-23

標題取得有點寬泛,本次主要探討:在梯度下降中雅可比矩陣是用來幹嘛的以及我們為什麼要在反向傳播裡使用雅可比矩陣

雅可比矩陣與線性近似

一元函式的線性近似

現在有一個共識:函式在某一點處的導數是它在這一點處的切線的斜率

image-20211023084424764

設有一點x*,在x *附近建構函式f(x)的一個近似:
image-20211023084738575

其中,f'(x*)是函式在x * 處的導數。

該近似函式其實是以f'(x*)為斜率的直線,直線在x *處於原函式重合,具有相同的斜率,故稱其是原函式在x *處的線性近似

當離開x *這點時,線性近似就與原函式不完全吻合了。那麼離開之後的變化形式是什麼樣的呢?

這裡直接說結果(跳過格式整理和推導):

*線性近似的誤差與自變數只差的比值隨著x趨近於x 而趨近於0。

即:隨著自變數向x *靠近,線性近似與原函式的誤差趨近於0。你可能已經看出來了,線性近似的誤差就是自變數之差在x趨近於x *時的高階無窮小

那麼我們現在可以知道,一元函式在某位置可導的定義:該一元函式在某位置可被直線‘很好的’近似

多元函式的線性近似

對應到多元函式,我們有以下式子:

image-20211023100135749

多元函式在w *處的梯度▽f(w *)的對應概念是一元函式f(x)在x *處的導數 f'(x *),同樣表示對於原函式的線性近似。

對多元函式來說,

若自變數是二維向量,那麼近似函式的影像就是三維空間(以函式值作為第三維)中的平面;

若自變數是n維向量,則近似函式就是n+1維空間中的超平面;

我們可以做如下的想象:

在一個類似於山谷的圖形上,有一個點w *,由二維向量表示,在這個位置時,“山谷”函式可以被平面很好的擬合,這個平面就是原函式的線性近似。

當我們遠離w *時,線性近似與原函式的誤差就開始變大。換句話說,離w *越近線性近似誤差越小,平面越能擬合原函式。

假設我們現在在w1處,此時該處的線性近似肯定沒有w *處的線性近似誤差小,因此我們要向w * 靠近

怎麼靠近?在w1處求原函式的方向導數,此時因為原函式是三維的,那麼方向導數的結果會指向三個方向,我們知道在方向導數最大的方向上函式變化最快。此時變化最快的方向一定是指向w * 方向的。

其餘方向的梯度可以類比理解為泰勒展開中的次要項,它們雖然有值但很小,不能決定總體的變化(因此一般會捨去),因此線性近似只能是近似而不能是擬合,它有一個學名:仿射變換

再進一步,如果此時因變數也變成多個值(即向量),我們仍可以在w * 附近構建原函式的近似

image-20211023105141663

此時我們對每個因變數在w * 處都求一個方向導數,這些方向導數會構成一個矩陣,這個矩陣就是雅可比矩陣

雅可比矩陣的每一行是原函式的分量的梯度,即

image-20211023110730873

因此之前構建的對映是一個多對多的線性對映,其與原函式的誤差是一個向量,這個誤差向量的每個分量都是自變數之差的高階無窮小。

總之,我們有了一個可以近似擬合多元函式的方法,而這個方法的實現依賴於雅克比矩陣的應用,因此我們可以說:雅可比矩陣蘊含著對映的區域性線性近似特徵(資訊)。

雅可比矩陣與反向傳播

有了之前的基礎,我們似乎可以討論為什麼要在梯度下降的過程中使用雅可比矩陣了

簡述一下損失函式的優化過程:

首先,梯度下降的過程是在尋找一個最優點,也就是“山谷函式的最低點”,這要使用梯度實現,而在尋找的過程中,更新更靠近最優點的位置點這件事是由反向傳播實現的。

下面以計算圖的反向傳播過程作為舉例進行說明

從計算圖中作為結果節點的節點開始,該節點是由正向傳播計算得到的,我們計算該節點對於自己的雅克比矩陣,(結果是一個單位矩陣)

然後再計算出結果節點對它的父節點(也就是上一個或者多個節點)的雅可比矩陣。

將這兩個矩陣傳給父節點,父節點用這兩個矩陣相乘得到自己對於結果節點的雅可比矩陣,

我們把父節點的上一個節點稱為祖父節點,

然後父節點在計算自己與祖父節點的雅可比矩陣,

將這兩個矩陣傳給祖父節點,重複上述過程。這就是計算圖中反向傳播的過程。

由之前關於雅可比矩陣與線性近似的討論我們可以進一步理解計算圖中反向傳播的過程:

因為攜帶了對多元函式(也就是損失函式)做線性近似的區域性特徵,因此可以由雅克比矩陣作為依據來更新參與訓練的引數節點的值以達到讓其更加擬合原函式的目的(這個原函式就是損失函式)

說白了,雅克比矩陣就是告訴模型要如何更新並且更新多少引數值的一個工具

相關文章