關於神經網絡的討論


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)方法,其中正則化項可以被看成先驗參數分布的對數。然而,在貝葉斯方法中,為了進行預測,我們需要對參數的概率分布進行積分或求和。

 


免責聲明!

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



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