什么是梯度



返回 我的研究方向(Research Interests)



向量的內積

a、 b 的內積 a · b 的定義如下所示:
image

注:當 a、 b 有一個為 0 或兩者都為 0 時,內積定義為 0。

柯西 - 施瓦茨不等式

根據內積的定義式,我們可以推導出下式:
image

證明:
根據余弦函數的性質,對任意的 θ,有 - 1 ≤ cosθ ≤ 1,兩邊同時乘以 | a || b |,有:

\[- | a || b | ≤ | a || b |cosθ ≤ | a || b | \]

利用定義式 (2),我們可以得到式 (3),證畢。

當兩個向量a、b大小固定時,有下面三種情況:
image

根據柯西 - 施瓦茨不等式 (3),可以得出以下事實:
①當兩個向量方向相反時,內積取得最小值。【梯度下降法的基本原理】
②當兩個向量不平行時,內積取平行時的中間值。
③當兩個向量方向相同時,內積取得最大值。


向量的一般化

向量的方便之處在於,二維以及三維空間中的性質可以照搬到任意維空間中。神經網絡雖然要處理數萬維的空間,但是二維以及三維空間的向量性質可以直接利用。出於該原因,向量被充分應用在后述的梯度下降法中。

將二維以及三維空間中的向量公式推廣到任意的 n 維空間:
image


張量

image


導數的定義

函數 y =f (x) 的導函數 f '(x) 的定義如下所示:
image

注:希臘字母 ∆ 讀作 delta,對應拉丁字母 D。此外,帶有 '(prime)符號的函數或變量表示導函數。

已知函數 f (x),求導函數 f '(x),稱為對函數 f (x) 求導。當式 (1) 的值存在時,稱函數可導

導函數的含義如下圖所示。作出函數 f (x) 的圖像, f '(x) 表示圖像切線的斜率。因此,具有光滑圖像的函數是可導的。
image

導數符號

函數 y = f (x) 的導函數用 f '(x) 表示,但也存在不同的表示方法,例如可以用如下的分數形式來表示:

\[f(x)^{'} = \frac{dy}{dx} \]

導數的性質

image

式 (3) 稱為導數的線性性

分數函數的導數和 Sigmoid 函數的導數

當函數是分數形式時,求導時可以使用下面的分數函數的求導公式:
image

Sigmoid 函數 σ(x) 是神經網絡中最有名的激活函數之一,其定義如下所示:

\[\sigma (z) = \frac{1}{1+e^{-z}} (e=2.718281...) \]

在后述的梯度下降法中,需要對這個函數求導。求導時使用下式會十分方便。
image

證明:
\(1+e^{-x }\)帶入式(4)的 f(x),在利用導數公式:\((e^{-x })^{'} = -e^{-x}\),可得

\[\sigma ^{'}(x) = -\frac{(1+e^{-x})^{'}}{(1+e^{-x})^{2}} = \frac{e^{-x}}{(1+e^{-x})^{2}} \]

\[\sigma ^{'}(x) = \frac{1+e^{-x}-1}{(1+e^{-x})^{2}} = \frac{1}{1+e^{-x}}-\frac{1}{(1+e^{-x})^{2}}=\sigma (x)-\sigma ^{2}(x) \]

證畢!

最小值的條件

image
因為存在下面的函數:
image

偏導數

關於某個特定變量的導數就稱為偏導數( partial derivative)

例如,讓我們來考慮有兩個變量 x、 y 的函數 z = f (x, y)。只看變量 x,將 y 看作常數來求導,以此求得的導數稱為“關於 x 的偏導數”,用下面的符號來表示:

\[\frac{\partial z }{\partial x} = \frac{\partial f(x,y) }{\partial x} =\lim_{\bigtriangleup x \to 0}\frac{f(x+\bigtriangleup x,y)-f(x,y)}{\bigtriangleup x} \]

關於 y 的偏導數也是同樣的:

\[\frac{\partial z }{\partial y} = \frac{\partial f(x,y) }{\partial y} =\lim_{\bigtriangleup y \to 0}\frac{f(x,y+\bigtriangleup y)-f(x,y)}{\bigtriangleup y} \]

舉例:
image

多變量函數的最小值條件

光滑的單變量函數 y = f (x) 在點 x 處取得最小值的必要條件是導函數在該點取值 0 ,這個事實對於多變量函數同樣適用。例如對於有兩個變量的函數,可以如下表示:
image
image


鏈式法則

單變量函數的鏈式法則

已知單變量函數 y = f (u),當 u 表示為單變量函數 u = g(x) 時,復合函數 f (g(x)) 的導函數可以如下簡單地求出來:
image
這個公式稱為單變量函數的復合函數求導公式,也稱為鏈式法則
image

多變量函數的鏈式法則

變量 z 為 u、 v 的函數,如果 u、 v 分別為 x、 y 的函數,則 z 為 x、 y的函數,此時下式( 多變量函數的鏈式法則)成立:
image


梯度下降法的基礎

單變量函數的近似公式

首先我們來考察單變量函數 y = f(x)。如果 x 作微小的變化,那么函數值 y 將會怎樣變化呢?答案就在導函數的定義式中:

\[f^{'}(x) = \lim_{\bigtriangleup x \to 0}\frac{f(x+\bigtriangleup x,y)-f(x,y)}{\bigtriangleup x} \]

在這個定義式中, ∆x 為“無限小的值”,不過若將它替換為“微小的值”,也不會造成很大的誤差。因而,下式近似成立:

\[f^{'}(x)≒\frac{f(x+\bigtriangleup x,y)-f(x,y)}{\bigtriangleup x} \]

注意:\(≒\) 表示近似於

將上式變形,可以得到以下單變量函數的近似公式:
image

舉例:
\(f(x) = e^x\) 時, x = 0 附近的近似公式為:

\[e^{x+\bigtriangleup x}≒e^x+e^x\bigtriangleup x(\bigtriangleup x為微小的值) \]

取x=0,重新\(\bigtriangleup x\)將替換為x,可得:

\[e^{x}≒1+x(x為微小的值) \]

其幾何意義如下:
image

多變量函數的近似公式

image

image
image

近似公式的向量表示

三個變量的函數的近似公式 (4) 可以表示為如下兩個向量的內積∇z ⋅∆ x 的形式:
image


梯度下降法的含義與公式

梯度下降法的思路

已知函數 z = f(x, y),怎樣求使函數取得最小值的 x、 y 呢?最有名的方法就是利用“使函數 z = f (x, y) 取得最小值的 x、 y 滿足以下關系”這個事實:
image

這是因為,在函數取最小值的點處,就像葡萄酒杯的底部那樣,與函數相切的平面變得水平。

image

近似公式和內積的關系

函數 z = f(x, y) 中,當 x 改變 ∆x, y 改變 ∆y 時,我們來考察函數 f(x, y) 的值的變化 ∆z。

\[\bigtriangleup z=f(x+\bigtriangleup x,y+\bigtriangleup y)-f(x,y) \]

根據近似公式,以下關系式成立:

\[\bigtriangleup z=\frac{\partial f(x,y) }{\partial x} \bigtriangleup x+\frac{\partial f(x,y) }{\partial y} \bigtriangleup y \]

image

\(\bigtriangleup z=\frac{\partial f(x,y) }{\partial x} \bigtriangleup x+\frac{\partial f(x,y) }{\partial y} \bigtriangleup y\) 的右邊可以表示為如下兩個向量的內積形式:

\[(\frac{\partial f(x,y) }{\partial x},\frac{\partial f(x,y) }{\partial y} )\bullet (\bigtriangleup x,\bigtriangleup y) \]

請大家注意這個內積的關系,這就是梯度下降法的出發點。
image
我們來考察兩個固定大小的非零向量 a、 b。當 b 的方向與 a 相反時,內積 a · b 取最小值:
image

換句話說,當向量 b 滿足以下條件式時,可以使得內積 a · b 取最小值:

\[b=-ka(k為正的常數) \]

內積的這個性質就是梯度下降法的數學基礎。
根據上面我們可以知道,從點 (x, y) 向點 (x + ∆x, y + ∆y) 移動時,當滿足以下關系式時,函數 z = f (x, y) 減小得最快。這個關系式就是二變量函數的梯度下降法的基本式:
image

如果從點 (x, y)向點(x + ∆x, y + ∆y)移動就可以從圖像上點 (x, y) 的位置最快速地下坡。
image

右邊的向量 \((\frac{\partial f(x,y) }{\partial x},\frac{\partial f(x,y) }{\partial y} )\) 稱為函數 f (x, y) 在點 (x, y) 處的梯度( gradient)。這個名稱來自於它給出了最陡的坡度方向。

將梯度下降法推廣到三個變量以上的情況

當函數 f 由 n 個自變量 x1, x2, …, xn 構成時,梯度下降法的基本式可以像下面這樣進行推廣:
image

哈密頓算子\(\bigtriangledown\)

在實際的神經網絡中,主要處理由成千上萬個變量構成的函數的最小值。在這種情況下,像式上面 (7) 那樣的表示往往就顯得十分冗長。因此我們來考慮更簡潔的表示方法。
在數學的世界中,有一個被稱為向量分析的領域,其中有一個經常用到的符號 ∇ 。 ∇ 稱為哈密頓算子,其定義如下所示:

\[\bigtriangledown f=(\frac{\partial f}{\partial x_1},\frac{\partial f}{\partial x_2},...,\frac{\partial f}{\partial x_n} ) \]

利用這個符號,式 (7) 可以如下表示:
image
其中,左邊的向量 (∆x1, ∆x2, …, ∆xn) 稱為位移向量,記為 ∆x。

\[\Delta x=(\Delta x_1,\Delta x_2,...,\Delta x_n ) \]

利用這個位移向量,梯度下降法的基本式 (7) 可以更簡潔地表示:
image
η 可以看作人移動時的“步長”,根據 η 的值,可以確定下一步移動到哪個點。
如果步長較大,那么可能會到達最小值點,也可能會直接跨過了最小值點(左圖)。
而如果步長較小,則可能會滯留在極小值點(右圖)。
image

在神經網絡的世界中, η 稱為學習率。遺憾的是,它的確定方法沒有明確的標准,只能通過反復試驗來尋找恰當的值。

\(f(x_0+x_1)= x_0^{2}+x_1^{2}\)的梯度呈現為有向向量(箭頭)。觀察下圖,
image
我們發現梯度指向函數\(f(x_0+x_1)\)的“最低處”(最小值),就像指南針一樣,所有的箭頭都指向同一點。其次,我們發現離“最低處”越遠,箭頭越大。

實際上,梯度會指向各點處的函數值降低的方向。更嚴格地講,梯度指示的方向是各點處的函數值減小最多的方向

在復雜的函數中,梯度指示的方向基本上都不是函數值最小處。
函數的極小值、最小值以及被稱為鞍點(saddle point) 的地方,梯度為0。
極小值是局部最小值,也就是限定在某個范圍內的最小值。
鞍點是從某個方向上看是極大值,從另一個方向上看則是極小值的點。
雖然梯度法是要尋找梯度為0的地方,但是那個地方不一定就是最小值(也有可能是極小值或者鞍點)。
此外,當函數很復雜且呈扁平狀時,學習可能會進入一個(幾乎)平坦的地區,陷入被稱為“學習高原”的無法前進的停滯期。



參考:
[1]深度學習的數學/(日)涌井良幸,(日)涌井貞美著;楊瑞龍譯.--北京:人民郵電出版社,2019.5
[2]深度學習入門:基於Python的理論與實現/(日)齋藤康毅著;陸宇傑譯.--北京:人民郵電出版社,2018.7



免責聲明!

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



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