關於神經網路的討論

鄭瀚Andrew.Hann發表於2020-07-31

1. 引言,從維數災難問題說起

我們在之前的文章討論了由固定基函式的線性組合構成的迴歸模型分類模型。我們看到,這些模型具有一些有用的分析性質和計算性質,但是它們的實際應用被維數災難問題(curse of dimensionality)限制了。

為了將這些模型應用於大規模的問題,有必要根據資料調節基函式。

接下來思考問題的點在於,基於什麼樣的方式和策略來調節基函式呢?

支援向量機是這樣解決這個問題的:

選擇固定基函式集合的一個子集,它首先定義以訓練資料點為中心的基函式,然後在訓練過程中選擇一個子集

支援向量機的一個優點是,雖然訓練階段涉及到非線性優化,但是目標函式是凸函式,因此最優問題的解相對很直接。最終模型中基函式的數量通常遠小於訓練資料點的數量,雖然通常相對來說仍然很大,並且通常隨著資料規模的增加而增多。

神經網路的策略是另一種思路:

事先固定基函式的數量,但是允許基函式可調節。換句話說,就是使用引數形式的基函式,這些引數可以在訓練階段調節

在模式識別中,這種型別的最成功的模型是前饋神經網路,也被稱為多層感知器(multilayer perceptron),我們將在本文重點討論。

實際上,“多層感知器”是一個相當不精確的命名,因為模型是由多層logistic迴歸模型(帶有連續的非線性性質)組成,而不是由多層感知器(帶有非連續的非線性性質)組成。這裡為了保持學術稱呼的一致性,我們繼續沿用”多層感知機“這個名字。

對於許多應用來說,與具有同樣泛化能力的支援向量機相比,多層感知機最終的模型會相當簡潔,因此計算的速度更快。這種簡潔性帶來的代價就是,與相關向量機一樣,構成了網路訓練根基的似然函式不再是模型引數的凸函式。 然而,在實際應用中,考察模型在訓練階段消耗的計算資源是很有價值的,這樣做會得到一個簡潔的模型,它可以快速地處理新資料。

Relevant Link:

https://www.cnblogs.com/LittleHann/p/6629069.html

 

2. 前饋神經網路

0x1:前饋神經網路理論前身 -- 基函式線性組合

迴歸的線性模型和分類的線性模型在之前的部落格中已經討論過了。它們基於固定非線性基函式φj(x)的線性組合,形式為:

其中f(·)在分類問題中是一個非線性啟用函式,在迴歸問題中為恆等函式。

我們的目標是推廣這個模型,使得基函式φj(x)依賴於引數,從而能夠讓這些引數以及係數{wj}能夠在訓練階段調節。

神經網路使用與上式形式相同的基函式,即每個基函式本身是輸入的線性組合的非線性函式,其中線性組合的係數是可調節引數。神經網路並不是憑空出現的一個理論,而是在此前基函式線性組合理論的基礎上發展而來的新理論。

0x2:神經網路的基本結構 -- 多層結構

上一小節的討論,引出了基本的神經網路,它可以被描述為一系列的函式變換。

首先,我們構造輸入變數x1, . . . , xD的M個線性組合,形式為:

其中j = 1, . . . , M,且上標(1)表示對應的引數是神經網路的第一“層”。

我們把引數wji(1)稱為權(weight),把引數wj0(1)稱為偏置(bias),aj被稱為啟用(activation)

每個啟用都使用一個可微的非線性啟用函式(activation function)h(·)進行變換,可得:

這些量對應於基函式的輸出,這些基函式在神經網路中被稱為隱含單元(hidden unit)

非線性函式h(·)通常被選為S形的函式(例如logistic sigmoid函式、或者雙曲正切函式),這些值再次線性組合,得到本層輸出單元啟用(output unit activation)

其中k=1,...,K,且K是輸出的總數量,這個變換對應於神經網路的第二層,並且與之前一樣wk0(2)是偏置引數。

最後,使用一個恰當的啟用函式對輸出單元啟用進行變換,得到神經網路的一組輸出yk

啟用函式的選擇由資料本身以及目標變數的假定的分佈確定,因此對於標準的迴歸問題,啟用函式是恆等函式,從而yk = ak。類似地,對於多個二元分類問題,每個輸出單元啟用使用logistic sigmoid函式進行變換,即:

我們可以將各個階段結合,得到整體的網路函式。對於sigmoid輸出單元啟用函式,整體的網路函式為:

其中所有權引數和偏置引數被聚集到一起,記作向量w。因此神經網路模型可以簡單地看成一個從輸入變數{xi}到輸出變數{yk}的非線性函式,並且由可調節引數向量w控制。 

這個函式可以被表示成下圖所示的網路圖的形式。

兩層神經網路的網路圖。輸入變數、隱含變數、輸出變數都表示為結點,權引數被表示為結點之間的連結,其中偏置引數被表示為來自額外的輸入變數x0和隱含變數z0的連結。箭頭表示資訊流在網路中進行前向傳播的方向 

這樣,計算上面神經網路整體公式的過程可以看做資訊通過網路的前向傳播(forward propagation)

我們可以類似地把第二層的偏置整合到第二層的權引數中,從而整體的網路函式為:

正如上圖所示的2層神經網路模型,它由兩個處理階段組成,每個階段都類似於感知器模型,因此神經網路也被稱為多層感知器(multilayer perceptron),或者MLP

然而,與感知器模型相比,一個重要的區別是神經網路在隱含單元中使用連續的sigmoid非線性函式,而感知器使用階梯函式這一非線性函式。這意味著神經網路函式關於神經網路引數是可微的,這個性質在神經網路的訓練過程中起著重要的作用。 

需要注意的是,如果網路中的所有隱含單元的啟用函式都取線性函式,那麼對於任何這種網路,我們總可以找到一個等價的無隱含單元的網路。這是由於連續的線性變換的組合本身是一個線性變換

然而,如果隱含單元的數量小於輸入單元的數量或者小於輸出單元的數量,那麼網路能夠產生的變換不是最一般的從輸入到輸出的線性變換,因為在隱含單元出的維度降低造成了資訊丟失。  

由於在網路圖和它的數學函式表示式之間有一個直接的對應關係,因此我們可以通過考慮更復雜的網路圖來構造更一般的網路對映。然而,這些網路必須被限制為前饋(feed-forward)結構,換句話說,網路中不能存在有向圈,從而確保了輸出是輸入的確定函式。

下圖用一個簡單的例子說明了這一點。

這樣的網路中每個(隱含或者輸出)單元都計算了一個下面的函式:

其中,求和的物件是所有向單元k傳送連結的單元(偏置引數也包含在了求和式當中)。對於一組給定的值作用在神經網路的輸入上,不斷應用上式使得網路中所有單元(包括輸出單元)的啟用都能夠被計算出來。 

前饋網路的近似性質被廣泛研究,這些性質被發現相當通用。因此神經網路被稱為通用近似(universal approximator)

例如,一個帶有線性輸出的兩層網路可以在任意精度下近似任何輸入變數較少的連續函式,只要隱含單元的數量足夠多。這個結果對於一大類隱含單元啟用函式都成立,但是不包括多項式函式。

下圖說明了兩層網路建模一大類函式的能力。這個圖也說明了獨立的隱含單元是如何聯合地近似最終的函式的。

多層感知器的能力說明,它用來近似四個不同的函式。(a)f(x) = x2,(b)f(x) = sin(x), (c)f(x) = |x|,(d)f(x) = H(x),其中H(x)是一個硬階梯函式。在每種情況下,N = 50個資料點(用藍點表示)從區間(−1, 1)中均勻分佈的x中進行取樣,然後計算出對應的f (x)值。這些資料點之後用來訓練一 個具有3個隱含單元的兩層神經網路,隱含單元的啟用函式為tanh函式,輸出為線性輸出單元。生成的網路函式使用紅色曲線表示,三個隱含單元的輸出用三條虛線表示。 

下圖進一步說明了在一個簡單的分類問題中,隱含單元的作用。 

簡單的二分類問題的例子,資料集是人工生成的資料。模型為神經網路,網路具有兩個輸入結點,兩個帶有tanh啟用函式的隱含單元,以及帶有logistic sigmoid啟用函式的一個輸出單元。藍色虛線表示每個隱含單元的z = 0.5的輪廓線,紅線表示整個網路的y = 0.5的決策面。為了對比,綠線表示根據生成資料的概率分佈計算出的最優的決策邊界。  

0x3:權空間對稱性

前饋神經網路的一個重要性質是:

對於多個不同的權向量w的選擇,網路可能產生同樣的從輸入到輸出的對映函式。

考慮下圖中的兩層網路,

網路有M個隱含結點,啟用函式是雙曲正切函式,且兩層之間完全連結。

如果我們把作用於某個特定的隱含單元的所有的權值以及偏置全部變換符號,那麼對於給定的輸入模式,隱含單元的啟用的符號也會改變。這是因為雙曲正切函式是一個奇函式, 即tanh(−a) = − tanh(a)。

這種變換可以通過改變所有從這個隱含單元到輸出單元的權值的符號的方式進行精確補償(即再次反轉回來)。

因此,通過改變特定一組權值(以及偏置)的符號,網路表示的輸入-輸出對映函式不會改變,因此我們已經找到了兩個不同的權向量產生同樣的對映函式。

對於M個隱含單元,會有M個這樣的“符號改變”對稱性,因此任何給定的權向量都是2M個等價的權向量中的一個。

類似地,假設我們將與某個特定的隱含結點相關聯的所有輸入和輸出的權值(和偏置)都變為與不同的隱含結點相關聯的對應的權值(和偏置),即進行了一個內部交換。與之前一樣,這顯然使得網路的輸入-輸出對映不變,但是對應了一個不同的權向量。

對於M個隱含結點,任何給定的權向量都屬於這種交換對稱性產生的 M! 個等價的權向量中的一個,它對應於 M! 個不同的隱含單元的順序

於是,網路有一個整體的權空間對稱性因子 M! * 2M。對於多於兩層的網路,對稱性的總數等於這些因子的乘積,每層隱含單元都有一個這樣的因子

可以證明,對於權空間中的各種型別的對稱性,這些因子都存在(除了由於權值的具體選擇導致的偶然的對稱性)。

此外,對稱性的存在不僅是雙曲正切函式的特有性質,而是對一大類的啟用函式都存在的性質。但是在許多情況下,權空間的這種對稱性幾乎沒有實際用處。

  

3. 網路訓練

目前為止,我們把神經網路看成從輸入變數x到輸出變數y的引數化非線性函式中的一大類。前第一章也說到,解決維度災難問題的策略之一就是”事先固定基函式的數量,但是允許基函式可調節“。

所以這一章,我們就來討論如何確定神經網路引數的問題。

0x1:迴歸模型的網路引數訓練

對於迴歸任務,確定網路引數的一個簡單的方法類似於多項式曲線擬合問題,因此我們需要最小化平方和誤差函式。

給定一個由輸入向量{xn}(n = 1, . . . , N)組成的訓練集,以及一個對應的目標向量tn組成的集合,我們要最小化誤差函式:

然而,通過給網路的輸出提供一個概率形式的表示,我們可以獲得對於神經網路訓練的一個更加一般的觀點。這裡,關於概率的討論會讓我們理解選擇輸出單元非線性函式以及選擇誤差函式的動機。 

現在我們只考慮一元目標變數t的情形,其中t可以取任何實數值。我們假定t服從高斯分佈,均值與x相關,由神經網路的輸出確定,即:

對於由上式給出的條件分佈,將輸出單元啟用函式取成恆等函式就足夠了,因為這樣的網路可以近似任何從x到y的連續函式。

給定一個由N個獨立同分布的觀測組成的資料集X = {x1,...,xN},以及對應的目標值t = {t1, . . . , tN},我們可以構造對應的似然函式:

根據最大似然估計原則,取負對數,我們就得到了誤差函式:

這可以用來學習引數w和β。 

需要注意的是,在實際應用中,神經網路函式y(xn, w)的非線性的性質導致誤差函式E(w)不是凸函式,因此在實際應用中可能尋找的是似然函式的區域性最大值,對應於誤差函式的區域性最小值。 

0x2:分類模型的網路引數訓練

二分類問題中,我們有一個單一目標變數t,且t = 1表示類別C1,t = 0表示類別C2

我們考慮一個具有單一輸出的網路,它的啟用函式是logistic sigmoid函式:

從而0 ≤ y(x,w) ≤ 1。我們可以把y(x,w)表示為條件概率p(C1 | x),此時p(C2 | x)為1 − y(x, w)。

如果給定了輸入,那麼目標變數的條件概率分佈是一個伯努利分佈,形式為:

如果我們考慮一個由獨立的觀測組成的訓練集,那麼由負對數似然函式給出的誤差函式就是一個交叉熵(cross-entropy)誤差函式,形式為 

其中yn表示y(xn, w)。注意,沒有與噪聲精度β相類似的東西,因為我們假定目標值的標記都正確。然而,模型很容易擴充套件到能夠接受標記錯誤的情形。

如果我們有K個相互獨立的二元分類問題(K分類問題),那麼我們可以使用具有K個輸出的神經網路,每個輸出都有一個logistic sigmoid啟用函式。與每個輸出相關聯的是一個二元類別標籤tk ∈{0,1},其中k=1,...,K。如果我們假定類別標籤是獨立的,那麼給定輸入向量,目標向量的條件概率分佈為:

取似然函式的負對數,可以得到下面的誤差函式:

其中ynk表示yk(xn, w)。 

0x3:神經網路的權向量共享特性

我們可以對比一下神經網路解和線性分類模型給出的解,從而發現一些有趣的事情。

假設我們使用下圖所示的標準的兩層神經網路。

我們看到,網路第一層的權向量由各個輸出所共享,而線上性模型中每個分類問題是獨立地解決的。

神經網路的第一層可以被看做進行了一個非線性的特徵抽取,而不同的輸出之間共享特徵可以節省計算量,同時也提升了泛化能力。 

筆者總結

總而言之,根據解決的問題的型別,關於輸出單元啟用函式和對應的誤差函式,都存在一個自然的選擇。

  • 對於迴歸問題,我們使用線性輸出和平方和誤差函式
  • 對於(多類獨立的)二元分類問題,我們使用logistic sigmoid輸出以及交叉熵誤差函式
  • 對於多類分類問題,我們使用softmax輸出以及對應的多分類交叉熵錯誤函式。
  • 對於涉及到兩類的分類問題,我們可以使用單一的logistic sigmoid輸出,也可以使用神經網路,這個神經網路有兩個輸出,且輸出啟用函式為softmax函式。 

0x4:引數最優化

我們下面考慮尋找能夠使得選定的誤差函式E(w)達到最小值的權向量w。

現在,考慮誤差函式的幾何表示是很有用的。我們可以把誤差函式看成位於權空間的一個曲面,如下圖所示。

誤差函式E(w)的幾何表示,其中,誤差函式被表示為權空間上的一個曲面。點wA是一個區域性最小值,點wB是全域性最小值。在任一點wC處,誤差函式的區域性梯度由向量∇E(w)給出

首先注意到,如果我們在權空間中走一小步,從w走到w + δw,那麼誤差函式的改變為δE ≃ δwT∇E(w),其中向量∇E(w)在誤差函式增加速度最大的方向上。

由於誤差E(w)是w的光滑連續函式,因此它的最小值出現在權空間中誤差函式梯度等於零的位置上, 即

梯度為零的點被稱為駐點,它可以進一步地被分為極小值點、極大值點和鞍點。 

我們的目標是尋找一個向量w使得E(w)取得最小值。然而,誤差函式通常與權值和偏置引數的關係是高度非線性的,因此權值空間中會有很多梯度為零(或者梯度非常小)的點

實際上,根據上一節的討論,我們看到,對於任意一個區域性極小值點w,在權空間中都存在等價的其他極小值點。例如,在兩層神經網路中,有M個隱含單元,權空間中的每個點都是 M! * 2M 個等價點中的一個。 

由於顯然無法找到方程∇E(w) = 0的解析解,因此我們使用迭代的數值方法。連續非線性函式的最優化問題是一個被廣泛研究的問題,有相當多的文獻討論如何高效地解決。大多數方法涉及到為權向量選擇某個初始值w0,然後在權空間中進行一系列微移動,形式為:

其中τ 表示迭代次數。不同的演算法涉及到權向量更新∆w(τ)的不同選擇。許多演算法使用梯度資訊,因此就需要在每次更新之後計算在新的權向量w(τ +1)處的∆E(w)的值。

梯度方法基本上是目前主流的深度學習引數優化方法,但它並不是唯一的方法,這一點要注意。我們本章重點討論梯度方法。

0x5:區域性二次近似 

為了理解梯度資訊的重要性,有必要考慮誤差函式基於泰勒展開的區域性近似。通過討論誤差函式的區域性二次近似,我們可以更深刻地認識最優化問題,以及各種解決最優化問題的方法。

考慮E(w)在權空間某點處w^的泰勒展開:

其中立方項和更高階的項已經被省略掉了。這裡,b被定義為E的梯度在w^處的值。 

Hessian矩陣H = ∇∇E的元素為:

梯度的區域性近似為:

對於距離點w^充分近的點w,這些表示式能夠對誤差函式和它的梯度給出合理的近似。 

0x6:使用梯度資訊的好處

正如我們將在後面的章節看到的那樣,可以使用誤差反向傳播的方法高效地計算誤差函式的梯度。這個梯度資訊的使用可以大幅度加快找到極小值點的速度。原因如下所述。

在公式

給出的誤差函式的二次近似中,誤差曲面由b和H確定,它包含了總共 W(W+3)/2 個獨立的元素(因為矩陣H是對稱的),其中W是w的維度(即網路中可調節引數的總數)。

這個二次近似的極小值點的位置因此依賴於O(W2)個引數,並且我們不應該奢求能夠在收集到O(W2)條獨立的資訊之前就能夠找到最小值。

如果我們不使用梯度資訊,我們不得不進行O(W2)次函式求值,每次求值都需要O(W)個步驟。因此,使用這種方法求最小值需要的計算複雜度為O(W3)。

現在將這種方法與使用梯度資訊的方法進行對比。由於每次計算∇E都會帶來W條資訊,因此我們可能預計找到函式的極小值需要計算O(W)次梯度。正如我們將要看到的那樣,通過使用誤差反向傳播演算法,每個這樣的計算只需要O(W)步,因此使用這種方法可以在O(W2)個步驟內找到極小值。

因此,使用梯度資訊構成了訓練神經網路的實際演算法的基礎。  

0x7:梯度下降最優化

最簡單的使用梯度資訊的方法是,將權值更新方式選擇為下面的形式,即每次權值更新都是在負梯度方向上的一次小的移動,即:

其中引數η > 0被稱為學習率(learning rate)。在每次更新之後,梯度會使用新的權值向量重新計算,然後這個過程重複下去。

在每一步,權值向量都會沿著誤差函式下降速度最快的方向移動, 因此這種方法被稱為梯度下降法(gradient descent)或者最陡峭下降法(steepest descent)

注意,誤差函式是關於訓練集定義的,因此為了計算∇E ,每一步都需要處理整個資料集。雖然這種方法在直覺上看比較合理,但是實際上可以證明它是一個很差的演算法,因為每次都需要處理整個訓練集,同時進行反向傳播,其計算開銷十分巨大。

筆者插入

對於批量最優化方法,存在更高效的方法,例如共軛梯度法(conjugate gradient)或者擬牛頓法(quasi-Newton)。與簡單的梯度下降方法相比,這些方法更魯棒,更快。與梯度下降方法不同,這些演算法具有這樣的性質:誤差函式在每次迭代時總是減小的,除非權向量到達了區域性的或者全域性的最小值。 

前面說過,對於一個神經網路來說,每一個權值向量,都存在與之等價的 M! * 2M 個等價權重向量。 因為為了找到一個足夠好的極小值,可能有必要多次執行基於梯度的演算法,每次都使用一個不同 的隨機選擇額起始點,然後在一個獨立的驗證集上對比最終的表現。 

 

4. 誤差反向傳播

上一節我們討論了梯度下降法,對於單個神經元來說,基於梯度下降法可以在O(W2)步驟內,找到極小值。

從這個小節開始,我們擴充套件這個話題,討論如何在每一層計算神經元的梯度資訊。

我們的目標是尋找一種計算前饋神經網路的誤差函式E(w)的梯度的一種高效的方法。我們會看到,可以使用區域性資訊傳遞的思想完成這一點。

在區域性資訊傳遞的思想中,資訊在神經網路中交替地向前、向後傳播。這種方法被稱為誤差反向傳播(error backpropagation),有時簡稱“反傳”(backprop)

應該注意的是,在神經網路計算的文獻中,反向傳播這個術語用於指代許多不同的事物。例如,

  • 多層感知器結構有時被稱為反向傳播網路
  • 反向傳播這個術語還用於描述將梯度下降法應用於平方和誤差函式的多層感知器的訓練過程

為了不讓概念發生混淆,仔細研究一下訓練過程的本質是很有用的。

大部分訓練演算法涉及到一個迭代的步驟用於誤差函式的最小化,以及通過一系列的步驟進行的權值調節。在每一個這樣迭代過程中,我們可以區分這兩個不同的階段。

  • 在第一個階段,誤差函式關於權值的導數必須被計算出來。由於正是在這個階段,誤差通過網路進行反向傳播,因此我們將專門使用反向傳播這個術語來描述計算導數的過程。
  • 在第二個階段,導數用於計算權值的調整量。

認識到這兩個階段屬於不同的階段是很重要的。

因此,第一階段,即為了計算導數而進行的誤差在網路中的反向傳播階段,其重點在於誤差的反向傳播這個方式,可以應用於許多其他種類的網路,而不僅僅是多層感知器。它也可以應用於其他的誤差函式,而不僅僅是簡單的平方和誤差函式。它也可以用於計算其他型別的導數,例如Jacobian矩陣和Hessian矩陣。

類似地,第二階段,即使用計算過的導數調整權值的階段,可以使用許多最優化方法處理,許多最優化方法本質上要比簡單的梯度下降更強大。

0x1:誤差函式導數的計算

我們現在推導適用於一般神經網路的反向傳播演算法。這種神經網路有著任意的前饋拓撲結構、任意可微的非線性啟用函式、以及一大類的誤差函式。

推導的結果將會使用一個簡單的層次網路結構說明,這個簡單的層次網路結構有一個單層的sigmoid隱含單元以及平方和誤差函式。

許多實際應用中使用的誤差函式,例如針對一組獨立同分布的資料的最大似然方法定義的誤 差函式,由若干項的求和式組成,每一項對應於訓練集的一個資料點,即:

這裡,我們要考慮的是計算∇En(w)的問題。這可以直接使用順序優化的方法計算,或者使用批處理方法在訓練集上進行累加。

首先考慮一個簡單的線性模型,其中輸出yk是輸入變數xi的線性組合,即:

對於一個特定的輸入模式n,誤差函式的形式為:

其中ynk = yk(xn, w)。這個誤差函式關於一個權值wji的梯度為:

它可以表示為與連結wji的輸出端相關聯的“誤差訊號”ynj − tnj、以及與連結的輸入端相關聯的變數xni的乘積

在後面的討論我們會看到,這個梯度表示式是一個通用表示式,不論是logistic sigmoid啟用函式和交叉熵誤差函式、還是softmax啟用函式和與之匹配的交叉熵誤差函式,都可以得到類似的結果。

我們現在會看到這個簡單的結果如何擴充套件到更復雜的多層前饋神經網路中。

在一個一般的前饋網路中,每個單元都會計算輸入的一個加權和,形式為:

其中zi是一個單元的啟用,或者是輸入,它向單元j傳送一個連結。wji是與這個連結關聯的權值。 

上式中的求和式通過一個非線性啟用函式h(·)進行變換,得到單元 j 的啟用zj ,形式為:

對於訓練集裡的每個模式(pattern),我們會假定我們給神經網路提供了對應的輸入向量,然後通過反覆應用上面2個公式,計算神經網路中所有隱含單元和輸出單元的啟用。

這個過程通常被稱為正向傳播(forward propagation),因為它可以被看做網路中的一個向前流動的資訊流。

現在,我們在整個網路結構層面上考慮計算En關於權值wji的導數。

應用偏導數的鏈式法則,我們得到:

現在我們引入一個有用的記號:

其中δ通常被稱為誤差(error)。 

同時有:

 

綜上,我們有如下公式:

上式告訴我們,要找的導數可以通過簡單地將權值輸出單元的δ值與權值輸入端的z值相乘的方式得到。

注意,這與本小節開始時討論的簡單線性模型的形式相同。即針對權重的導數依賴於兩個因素:

  • 與連結wji的輸出端相關聯的“誤差訊號”ynj − tnj
  • 與連結的輸入端相關聯的變數xni

正如我們已經看到的那樣,只要我們使用標準連結函式作為輸出單元的啟用函式,那麼對於輸出單元,我們就有:

為了計算隱含單元的δ值,我們再次使用偏導數的鏈式法則:

其中求和式的作用物件是所有向單元j傳送連結的單元k。下圖說明了單元和權值的設定。

對於隱含單元j,計算δj的說明。計算時使用了向單元j傳送資訊的那些單元k的δ,使用反向誤差傳播方法進行計算。藍色箭頭表示在正向傳播階段資訊流的方向,紅色箭頭表示誤差資訊的反向傳播。

注意,單元k可以包含其他的隱含單元和(或)輸出單元。我們在給出上式時,我們使用了這個事實:

aj的改變所造成的誤差函式的改變的唯一來源是變數ak的改變。

綜上,我們就得到 了下面的反向傳播(backpropagation)公式:

這表明,一個特定的隱含單元的δ值可以通過將網路中更高層單元的δ進行反向傳播來實現,因此通過遞迴地應用上式,我們可以計算前饋網路中所有隱含單元的δ值,無論它的拓撲結構是什麼樣的。

於是,反向傳播演算法可以總結如下。

  • 對於網路的一個輸入向量xn,首先進行正向傳播,找到所有隱含單元和輸出單元的啟用。
  • 計算所有輸出單元的δk
  • 反向傳播δ,獲得網路中所有隱含單元的δj
  • 計算導數。 

對於批處理方法,總誤差函式E的導數可以通過下面的方式得到:

對於訓練集裡的每個模式,重複上面的步驟,然後對所有的模式求和,即:

在上面的推導中,我們隱式地假設網路中的每個隱含單元或輸入單元都有相同的啟用函式h(·)。

然而,這個推導很容易推廣,使得不同的單元可以有各自的啟用函式,只需記錄那種形式的h(·)進入了那個單元即可。  

0x2:一個簡單的反向傳播例子

上一節提到,對於反向傳播演算法的推導適用於一般形式的誤差函式、啟用函式、以及網路拓撲結構。

為了說明這個演算法的應用,我們考慮一個具體的例子。這個例子很簡單,我們會考慮下圖的兩層神經網路,

誤差函式為平方和誤差函式,輸出單元的啟用函式為線性啟用函式, 即

yk = ak

而隱含單元的啟用函式為S形函式,形式為:

其中:

這個函式的一個有用的特徵是,它的導數可以表示成一個相當簡單形式:

我們也考慮一個標準的平方和誤差函式,即對於模式n,誤差為:

其中,對於一個特定的輸入模式xn,yk是輸出單元k的啟用,tk是對應的目標值。 

對於訓練集裡的每個模式,我們首先使用下面的公式進行前向傳播。 

接下來我們使用下面的公式計算每個輸出單元的δ值。 

然後,我們使用下面的公式將這些δ值反向傳播,得到隱含單元的δ值。

最後,關於第一層權值和第二層權值的導數為:

 

6. 神經網路的正則化

神經網路的輸入單元和輸出單元的數量通常由資料集的維度確定,而隱含單元的數量M是一個自由的引數,可以通過調節來給出最好的預測效能

注意,因為M控制了網路中引數(權值和偏置)的數量,因此我們可以猜想,在最大似然的框架下,會存在一個泛化效能最好的最優的M值,這個值對應於擬合效果不好和過擬合之間的最優平衡。下圖給出了不同的M值對於正弦曲線迴歸問題的效果。

使用從正弦資料集中抽取的10個資料點訓練的兩層神經網路的例子。各圖分別給出了使用M = 1, 3, 10個隱含單元調節網路的結果,調節的方法是使用放縮的共軛梯度演算法來最小化平方和誤差函式。 

然而,泛化誤差與M的關係不是一個簡單的函式關係,因為誤差函式中存在區域性極小值, 如下圖所示。

對於多項式資料集,測試集的平方和誤差與網路的隱含單元的數量的影像。對於每個網路規模, 都隨機選擇了30個初始點,這展示了區域性最小值的效果。對於每個新的初始點,權向量通過從一個各向 同性的高斯分佈中取樣,這個高斯分佈的均值為零,方差為10。

這裡,我們看到了對於不同的M值,權值的多次隨機初始化的效果。在驗證集上的整體最優表現出現於M = 8的情況下的某個特定的解。

在實際應用中,一種選擇M的方法實際上是畫一張類似的圖,然後選擇有最小驗證集誤差的具體的解。即所謂的“多次嘗試,選取最好的那個”

除了簡單的多次嘗試窮舉法之外,還有其他的方式控制神經網路的模型複雜度來避免過擬合。

根據我們之前對多項式曲線擬合問題的討論,我們看到,一種方法是選擇一個相對大的M值,然後通過給誤差函式增加一個正則化項,來控制模型的複雜度

最簡單的正則化項是二次的,下面給出了正則化的誤差函式,形式為:

這個正則化項也被稱為權值衰減(weight decay)。這樣,模型複雜度可以通過選擇正則化係數λ來確定。從概率分佈的角度來看,正則化項可以表示為權值w上的零均值高斯先驗分佈的負對數。 

0x1:相容的高斯先驗

公式

給出的簡單權值衰減的一個侷限性是,它與網路對映的確定縮放性質不相容。

為了說明這一點,考慮一個多層感知器網路,這個網路有兩層權值和線性輸出單元,它給出了從輸入變數集合{xi}到輸出變數集合{yk}的對映。第一個隱含層的隱含單元的啟用的形式為:

輸出單元的啟用為:

假設我們對輸入變數進行一個線性變換,形式為:

然後我們可以根據這個對映對網路進行調整,使得網路給出的對映不變。調整的方法為,對從輸入單元到隱含層單元的權值和偏置也進行一個對應的線性變換,形式為:

類似地,網路的輸出變數的線性變換:

可以通過對第二層的權值和偏置進行線性變換的方式實現。變換的形式為:

如果我們使用原始資料訓練一個網路,還使用輸入和(或)目標變數進行了上面的線性變換的資料訓練一個網路,那麼相容性要求這兩個網路應該是等價的,差別僅在於上面給出的權值的線性變換。

任何正則化項都應該與這個性質相容,否則模型就會傾向於選擇某個解,而忽視某個等價的解。

顯然,上面簡單的權值衰減公式由於把所有的權值和偏置同等對待,會導致放縮後的結果發生變化,因此不滿足這個性質。

於是我們要尋找一個正則化項,它在上述線性變換下具有不變性。這需要正則化項應該對於權值的重新縮放不變,對於偏置的平移不變。這樣的正則化項為:

其中W1表示第一層的權值集合,W2表示第二層的權值集合,偏置未出現在求和式中。

這個正則化項在權值的變換下不會發生變化,只要正則化引數進行下面的重新放縮即可:

上述改進後的正則化項對應於下面形式的先驗概率分佈。 

注意,這種形式的先驗是反常的(improper)(不能夠被歸一化),因為偏置引數沒有限制。

使用反常先驗會給正則化係數的選擇造成很大的困難,也會給貝葉斯框架下的模型選擇造成很大的困難,因為對應的模型證據等於零。

因此,通常的做法是單獨包含一個有著自己單獨的一套超引數的偏置的先驗。

為了說明四個引數的效果,我們從先驗中抽取樣本,然後畫出了對應的神經網路函式,如下圖所示。

控制兩層神經網路的權值和偏置的先驗概率分佈的超引數的效果說明。其中,神經網路有一個輸入,一個線性輸出,以及12個隱含結點,隱含結點的啟用函式為tanh。先驗概率分佈通過四個超參 數α1b , α1w , α2b , α2w 控制,它們分別表示第一層的偏置、第一層的權值、第二層的偏置、第二層的權值。我 們看到,引數α2w 控制函式的垂直標度(注意上方兩張圖的垂直軸的標度不同),α1w 控制函式值變化的水平標度,α1b 控制變化發生的水平範圍。引數α2b ,它的效果沒有在這裡說明,它控制了函式的垂直偏置的範圍。 

更一般地,我們可以考慮權值被分為任意數量的組Wk的情況下的先驗,即:

其中:

作為這種形式的先驗的一個特殊情況,如果我們將每個輸入單元關聯的權值設為一個分組,並且關於對應的引數αk最優化邊緣似然函式,那麼我們就得到了自動相關性確定(automatic relevance determination)的方法。 

0x2:早停止

另一種控制網路的複雜度的正則化方法是早停止(early stopping)

非線性網路模型的訓練對應於誤差函式的迭代減小,其中誤差函式是關於訓練資料集定義的。對於許多用於網路訓練的最優化演算法(例如共軛梯度法),誤差函式是一個關於迭代次數的不增函式。然而,在獨立資料(通常被稱為驗證集)上測量的誤差,通常首先減小,接下來由於模型開始過擬合而逐漸增大。即發生所謂的過擬合現象(overfitting phenomenon)

於是,訓練過程可以在關於驗證集誤差最小的點停止,如下圖所示。

訓練集誤差(左圖)和驗證集誤差(右圖)在典型的訓練階段的行為說明。影像給出了誤差與迭代次數的函式,資料集為正弦資料集。得到最好的泛化表現的目標表明,訓練應該在垂直虛線表示的點處停止,對應於驗證集誤差的最小值  

這樣可以得到一個 有著較好泛化效能的網路。

這種情況下,網路的行為有時可以通過網路的自由度有效數量來定量描述

自由度有效數量開始時很小,然後在訓練過程中增長,對應於模型複雜度的持續增長。這樣,在訓練誤差達到最小值之前停止訓練就表示了一種限制模型複雜度的方式

在二次誤差函式的情況下,我們可以說明這種直觀的描述,並且說明早停止的效果與使用簡單的權值衰減的正則化項的效果類似。這可以通過下圖來理解。

在二次誤差函式的情況下,關於早停止可以給出與權值衰減類似的結果的原因說明。橢圓給出了常數誤差函式的輪廓線,wML表示誤差函式的最小值。如果權向量的起始點為原點,按照區域性負梯度的方向移動,那麼它會沿著曲線給出的路徑移動。通過對訓練過程早停止,我們找到了一個權值向量w ̃。 定性地說,它類似於使用簡單的權值衰減正則化項,然後最小化正則化誤差函式的方法得到的權值。 

 

似然函式的輪廓線(紅色)和先驗概率分佈(綠色) 

在上圖中,權值空間的座標軸已經進行了旋轉,使得座標軸平行於Hessian矩陣的特徵向量。

在沒有權值衰減的情況下,如果權向量開始於原點,然後在訓練過程中沿著區域性負梯度向量確定的路徑移動,那麼權向量從最開始平行於w2軸的位置,移動到大致對應於w ̃的位置,然後移向最小化誤差函式的位置wML

這可以從誤差曲面和Hessian矩陣的特徵值得出。於是,在點w ̃附近停止就類似於權值衰減

0x3:不變性

在許多模式識別的應用中,都要求在對於輸入變數進行了一個或者多個變換之後,預測不應該發生變化,或者說應該具有不變性(invariant)

例如,在二維影像(例如手寫數字)的分類問題中,一個特定的影像的類別應該與影像的位置無關(平移不變性(translation invariance)), 也應該與影像的大小無關(縮放不變性(scale invariance))。

這樣的變換對於原始資料(用影像的每個畫素的灰度值表示)產生了巨大的改變,但是分類系統還是應該給出同樣的輸出。

類似地,在語音識別中,對於時間軸的微小的非線性變形(保持了時間順序)不應該改變訊號的意義。

如果可以得到足夠多的訓練模式,那麼可調節的模型(例如神經網路)可以學習到不變性, 至少可以近似地學習到。這涉及到在訓練集裡包含足夠多的表示各種變換的效果的樣本。因此,對於一個影像的平移不變性,訓練集應該包含影像出現在多個不同位置的情況下的資料。

但是,如果訓練樣本數受限,或者有多個甚至無限的不變性(變換的組合的數量隨著變換的數量指數增長),那麼這種方法就很不實用

於是,我們要尋找另外的方法來讓可調節的模型能夠表述所需的不變性。這些方法大致可以分為四類。

  • 樣本上取樣:通過複製訓練模式,同時根據要求的不變性進行變換,對訓練集進行擴充套件。例如,在手寫數字識別的例子中,我們可以將每個樣本複製多次,每個複製後的樣本中,影像被平移到了不同的位置。
  • 通過正則化提高泛化能力:為誤差函式加上一個正則化項,用來懲罰當輸入進行變換時。
  • 特徵提取:通過抽取在要求的變換下不發生改變的特徵,不變性被整合到預處理過程中。任何後續的使用這些特徵作為輸入的迴歸或者分類系統就會具有這些不變性。
  • 神經網路加入不變性結構:把不變性的性質整合到神經網路的構建過程中、或者對於相關向量機的方法,整合到核函式中。一種方法是通過使用區域性接收場和共享權值,例如卷積神經網路。

1、樣本上取樣

這個方法通常實現起來相對簡單,並且可以用來處理複雜的不變性,如下圖所示。

對手寫數字進行人工形變的說明。原始影像見左圖。在右圖中,上面一行給出了三個經過了形變的數字,對應的位移場在下面一行給出。這些位移場按照下面的方法生成:在每個畫素處,對唯 一∆x, ∆y ∈ (0, 1)進行隨機取樣,然後分別與寬度為0.01,30,60的高斯分佈做卷積,進行平滑。  

對於順序訓練演算法,可以這樣做:在模型觀測到輸入模式之前,對每個輸入模式進行變換,從而使得如果模式被迴圈處理,那麼每次都會接收到一個不同的變換(從一個適當的概率分佈中抽取)。

對於批處理方法,可以這樣做:將每個資料點複製多次,然後獨立地變換每個副本,這樣可以產生類似的效果。

使用這些擴充套件後的資料可以大幅提升泛化能力,雖然計算開銷比較大。

2、通過正則化提高泛化能力

這個方法保持了資料集的不變性,而是給誤差函式增加了一個正則化項。在更後面的討論中,我們會發現,該方法與樣本上取樣方法關係密切。

3、特徵提取

該方法的一個優點是,對於訓練集裡沒有包含的變換,它可以正確地進行外插。然而,找到符合要求的人工設計的特徵很困難,因為這種特徵要具有所需的不變性,還不能丟失對於判別很有幫助的資訊。

實際上,這一步常常被稱為“專家領域經驗特徵工程”,這一步的實現常常伴隨著大量的前期問題分析與建模,是一個逐漸迭代優化的過程。只要設計得當,效果往往也是最好的。 

0x4:切線傳播

通過切線傳播(tangent propagation)的方法,我們可以使用正則化來讓模型對於輸入的變換具有不變性。

對於一個特定的輸入向量xn,考慮變換產生的效果。假設變換是連續的(例如平移或者旋轉,而不是映象翻轉),那麼變換的模式會掃過D維輸入空間的一個流形M。

下圖說明了D = 2的情形。

二維輸入空間的例子,展示了在一個特定的輸入向量xn上的連續變換的效果。一個引數為連續變數ξ的一維變換作用於xn上會使它掃過一個一維流形M。區域性來看,變換的效果可以用切向量τn來近似。 

假設變換由單一引數ξ控制(例如,ξ可能是旋轉的角度)。那麼被xn掃過的子空間M是一維的,並且以ξ為引數。

令這個變換作用於xn上產生的向量為s(xn, ξ),且s(x, 0) = x。這樣曲線M的切線就由方向導數τ = ∂x 給出,且點xn處的切線向量為:

對於輸入向量進行變換之後,網路的輸出通常會發生變化。輸出k關於ξ的導數為:

其中Jki為Jacobian矩陣J的第(k, i)個元素,上式給出的結果可以用於修改標準的誤差函式,使得在資料點的鄰域之內具有不變性。

修改的方法為:給原始的誤差函式E增加一個正則化函式Ω,得到下面形式的誤差函式:

其中λ是正則化係數,且:

當網路對映函式在每個模式向量的鄰域內具有變換不變性時,正則化函式等於零。λ的值確定了訓練資料和學習不變性之間的平衡

0x5:卷積神經網路

另一種構造對輸入變數的變換具有不變性的模型的方法是將不變性的性質融入到神經網路結構的構建中。這是卷積神經網路(convolutional neural network)的基礎,它被廣泛地應用於影像處理領域。 

相關的討論可以參閱另一篇文章

0x6:軟權值共享

降低具有大量權值引數的網路複雜度的一種方法是將權值分組,然後令分組內的權值相等

這種方法將網路對於影像的平移不變性整合到網路的構建過程中。然而,它只適用於限制的形式可以事先確定的問題中。這裡,我們考慮軟權值共享(soft weight sharing)。

這種方法中,權值相等的硬限制被替換為一種形式的正則化,其中權值的分組傾向於取近似的值。此外,權值的分組、每組權值的均值,以及分組內的取值範圍全都作為學習過程的一部分被確定

回憶一下,前面章節討論的簡單的權值衰減正則化項可以被看成權值上的高斯分佈的負對數。我們可以將權值分為若干組,而不是將所有權值分為一個組。分組的方法是使用高斯混合概率分佈。混合分佈中,每個高斯分量的均值、方差,以及混合係數,都會作為可調節的引數在學習過程中被確定。

於是,我們有下面形式的概率密度:

其中:

πj為混合係數。取負對數,即可得到正則化函式,形式為:

從而,總的誤差函式為:

其中,λ是正則化係數。這個誤差函式同時關於權值wi和混合模型引數{πj,μj,σj}進行最小化。

為了最小化總的誤差函式,能夠計算出它關於各個可調節引數的導數是很有必要的。為了完成這一點,比較方便的做法是把{πj}當成先驗概率,然後引入對應的後驗概率。後驗概率由貝葉斯定理給出,形式為

這樣,總的誤差函式關於權值的導數為:

於是,正則化項的效果是把每個權值拉向第j個高斯分佈的中心,拉力正比於對於給定權值的高斯分佈的後驗概率。這恰好就是我們要尋找的效果。

Relevant Link: 

https://www.cnblogs.com/LittleHann/p/10020448.html

 

7. 混合密度網路

有監督學習的目標是對條件概率分佈p(t | x)建模

對於許多簡單的迴歸問題來說,這個分佈都被選為高斯分佈。然而,實際的機器學習問題中,經常會遇到與高斯分佈差別相當大的概率分佈,概率分佈可以是多峰的,這種情況下,高斯分佈的假設就會產生相當差的預測結果。

作為逆問題的一個簡單的例子,考慮機械臂的運動學問題,如下圖所示。

左圖給展示了一個具有兩個連線的機械臂,其中,末端的笛卡爾座標(x1,x2)由兩個連線角θ1和θ2以及機械臂的(固定)長度L1和L2唯一確定。這被稱為機械臂的正向運動學(forward kinematics)。在實際應用中,我們必須尋找給出所需的末端位置的連線角,如右圖所示。這個逆向運動學(inverse kinematics)有兩個對應的解,即“肘部向上”和“肘部向下”。

正向問題(forward problem)是在給定連線角的情況下求解機械臂末端的位置,這個問題有唯一解。

然而,在實際應用中,我們想把機械臂末端移動到一個具體的位置。為了完成移動,我們必須設定合適的連線角。於是,我們需要求解逆問題,它有兩個解,如上圖右邊所示。

正向問題通常對應於物理系統的因果關係,通常有唯一解。例如,人體的某個具體的症狀是由於特定的疾病造成的。然而在模式識別中,我們通常不得不求解逆問題,例如在給定症狀的情況下,推斷疾病的種類

如果正向問題涉及到多對一的對映,那麼逆問題就會有多個解(1:N的對映)。例如,多種不同的疾病可能會導致相同的症狀。

在機械臂的例子中,運動由幾何方程定義,多峰的性質是顯然的。然而,在許多機器學習問題中,尤其是涉及到高維空間的問題中,多峰性質的存在並不顯然,這對我們的建模就帶來了非常大的挑戰。

但是,為了討論的目的, 我們會考慮一個相當簡單的問題,這個問題中我們可以很容易地看出多峰性質。

這個問題的資料的生成方式為:

對服從區間(0, 1)的均勻分佈的變數x進行取樣,得到一組值{xn},對應的目標值tn通過下面的方式得到:計算函式xn + 0.3*sin(2πxn),然後新增一個服從(−0.1, 0.1)上的均勻分佈的噪聲。

這樣,逆問題就可以這樣得到:

使用相同的資料點,但是交換x和t的角色。

下圖給出了正向問題和逆問題的資料集,以及一個兩層神經網路給出的結果。

左圖是一個簡單的“正向問題”的資料集,其中紅色曲線給出了通過最小化平方和誤差函式調節一個兩層神經網路的結果。對應的逆問題,如右圖所示,通過交換x和t的順序的方式得到。這裡,通過最 小化平方和誤差函式的方式訓練的神經網路給出了對資料的非常差的擬合,因為資料集是多峰的(每一個y軸有多個x軸的值與之對應)。 

這個兩層的神經網路有6個隱含單元,一個線性輸出單元,誤差函式為平方和誤差函式。在高斯分佈的假設下,最小平方方法對應於最大似然方法。我們看到,對於不服從高斯分佈的逆問題,這種解法產生的模型非常差。

於是,我們尋找一個對條件概率密度建模的一般的框架。可以這樣做:

為p(t | x)建立一個混合模型,模型的混合係數,和每個分量的概率分佈都是輸入向量x的一個比較靈活的函式,這就構成了混合密度網路(mixture density network)。對於任意給定的x值,混合模型提供了一個通用的形式,用來對任意條件概率密度函式p(t | x)進行建模。

假設我們考慮一個足夠靈活的網路,那麼我們就有了一個近似任意條件概率分佈的框架。這裡,我們顯式地令模型的分量為高斯分佈,即:

這是異方差模型(heteroscedastic model)的一個例子,因為資料中的噪聲方差是輸入向量x的一個函式。

我們也可以使用高斯分佈以外的其他分佈,例如,如果目標變數是二值的而不是連續的,我們就可以使用伯努利分佈。

下圖所示的神經網路可以是一個兩層的網路,網路具有S形(雙曲正切)隱含單元。

混合密度網路(mixture density network)可以表示一般的條件概率密度p(t | x),方法為:考慮t的一個引數化的混合模型,它的引數由以x為輸入的神經網路的輸出確定。 

如果混合模型

中有K個分量,且t有L個分量,那麼網路就會有K個輸出單元啟用(記作akπ)確定混合係數πk(x),有K個輸出(記作akσ)確定核寬度σk(x),有K × L個輸出(記作akjμ)確定核中心μk(x)的分量μkj(x)。網路輸出的總數為(L + 2)K,這與通常的網路的L個輸出不同。通常的網路只是簡單地預測目標變數的條件均值。

混合係數必須滿足下面的限制。

可以通過使用一組softmax輸出來實現。 

類似地,方差必須滿足σk2(x) ≥ 0,因此可以使用對應的網路啟用的指數形式表示,即:

最後,由於均值μk(x)有實數分量,因此它們可以直接用網路的輸出啟用表示:

混合密度網路的可調節引數由權向量w和偏置組成。這些引數可以通過最大似然法確定,或者等價地,使用最小化誤差函式(負對數似然函式)的方法確定。對於獨立的資料,誤差函式的形式為:

為了最小化誤差函式,我們需要計算誤差函式E(w)關於w的分量的導數。

如果我們得到了誤差函式關於輸出單元啟用的導數的表示式,那麼我們就可以通過標準的反向傳播方法來計算誤差函式關於w的分量的導數。

誤差函式關於輸出單元啟用的導數代表了每個模式和每個輸出單元的誤差訊號σ,並且可以反向傳播到隱含單元,從而誤差函式的導數可以按照通常的方式進行計算。

由於誤差函式由一組項的求和式構成,每一項都對應一個訓練資料點,因此我們可以考慮對於特定的模式n的導數,然後通過求和的方式找到E的導數。

由於我們處理的是混合概率分佈,因此比較方便的做法是把混合係數πk(x)看成與x相關的先驗概率分佈,從而就引入了對應的後驗概率,形式為:

關於控制混合係數的網路輸出啟用的導數為:

類似地,關於控制分量均值的網路輸出啟用的導數為:

最後,關於控制分量方差的網路啟用函式為:

我們回到前面逆問題的簡單例子,來說明混合密度網路的應用。下圖給出了混合係數πk(x)、均值μk(x)和對應於p(t | x)的條件概率輪廓線。

 (a)對應於一個混合密度網路的三個核函式,混合係數πk(x)與x的函式關係影像。模型有三個高斯分量,使用了一個多層感知器,在隱含層有五個“tanh”單元,同時有9個輸出單元(對應於高斯分量的3個均值、3個方差以及3個混合係數)。在較小的x值和較大的x值處,目標資料的條件概率密度是單峰的,對於它的先驗概率分佈,只有一個核具有最大的值。而在中間的x值處,條件概率分佈具有3個峰,3個混合係數具有可比的值。(b)使用與混合係數相同的顏色表示方法來表示均值μk (x)。 (c)對於同樣的混合密度網路,目標資料的條件概率密度的影像。(d)條件概率密度的近似條件峰值的影像,用紅色點表示。 

神經網路的輸出,即混合模型的引數,是輸入變數的連續單值函式。然而,從上圖(c)中我們可以看到,通過調整混合分量πk(x)的大小,模型能夠產生一個對於某些x是單峰的,對於其他x值是多峰的概率分佈。

一旦混合密度網路訓練結束,他就可以預測對於任意給定的輸入向量的目標資料的條件密度函式。只要我們關注的是預測輸出向量的值的問題,那麼這個條件概率密度就能完整地描述用於生成資料的概率分佈。

根據這個概率密度函式,我們可以計算不同應用中我們感興趣的更加具體的量。一個最簡單的量就是目標資料的條件均值,即:

類似地,我們可以利用條件均值的結果,計算密度函式的方差,結果為:

我們已經看到,對於多峰分佈,用條件均值描述資料的效果很差。在這種情況下,條件眾數可能更有價值。

由於混合密度網路的條件眾數沒有一個簡單的解析解,因此需要數值迭代。一個簡單的替代方法是取每個x對應的最可能分量(即具有最大混合係數的分量)的均值。 

 

8. 貝葉斯神經網路

目前為止,我們對於神經網路的討論集中於使用最大似然方法來確定網路的引數(權值和偏置)。正則化的最大似然方法可以看成MAP(maximum posterior)方法,其中正則化項可以被看成先驗引數分佈的對數。然而,在貝葉斯方法中,為了進行預測,我們需要對引數的概率分佈進行積分或求和。

 

相關文章