深度學習的數學基礎—神經網絡的偏導數基礎

神經網絡的計算往往會涉及成千上萬個變量,這是因為構成神經網絡的神經單元的權重和偏置都被作為變量處理。下面我們就來考察一下神經網絡的計算中所需的多變量函數的導數。

註:本文所考察的函數是充分光滑的函數。

多變量函數

在函數y=f(x)中,x稱為自變量,y稱為因變量。之前我們講解求導方法時考慮了有一個自變量的函數的情形。現在我們來考察有兩個以上的自變量的函數。有兩個以上的自變量的函數稱為多變量函數

例1
z=x2+y2
多變量函數難以直觀化。例如,即使是像例1那樣簡單的函數,其圖像也是非常複雜的,如下圖所示。
image.png
z= x2+ y2的圖像。

描述神經網絡的函數的變量有成千上萬個,因此難以從直觀上理解這些函數。不過,只要理解了單變量的情況,我們就可以將多變量的情況作為其擴展來理解,這樣就不會那麼困難了。

單變量函數用f(x)表示,仿照單變量函數,多變量函數可以如下表示。

例2
f(x, y) :有兩個自變量x、y的函數。

例3
f(x1, x2, …, xn) :有n個自變量x1, x2, …, xn的函數。

偏導數

求導的方法也同樣適用於多變量函數的情況。但是,由於有多個變量,所以必須指明對哪一個變量進行求導。在這個意義上,關於某個特定變量的導數就稱為偏導數(partial derivative)。

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

image.png

關於y的偏導數也是同樣的。
image.png

下面,我們通過例4和問題1、問題2來看一下神經網絡中用到的偏導數的代表性例子。

例4
當z=wx+b時,∂z/∂x=w,∂z/∂w=x,∂z/∂b=1.

問題1
image.png時,求∂f(x,y)/∂x,∂f(x,y)/∂y.


image.png

問題2
當z=w1x1+w2x2+b1時,求關於x1、w2、b1的偏導數。

image.png

多變量函數的最小值條件

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

上述(1)很容易擴展到一般的具有n個變量的情形。

此外,從下圖可以清楚地看出上述(1)是成立的。因為從x方向以及y方向來看,函數z=f(x, y)取得最小值的點就像葡萄酒杯的底部。
image.png
上述(1) 的含義。

就像我們之前所確認的那樣,上述(1)所示的條件是必要條件。即使滿足上述(1),也不能保證函數f(x, y)在該點處取得最小值。

例5
求函數z=x2+y2取得最小值時x、y的值。

首先,我們來求關於x、y的偏導數。
image.png

根據上述(1),函數取得最小值的必要條件是x=0, y=0。此時函數值z為0。由於z=x2+y2≥0,所以我們知道這個函數值0就是最小值。通過前面的例1的函數圖像,我們也可以確認這個事實。
備註拉格朗日乘數法

在實際的最小值問題中,有時會對變量附加約束條件,例如下面這個與例5相似的問題。

例6
當x2+y2=1時,求x+y的最小值。
這種情況下我們使用拉格朗日乘數法。這個方法首先引入參數λ,創建下面的函數L。
L=f(x, y)-λg(x, y)=(x+y)-λ(x2+y2-1)
然後利用之前的(1)。
image.png

根據這些式子以及約束條件x2+y2=1,可得x=y=λ= ±1/ 2。

因而,當x=y=-1/√2時,x+y取得最小值-√2。

在用於求性能良好的神經網絡的正則化技術中,經常會使用該方法。