迷人的神經網絡——機器學習筆記1


目錄

迷人的神經網絡——機器學習筆記1

開始接觸神經網絡(Neural Network,NN)的入門例子 MNIST及其論文 Y. LeCun, L. Bottou, Y. Bengio and P. Haffner: Gradient-Based Learning Applied to Document Recognition, Proceedings of the IEEE, 86(11):2278-2324, November 1998 時,難免會有很多疑問:例如:

  • 什么是CNN、RNN、LSTM?什么是卷積(convolution)層、池化(pooling)層、全連接(fully connected)層、Dropout層?
  • 為什么需要激活函數?為什么ReLU不處處可微卻性能優良?
  • 什么是反向傳播?怎么實現?
  • 損失函數如何設置?
  • 優化算法如何選取?什么是貝葉斯正則化?如何設置學習率可以保證最速訓練且收斂到全局最優?
  • 學習率、Batch_Size和Epoch的如何設置?

帶着這些疑問找到了一本講述傳統神經網絡的書《神經網絡設計(第二版)》,讀之后感覺豁然開朗,學了多年的《線性代數》終於明白了怎么用,而且順便復習了很多學過的課程:線性代數、高等數學、概率論與數理統計、離散信號處理、隨機信號處理、數字圖像處理、數學物理方法等。收獲良多,故而整理下作為學習筆記。本文所有配圖及其版權歸原作者所有,本文僅供學習。另外中文翻譯版內容有些許錯誤,強烈建議對照着原版pdf一起學習。

原書名為《NEURAL NETWORK DESIGN (Second Edition)》,作者:Mattin T.Hagan、Howard B.Demuth、Mark H.Bearle 和 Orlando De Jesus。

配套的演示軟件、書籍pdf版及ppt下載頁面如下:

第1章 神經元模型及網絡結構

1.1 神經元模型

1.1.1 單輸入神經元

標量輸入 \(p\) 乘以權值(weight) \(w\) 得到 \(wp\),作為其中的一項進入累加器,另一個輸入"1"乘以一個偏置值(bias)\(b\) ,再送入累加器。累加器的輸出結果 \(n\) ,通常稱作 凈輸入 (net input) ,送給 傳輸函數(transfer function) \(f\) 作用后,產生標量 \(a\) ,作為神經元的輸出(一些作者使用“激活函數”而不是“傳輸函數”,“補償”而不是“偏置值”)。權值 \(w\) 對應生物神經元的突觸連接的強度,胞體由累加器和激活函數來表述,神經元的輸出 \(a\) 代表突觸上的信號。神經元的實際輸出依賴於不同激活函數的選擇。

\[a = f(wp+b) \]

圖1:神經元

1.1.2 激活函數

激活函數可以是一個關於凈輸入 $ n $ 的線性或非線性函數。

(1)硬限值:如果自變量小於0,神經元輸出0;如果函數大於等於0,神經元輸出1。

\[a= \begin{cases} 1 & n \ge 0\\ 0 & n < 0 \end{cases} \]

輸入/輸出特性如下

(2)線性:輸出等於輸入

\[a=n \]

輸入/輸出特性如下圖:

(3)對數-S型(log-sigmoid):

\[a=\frac{1}{1+e^{-n}} \]

輸入/輸出特性如下

(4)Tanh (hyperbolic tangent sigmoid 雙曲正切S型),用於循環神經網絡RNN(recurrent neural networks):

\[a=\frac{e^{n}-e^{-n}}{e^{n}+e^{-n}} \]

(5)ReLU (rectified linear units),目前卷積神經網絡CNN(convolutional neural networks)中喜歡使用的激活函數:

\[a= \begin{cases} n & n \ge 0\\ 0 & n < 0 \end{cases} \]

1.1.3 多輸入神經元

\(R\) 個輸入權值 \(p_{1}\)\(p_{2}\) ,... , \(p_{r}\)對應權值矩陣 \(W\)

共享神經元的偏置 \(b\)

\[a = f(Wp+b) \]

1.2 網絡結構

1.2.1 單層神經網絡

\(R\)個輸入,\(S\)個神經元的權值矩陣:

\[W=\left[ \begin{matrix} w11 & w12 & {\dots} & w1r \\ w21 & w22 & {\dots} & w2r\\ {\vdots} & {\vdots} & {} & {\vdots} \\ ws1 & ws2 & {\dots} & wsr \end{matrix} \right] \]

1.2.2 多層神經網絡

1.2.3 循環神經網絡(recurrent network , RNN)

延遲器:

\[a(t)=u(t-1) \]

假設時間步長的更新是離散的,並且只取整數值

積分器:

\[a(t)=\int{u(\tau)d(\tau)+a(0)} \]

\(a(0)\)代表初始條件

循環神經網絡是一個帶有反饋的網絡,它的部分輸出連接到它的輸入。
延遲器、積分器和循環神經網絡RNN如圖所示:

第2章 一個小例子

三種網絡:前饋網絡(感知機為代表)、競爭網絡(Hamming 網絡為代表)和循環神經網絡(Hopfield 網絡為代表)

2.1 問題描述:模式識別

水果的三種特征:形狀、紋理和重量

  • 形狀感知器:近似圓輸出 1 ,近似橢圓輸出 -1
  • 紋理感知器:表面光滑輸出 1 , 表面粗糙輸出 -1
  • 重量感知器:大於1磅輸出 1 , 小於1磅輸出 -1

輸入、標准的橘子和標准的蘋果為:

\[p= \left[ \begin{matrix} 形狀 \\ 紋理 \\ 重量 \end{matrix} \right], p_{橘子}= \left[ \begin{matrix} 1 \\ -1 \\ -1 \end{matrix} \right], p_{蘋果}= \left[ \begin{matrix} 1 \\ 1 \\ -1 \end{matrix} \right] \]

2.2 感知機

采用對稱硬限值激活函數 handlims 的單層感知機

2.2.1 兩個輸入的實例

單神經元的感知機能把輸入向量分為兩類

\[a=hardlinms(n)=hardlinms([w_{1,1} , w_{1,2}]p+b) \]

如果輸入權值矩陣(這里是一個行向量)和輸入向量的內積大於或者等於 \(-b\) ,則感知機的輸出為 1 ,如果內積小於 \(-b\) ,則輸出 -1 。這樣將空間划分為兩個部分

邊界條件為:

\[Wp+b=0 \]

2.2.2 模式識別實例

\[a=hardlinms(n)=hardlinms([w_{1,1} ,w_{1,2},w_{1,3}] \left[ \begin{matrix} p_{1} \\ p_{2} \\ p_{3} \end{matrix} \right]+b) \]

偏置值 \(b=0\) , 權值矩陣 \(W=[0,1,0]\),權值矩陣正交與決策邊界

感知機的決策邊界與標准向量:

2.3 Hamming 網絡

為了解決二值模式識別的問題而特別設計的(輸入向量中的每個元素都只有2個可能的取值)

包含一層前饋層和一層反饋層,兩層神經元個數相同,標准的Hamming 網絡如下:

Hamming 網絡的目標是判斷哪個標准向量最接近輸入向量。判斷結果由反饋層的輸出表示。對於每一個標准模式而言,在反饋層中都有與之對應的神經元。當反饋層收斂后,只有一個神經元會輸出非零值,該神經元就表示哪一個標准模式最接近輸入向量。

2.3.1 前饋層

前饋層用來計算每個標准模式輸入模式之間的相關性或內積。為了達到計算相關性的目的,前饋層中權值矩陣用連接矩陣 \(W^{1}\) 表示,該矩陣每一行設置為一個標准模式。在蘋果和橘子實例中:

\[\mathbf{W}^{1}=\left[ \begin{array}{c}{\mathbf{p}_{1}^{T}} \\ {\mathbf{p}_{2}^{T}}\end{array}\right]=\left[ \begin{array}{cc}{1} & {-1} & {-1} \\ {1} & {1} & {-1}\end{array}\right] \]

前饋層中使用線性傳輸函數,偏置向量中的每個元素都等於 \(r\) ,其中 \(r\) 等於輸入向量中元素的個數,偏置向量為:

\[\mathbf{b}^{1}=\left[ \begin{array}{l}{3} \\ {3}\end{array}\right] \]

通過選擇權值和偏置向量,前饋層的輸出為:

\[\mathbf{a}^{1}=\mathbf{W}^{1} \mathbf{p}+\mathbf{b}^{1}=\left[ \begin{array}{c}{\mathbf{p}_{1}^{T}} \\ {\mathbf{p}_{2}^{T}}\end{array}\right] \mathbf{p}+\left[ \begin{array}{l}{3} \\ {3}\end{array}\right]=\left[ \begin{array}{c}{\mathbf{p}_{1}^{T} \mathbf{p}+3} \\ {\mathbf{p}_{2}^{T} \mathbf{p}+3}\end{array}\right] \]

注意:前饋層的輸出等於每個標准模式和輸入向量的內積加上 \(r\) 。對於兩個長度(范數)相同的向量而言,當它們方向相同時內積最大,方向相反時內積最小。通過給內積加上 \(r\) ,來確保前饋層的輸出永遠不會為負數,這也是反饋層所需要的。

2.3.2 反饋層

反饋層正是所謂的 競爭層 。初始值為前饋層的輸出,這個輸出代表着標准模式和輸入向量的相關性。然后該層的神經元互相競爭決定一個勝者。競爭結束后,只會有一個神經元的輸出為零。獲勝的神經元表明了網絡輸入的類別。

\[a= \begin{cases} \mathbf{a}^{2}(0)=\mathbf{a}^{1} & (初始條件)\\ \mathbf{a}^{2}(t+1)=\operatorname{ReLU}\left(\mathbf{W}^{2} \mathbf{a}^{2}(t)\right) & n < 0 \end{cases} \]

其中上標表示網絡層數

權值矩陣為:

\[\mathbf{W}^{2}=\left[ \begin{array}{cc}{1} & {-\varepsilon} \\ {-\varepsilon} & {1}\end{array}\right] \]

其中 \(\varepsilon\) 是一個小於 $ 1/(s-1)$ 的數, \(s\) 為反饋層中神經元的個數。

反饋層一次迭代計算過程為:

\[\mathbf{a}^{2}(t+1)=\operatorname{ReLU}\left(\left[ \begin{array}{cc}{1} & {-\varepsilon} \\ {-\varepsilon} & {1}\end{array}\right] \mathbf{a}^{2}(t)\right)=\operatorname{ReLU}\left(\left[ \begin{array}{c}{a_{1}^{2}(t)-\varepsilon a_{2}^{2}(t)} \\ {a_{2}^{2}(t)-\varepsilon a_{1}^{2}(t)}\end{array}\right]\right) \]

向量中每一個元素都要同等比例減去另一個元素的一部分,值較大的元素減幅小一些,值較小的元素減幅大一些,因此值較大的元素與值較小元素之間的差異就會增大。反饋層的作用就在於將除了初始值最大的神經元外的其他所有神經元的輸出逐步縮小為0(最終輸出值最大的神經元對應着與輸入的 Hamming 距離最小的標准輸入模式)

運行過程如下:
考慮用於驗證感知機的橢圓形橘子

\[\mathbf{p}=\left[ \begin{array}{c}{-1} \\ {-1} \\ {-1}\end{array}\right] \]

前饋層的輸出為:

\[\mathbf{a}^{1}=\left[ \begin{array}{rrr}{1} & {-1} & {-1} \\ {1} & {1} & {-1}\end{array}\right] \left[ \begin{array}{c}{-1} \\ {-1} \\ {-1}\end{array}\right]+\left[ \begin{array}{l}{3} \\ {3}\end{array}\right] = \left[ \begin{array}{c}{(1+3)} \\ {(-1+3)}\end{array}\right] = \left[ \begin{array}{l}{4} \\ {2}\end{array}\right] \]

上式的結果是反饋層的初始條件:

反饋層第一次迭代結果:

\[\mathbf{a}^{2}(1)=\operatorname{ReLU}\left(\mathbf{W}^{2} \mathbf{a}^{2}(0)\right) = \begin{cases} \operatorname{ReLU}\left(\left[ \begin{array}{rr}{1} & {-0.5} \\ {-0.5} & {1}\end{array}\right] \left[ \begin{array}{l}{4} \\ {2}\end{array}\right]\right) \\ \\ \operatorname{ReLU}\left(\left[ \begin{array}{l}{3} \\ {0}\end{array}\right]\right)=\left[ \begin{array}{l}{3} \\ {0}\end{array}\right] \end{cases} \]

反饋層第二次迭代結果:

\[\mathbf{a}^{2}(1)=\operatorname{ReLU}\left(\mathbf{W}^{2} \mathbf{a}^{2}(1)\right) = \begin{cases} \operatorname{ReLU}\left(\left[ \begin{array}{rr}{1} & {-0.5} \\ {-0.5} & {1}\end{array}\right] \left[ \begin{array}{l}{3} \\ {0}\end{array}\right]\right) \\ \\ \operatorname{poslin}\left(\left[ \begin{array}{r}{3} \\ {-1.5}\end{array}\right]\right)=\left[ \begin{array}{l}{3} \\ {0}\end{array}\right] \end{cases} \]

由於后續迭代的輸出都相同,所以網絡是收斂的。因為只有第一神經元輸出了非零值,所以選擇第一個標注模式 橘子 作為匹配結果。因為 橘子 的標准模式與輸入模式的 Hamming 距離為 1 ,而蘋果的標准模式和輸入模式的 Hamming 距離為2 ,所以網絡做出的選擇是正確的。

2.4 Hopfield 網絡

循環網絡,可以完成 Hamming 網絡兩層結構才能完成的工作。Hopfield 網絡的一種變形如下圖:

使用輸入向量來初始化該網絡的神經元,然后網絡不斷迭代直到收斂。當網絡結果正確時,其輸出結果將會是某一個標准向量。

在 Hamming 網絡中由輸出非零值的神經元來表明選定了哪種標准模式,而 Hopfield 網絡則是直接生成一個選定的標准模式作為輸出。

網絡運算:

\[\begin{cases} \mathbf{a}(0)=\mathbf{p}\\ \mathbf{a}(t+1)=\operatorname{satlins}(\mathbf{W} \mathbf{a}(t)+\mathbf{b}) \end{cases} \]

satlins 表示對稱飽和輸出函數,其輸入輸出為:

\[a= \begin{cases} -1 & n<-1 \\ n & -1 \le n \le 1 \\ 1 & n>1 \end{cases} \]

Hamming 網絡的前饋層的權值為標准模式,在Hopfield 網絡中權值矩陣和偏置向量的設置要復雜許多。

2.5 總結

感知機是前饋網絡的一個實例。在這些網絡中,輸出是直接根據輸入計算得到的,中間沒有任何形式的反饋。前饋網絡可以用於模式識別,也可以用於函數逼近。函數逼近在自適應濾波和自動控制等領域已有所應用。

以 Hamming 網絡為代表的競爭網絡由兩個主要的特性。第一,它們計算了已存儲的標准模式和輸入模式之間的距離。第二,它們通過競爭來決定哪個神經元所代表的標准模式最接近輸入。

以 Hopfield 網絡為代表的循環網絡,最初是受統計力學的啟發。它們被用作聯想記憶,其中已存儲的數據可以通過與輸入數據的關聯關系而不是基於地址被提取。循環網絡已經被用來解決各種優化問題。

第3章 感知機學習規則

在不能可視化決策邊界的情況下,如何確定多輸入感知機網絡的權值矩陣和偏置值?
單層感知機網絡的優點和局限性

3.1 學習規則

指修改網絡權值和偏置值的方法和過程,也稱為訓練算法。學習規則是為了訓練網絡來完成某些任務。學習規則可以歸納為三大類:

  • 有監督學習
  • 無監督學習
  • 增強(評分)學習 :適合應用於決策等控制系統

3.2 感知機結構


網絡的輸出為:

\[\mathbf{a}=\mathbf{hardlim} (\mathbf{W} \mathbf{p}+\mathbf{b}) \]

網絡中的每個神經元把輸入空間划分成了兩個區域

3.2.1 單神經元感知機

考慮兩個輸入,輸出為:

\[\begin{aligned} a &= \operatorname{hardlim}(n)=\operatorname{hardlim}(\mathbf{W} \mathbf{p}+b) \\ &= \operatorname{hardlim}\left(\mathbf{w}^{T} \mathbf{p}+b\right)=\operatorname{hardlim}\left(w_{1,1} p_{1}+w_{1,2} p_{2}+b\right) \end{aligned} \]

決策邊界(descision boundary)通過網絡的凈輸入 \(n\) 等於 0 的輸入向量來確定

\[_{1} \mathbf{w}^{T} \mathbf{p}+b=0 \]

對於決策邊界上的所有點而言,輸入向量與權值向量間的內積都相等。

3.2.2 多神經元感知機

每個神經元都有一個決策邊界:

\[_{i} \mathbf{w}^{T} \mathbf{p}+b_{i}=0 \]

3.3 感知機學習規則

有監督訓練的學習過程是從一組能夠正確反映網絡行為的樣本集中獲得的:

\[\left\{\mathbf{p}_{1}, \mathbf{t}_{1}\right\},\left\{\mathbf{p}_{2}, \mathbf{t}_{2}\right\}, \ldots,\left\{\mathbf{p}_{Q}, \mathbf{t}_{Q}\right\} \]

其中 \({p}_{q}\) 是網絡的輸入, \(t_{q}\) 是該輸入相應的目標輸出。當每個輸入作用到網絡上時,將網絡的實際輸出與目標輸出相比較。為了使網絡的實際輸出盡量靠近目標輸出,學習規則將調整該網絡的權值和偏置值。

統一的學習規則:
定義感知機誤差 \(e\)

\[e=t-a \]

其中 \(t\) 代表目標輸出, \(a\) 代表實際輸出
權值學習規則:

\[_{1} \mathbf{w}^{n e w}=_{1} \mathbf{w}^{o l d}+e \mathbf{p}=_{1} \mathbf{w}^{o l d}+(t-a) \mathbf{p} \]

將偏置值看作一個輸入總是1的權值,則偏置值學習規則:

\[b^{n e w}=b^{o l d}+e \]

通常將權值和偏置值初始化為較小的隨機數

3.4 收斂性證明

可以證明:

該規則總能收斂到能實現正確分類的權值上(假設權值存在)
感知機的學習規則將在有限次迭代后收斂

局限性:

無法解決 “異或”門 (兩個輸入值相同輸出0,輸入值不同輸出1)問題

3.5 小結

決策邊界總與權值向量正交

單層感知機只能對線性可分的向量進行分類

學習規則:

\[\begin{cases} e=t-a \\ \mathbf{w}^{n e w}=\mathbf{w}^{o l d}+e \mathbf{p}=\mathbf{w}^{o l d}+(t-a) \mathbf{p} \\ b^{n e w}=b^{o l d}+e \end{cases} \]

第4章 Hebb 學習

Hebb 規則是最早的神經網絡學習規則之一,Donald Hebb 在1949年提出,作為一種可能的大腦神經元突觸調整機制,一直用於人工神經網路設計。Donald Hebb加拿大人,立志成為一名小說家,英語專業學士,心理學碩士(巴普洛夫條件反射),哈佛博士。1949年出版專著《The Origanization of Behavior》(《行為自組織》)。

Hebb 學習假說:
當神經細胞A的軸突足夠接近到能夠激發神經細胞B,且反復或持續地刺激細胞B,那么A或B中一個或者兩個細胞將會產生某種增長過程或代謝變化,從而增強細胞A對細胞B的刺激效果。

這一假說提出了一種在細胞層次進行學習的物理機制。直至今日,Hebb理論依然影響着神經科學的研究。

4.1 線性聯想器

Hebb 學習規則能適用於多種神經網絡結構。采用 線性聯想器(linear associator) 這個非常簡單的網絡結構來介紹 Hebb 學習。(James Anderson [Ande72] 和 Teuvo Kohonen[Koho72] 提出)

網絡的輸出向量 \(a\) 由輸入向量 \(p\) 根據下式決定:

\[a=Wp \]

也可以記作:

\[a_{i}=\sum_{j=1}^{R} w_{i j} p_{j} \]

線性聯想器屬於一類被稱為 聯想記憶(associative memory)模型的神經網絡。結構如圖所示:

4.2 Hebb 規則

如果突觸兩側的兩個神經元被同時激活,那么突觸的連接強度將會增加。

數學解釋:

\[w_{i j}^{n e w}=w_{i j}^{o l d}+\alpha f_{i}\left(a_{i q}\right) g_{j}\left(p_{j q}\right) \]

可以簡化為:

\[w_{i j}^{n e w}=w_{i j}^{o l d}+\alpha a_{i q} p_{j q} \]

其中 \(p_{j q}\) 是第 \(q\) 個輸入向量 \(p_{q}\) 中的第 \(j\) 個元素,\(a_{i q}\) 是網絡給定輸入向量 \(p_{q}\) 后輸出的第 \(i\) 個元素, \(\alpha\) 是一個被稱為學習率正常數。這個等式表明 權值 \(W_{ij}\) 的變化與突觸兩側傳輸函數值的乘積成正比

上式定義了一種 無監督學習規則:它並不需要目標輸出的任何信息。

對於有監督的 Hebb 規則,我們用目標輸出代替實際輸出。這樣,學習算法將了解網絡應該做什么,而不是當前網絡正在做什么。

\[w_{i j}^{n e w}=w_{i j}^{o l d}+t_{i q} p_{j q} \]

其中 \(t_{iq}\) 是第 \(q\) 個目標向量 \(t_{q}\) 中的第 \(i\) 個元素(為簡化,設學習率為1),向量形式為:

\[\mathbf{W}^{n e w}=\mathbf{W}^{o l d}+\mathbf{t}_{q} \mathbf{p}_{q}^{T} \]

如果假設權值矩陣初始值為0,將其應用於 \(Q\) 個輸入/輸出對,可得:

\[\mathbf{W}=\mathbf{t}_{1} \mathbf{p}_{1}^{T}+\mathbf{t}_{2} \mathbf{p}_{2}^{T}+\cdots+\mathbf{t}_{Q} \mathbf{p}_{Q}^{T}=\sum_{q=1}^{Q} \mathbf{t}_{q} \mathbf{p}_{q}^{T} \]

矩陣形式為:

\[\mathbf{W}=\left[ \begin{array}{llll}{\mathbf{t}_{1}} & {\mathbf{t}_{2}} & {\ldots} & {\mathbf{t}_{Q}}\end{array}\right] \left[ \begin{array}{c}{\mathbf{p}_{1}^{T}} \\ \\ {\mathbf{p}_{2}^{T}} \\ \\ {\mathbf{p}_{2}^{T}} \\ \\ {\vdots} \\ \\ {\mathbf{p}_{Q}^{T}}\end{array}\right] =\mathbf{T} \mathbf{P}^{T} \]

其中\(\mathbf{T}=\left[ \begin{array}{lll}{\mathbf{t}_{1}} & {\mathbf{t}_{2}} & {\dots} & {\mathbf{t}_{Q}}\end{array}\right]\)\(\mathbf{P} = \left[ \begin{array}{lll}{\mathbf{p}_{1}} & {\mathbf{p}_{2}} & {\dots} & {\mathbf{p}_{Q}}\end{array}\right]\)

性能分析

當輸入向量為標准正交向量時,Hebb 規則對每個輸入向量都能產生正確的輸出結果

\[\mathbf{a}=\mathbf{W} \mathbf{p}_{k}=\left(\sum_{q=1}^{Q} \mathbf{t}_{q} \mathbf{p}_{q}^{T}\right) \mathbf{p}_{k}=\sum_{q=1}^{Q} \mathbf{t}_{q}\left(\mathbf{p}_{q}^{T} \mathbf{p}_{k}\right) = \mathbf{t}_{k} \]

當輸入向量不正交時候的單位向量時,

\[\mathbf{a}=\mathbf{W} \mathbf{p}_{k}=\mathbf{t}_{k}+\sum_{q \neq k} \mathbf{t}_{q}\left(\mathbf{p}_{q}^{T} \mathbf{p}_{k}\right) \]

另外一項為誤差,大小取決於標准輸出模式之間相關性的總和。

4.3 偽逆規則

有些方法可以減小上述的誤差
選取一個能最小化以下性能指標的權值矩陣:

\[F(\mathbf{W})=\sum_{q=1}^{Q}\left\|\mathbf{t}_{q}-\mathbf{W} \mathbf{p}_{q}\right\|^{2} \]

當矩陣 \(P\)可逆時,矩陣 \(\mathbf{W P}=\mathbf{T}\) 的解為 \(\mathbf{w}=\mathbf{T} \mathbf{P}^{-1}\) 。然而通常情況下 \(P\) 不是一個方陣,所以不存在准確的逆矩陣。

偽逆規則[Albe72]:

\[\mathbf{W}=\mathbf{T} \mathbf{P}^{+} \]

其中 \(P+\) 是 Moore-Penrose 偽逆矩陣(廣義逆矩陣)。對於實數矩陣 \(P\) ,它的偽逆矩陣唯一存在。且滿足如下條件:

\[\begin{cases} \mathbf{P P}^{+} \mathbf{P}=\mathbf{P}\\ \mathbf{P}^{+} \mathbf{P} \mathbf{P}^{+}=\mathbf{P}^{+}\\ \mathbf{P}^{+} \mathbf{P}=\left(\mathbf{P}^{+} \mathbf{P}\right)^{T}\\ \mathbf{P} \mathbf{P}^{+}=\left(\mathbf{P} \mathbf{P}^{+}\right)^{T} \end{cases} \]

當矩陣 \(P\) 的行數 \(R\) 大於其列數 \(Q\) ,且 \(P\) 的列向量線性無關時,其偽逆矩陣為:

\[\mathbf{P}^{+}=\left(\mathbf{P}^{T} \mathbf{P}\right)^{-1} \mathbf{P}^{T} \]

注意 : 使用 偽逆規則 不需要對輸入向量進行歸一化

4.4 應用

自聯想記憶模型

4.5 Hebb 學習的變形

難題: 當訓練數據集包含大量輸入模式時,權值矩陣將會包含一些高數值元素,可以添加一項衰減器,讓學習規則表現得像一個平滑濾波器,使得最近一次的輸入變得更重要,而慢慢淡忘之前的輸入:

\[\mathbf{W}^{n e w}=\mathbf{W}^{o l d}+\alpha \mathbf{t}_{q} \mathbf{p}_{q}^{T}-\gamma \mathbf{W}^{o l d}=(1-\gamma) \mathbf{W}^{o l d}+\alpha \mathbf{t}_{q} \mathbf{p}_{q}^{T} \]

這限制了權值矩陣元素值的無限制增長。

過濾權值變化和調整學習率的思想非常重要

采用目標輸出與實際輸出之差來代替目標輸出:

\[\mathbf{W}^{n e w}=\mathbf{W}^{o l d}+\alpha\left(\mathbf{t}_{q}-\mathbf{a}_{q}\right) \mathbf{p}_{q}^{T} \]

這一規則被稱為增量規則。這一規則也以它的發明人命名,稱為 Widrow-Hoff 算法。

  • 增量規則通過調整權值來最小化均方誤差。這一規則與偽逆規則得到的結果相同,因為偽逆規則最小化的是誤差的平方和。
  • 增量規則的優勢在於每接收一個輸入模式,權值矩陣就會進行更新,而偽逆規則在接受到所有輸入/輸出對之后,進行一次計算而得到權值矩陣。這種依次更新方式使得增量規則能適用於動態變化的環境。

無監督學習 Hebb 學習中,網絡的目標輸出將由其實際輸出來代替:

\[\mathbf{W}^{n e w}=\mathbf{W}^{o l d}+\alpha \mathbf{a}_{q} \mathbf{p}_{q}^{T} \]

第5章 Widrow-Hoff 學習

把性能學習應用於單層神經網絡

Widrow-Hoff 學習算法 是一個以均方誤差為性能指標的近似最速下降算法。重要性體現在兩個方面:首先,該算法被廣泛應用於現今諸多信號處理的實際問題中;其次,它是多層網絡學習算法——BP算法的前導工作。

ADALINE (自適應線性神經網絡)和 LMS (Least Mean Square 最小均方)

ADALINE 與感知機相似,傳輸函數是線性函數而不是硬限值函數。只能解決線性可分問題

LMS 算法在信號處理領域應用中取得了巨大成功。

5.1 ADALINE 網絡

\[\mathbf{a}=\operatorname{purelin}(\mathbf{W} \mathbf{p}+\mathbf{b})=\mathbf{W} \mathbf{p}+\mathbf{b} \]

其中 \(\operatorname{purelin}\) 代表 線性傳輸函數。網絡結構如圖:

5.2 均方誤差

LMS 算法是一個有監督的訓練算法。其學習規則將使用一個表征網絡正確行為的樣本集合:

\[\left\{\mathbf{p}_{1}, \mathbf{t}_{1}\right\},\left\{\mathbf{p}_{2}, \mathbf{t}_{2}\right\}, \ldots,\left\{\mathbf{p}_{Q}, \mathbf{t}_{Q}\right\} \]

其中 \(\mathbf{p}_{Q}\) 表示網絡的一個輸入,而 \(\mathbf{t}_{Q}\) 是對應的目標輸出。對於每一個網絡輸入,網絡的實際輸出將與對應的目標輸出相比較,其差值稱為 誤差

LMS 算法將會調整 ADALINE 網絡 的權值和偏置值來最小化均方誤差。

首先考慮單個神經元的情況。為了簡化,將所有需要調整的參數(包括偏置值)構成一個向量

\[\mathbf{x}=\left[ \begin{array}{c}{\mathbf{w}} \\ {b}\end{array}\right] \]

類似地,將偏置值輸入"1" 作為向量的一部分

\[\mathbf{z}=\left[ \begin{array}{l}{\mathbf{p}} \\ {1}\end{array}\right] \]

網絡的輸出為

\[a=_{1} \mathbf{w}^{T} \mathbf{p}+b \]

也可以記為

\[a=\mathbf{x}^{T} \mathbf{z} \]

均方誤差(mean sqare error)為

\[F(\mathbf{x})=E\left[e^{2}\right]=E\left[(t-a)^{2}\right]=E\left[\left(t-\mathbf{x}^{T} \mathbf{z}\right)^{2}\right] \]

其中,期望值在所有輸入/目標對的集合上求得。(這里我們使用 \(E[ \quad ]\) 表示期望,使用期望的一個廣義定義,即確定信號的時間平均值,參考[WiSt85]),上式可擴展為:

\[F(\mathbf{x})=E\left[t^{2}-2 t \mathbf{x}^{T} \mathbf{z}+\mathbf{x}^{T} \mathbf{z} \mathbf{z}^{T} \mathbf{x}\right] =E\left[t^{2}\right]-2 \mathbf{x}^{T} E[t \mathbf{z}]+\mathbf{x}^{T} E\left[\mathbf{z} \mathbf{z}^{T}\right] \mathbf{x} \]

可以簡化為:

\[F(\mathbf{x})=c-2 \mathbf{x}^{T} \mathbf{h}+\mathbf{x}^{T} \mathbf{R} \mathbf{x} \]

其中 \(c=E\left[t^{2}\right]\)\(h=E[tz]\)\(R = E[tz]\)
這里,向量 \(h\) 給出了輸入向量和對應目標輸出之間的相關性, \(R\) 是輸入相關矩陣(correlation matrix) 。矩陣的對角線元素等於輸入向量的均方值。

ADALINE 網絡 的均方誤差是一個二次函數,其中,\(d=-2h\)\(A=2R\)

這里, Hessian 矩陣是相關矩陣 \(R\) 的兩倍。顯然,所有相關矩陣式正定或半正定的,即它們不會有負的特征值。因此,性能指標存在兩種可能性:若相關矩陣只有正的特征值,性能指標將有一個唯一的全局極小點;若相關矩陣有一個特征值為0,那么性能矩陣將有一個弱極小點或者沒有極小點,這取決於向量 \(d=-2h\)

現在來確定駐點。性能指標的梯度為

\[\nabla F(\mathbf{x})=\nabla\left(c+\mathbf{d}^{T} \mathbf{x}+\frac{1}{2} \mathbf{x}^{T} \mathbf{A} \mathbf{x}\right)=\mathbf{d}+\mathbf{A} \mathbf{x}=-2 \mathbf{h}+2 \mathbf{R} \mathbf{x} \]

\(F(\mathbf{x})\) 的駐點可以通過令梯度等於0來求得:

\[-2 \mathbf{h}+2 \mathbf{R} \mathbf{x}=0 \]

若相關矩陣是正定的,則存在唯一駐點,而且它是一個強極小值點:

\[\mathbf{x}^{*}=\mathbf{R}^{-1} \mathbf{h} \]

值得注意的是,唯一解是否存在僅取決於相關矩陣 \(R\) 。因此,輸入向量的性質決定了是否存在唯一解。

5.3 LMS 算法

Widrow 和 Hoff 的關鍵思想在於使用下式估計均方誤差 \(F(x)\)

\[\hat{F}(\mathbf{x})=(t(k)-a(k))^{2}=e^{2}(k) \]

其中,均方誤差的期望被第 \(k\) 次迭代的均方誤差所代替。每次迭代都有一個如下形式的梯度估計:

\[\hat{\nabla} F(\mathbf{x})=\nabla e^{2}(k) \]

該梯度有時被稱為 隨機梯度 (stochastic gradient)。當該梯度用於梯度下降算法的時候,每當一個樣本輸入網絡,權值都會被更新。
\(\nabla e^{2}(k)\) 的前 \(R\) 個元素是關於網絡權值的導數值,而第 \((R+1)\) 個元素是關於偏置值的導數值。於是有

\[\left[\nabla e^{2}(k)\right]_{j}=\frac{\partial e^{2}(k)}{\partial w_{1, j}}=2 e(k) \frac{\partial e(k)}{\partial w_{1, j}} \text { for } j=1,2, \ldots, R \]

\[\left[\nabla e^{2}(k)\right]_{R+1}=\frac{\partial e^{2}(k)}{\partial b}=2 e(k) \frac{\partial e(k)}{\partial b} \]

接下來考慮其中的偏導數項。首先計算 \(e(k)\) 對於網絡權值 \(w_{1, j}\) 的偏導數

\[\frac{\partial e(k)}{\partial w_{1, j}}=\frac{\partial[t(k)-a(k)]}{\partial w_{1, j}}=\frac{\partial}{\partial w_{1, j}}\left[t(k)-\left(_{1} \mathbf{w}^{T} \mathbf{p}(k)+b\right)\right]\\ =\frac{\partial}{\partial w_{1, j}}\left[t(k)-\left(\sum_{i=1}^{R} w_{1, i} p_{i}(k)+b\right)\right] \]

其中 \(p_{i}(k)\) 是第 \(k\) 次迭代中輸入向量的第 \(i\) 個元素,上式可簡化為:

\[\frac{\partial e(k)}{\partial w_{1, j}}=-p_{j}(k) \]

梯度的最后一項為:

\[\frac{\partial e(k)}{\partial b}=-1 \]

注意,因為 \(p_{j}(k)\) 和 1 式輸入向量 \(z\) 的元素,所以第 \(k\) 次迭代的均方誤差的梯度可以記為:

\[\hat{\nabla} F(\mathbf{x})=\nabla e^{2}(k)=-2 e(k) \mathbf{z}(k) \]

計算均方誤差的公式用第 \(k\) 次迭代時的瞬時誤差來近似均方誤差的精妙之處:這個梯度的近似值的計算只需要將誤差與輸入相乘。

\(\nabla F(\mathbf{x})\) 的近似值可被用於最速下降算法。具有固定學習率的最速下降算法可寫作:

\[\mathbf{x}_{k+1}=\mathbf{x}_{k}-\alpha \nabla F\left.(\mathbf{x})\right|_{\mathbf{X}=\mathbf{X}_{k}} \]

如果用梯度的估計值替代梯度,可得:

\[\mathbf{x}_{k+1}=\mathbf{x}_{k}+2 \alpha e(k) \mathbf{z}(k) \]

或者

\[_{1} \mathbf{w}(k+1)=_{1} \mathbf{w}(k)+2 \alpha e(k) \mathbf{p}(k) \]

\[b(k+1)=b(k)+2 \alpha e(k) \]

最后兩個等式構成了最小均方(LMS)算法。將前面的結果擴展到多維可得矩陣的第 \(i\) 行的更新:

\[_{i} \mathbf{w}(k+1)=_{i} \mathbf{w}(k)+2 \alpha e_{i}(k) \mathbf{p}(k) \]

其中 \(e_{i}(k)\) 是第 \(k\) 次迭代時誤差的第 \(i\) 個元素。偏置的第 \(i\) 個元素的更新為:

\[b_{i}(k+1)=b_{i}(k)+2 \alpha e_{i}(k) \]

寫成矩陣形式為:

\[\mathbf{W}(k+1)=\mathbf{W}(k)+2 \alpha \mathbf{e}(k) \mathbf{p}^{T}(k) \]

\[\mathbf{b}(k+1)=\mathbf{b}(k)+2 \alpha \mathbf{e}(k) \]

其中 誤差 \(e\) 和偏置 \(b\) 是向量。

5.4 收斂性分析

權值向量的期望值將收斂於

\[\mathbf{x}^{*}=\mathbf{R}^{-1} \mathbf{h} \]

系統穩定的條件:

\[\alpha<1 / \lambda_{i} \]

\[0<\alpha<1 / \lambda_{\max } \]

若滿足上述穩定條件,LMS算法的穩態解為:

\[E\left[\mathbf{x}_{s s}\right]=[\mathbf{I}-2 \alpha \mathbf{R}] E\left[\mathbf{x}_{s s}\right]+2 \alpha \mathbf{h} \]

或者

\[E\left[\mathbf{x}_{s s}\right]=\mathbf{R}^{-1} \mathbf{h}=\mathbf{x}^{*} \]

5.5 自適應濾波器

ADALINE 網絡比感知機有更廣泛的應用。事實上,可以有把握地說,在實際應用中,ADALINE 是使用最廣泛的神經網絡之一。

ADALINE 網絡的一個主要應用領域是自適應濾波。知道現在,它仍被廣泛地應用。

首先我們需要介紹一個有 R 個輸入的 抽頭延遲線(tapped delay line) 模塊

輸入信號從左側輸入。抽頭延遲線的輸出端是一個 R 維的向量,由當前時刻的輸入信號和分別經過 1 到 R-1 時間步 延遲的輸入信號所構成。

把 抽頭延遲器 和 ADALINE 網絡 結合起來,我們就能設計一個 自適應濾波器(adaptive filter) 。濾波器的輸出為:

\[a(k)=\operatorname{purelin}(\mathbf{W} \mathbf{p}+b)=\sum_{i=1}^{R} w_{1, i} y(k-i+1)+b \]

上述網絡就是數字信號處理中的 有限沖擊響應濾波器(Finite Impluse Response , FIR)[WiSt85]。

5.5.1 自適應噪聲消除(例子)

例如,網絡最小化的輸出“誤差”,實際上是一個近似於我們試圖要恢復的信號!

假設醫生試圖檢查一個心煩意亂的研究生的腦電圖(Electronencephalogram , EEG)發現他想看的信號被 60Hz 噪聲源發出的噪聲所污染。下面通過一個自適應濾波來消除噪聲信號:

如圖所示,最初的 60Hz 信號樣本輸入一個自適應濾波器中,並通過調整它的元件來使“誤差” \(e\) 達到最小。因此,自適應濾波器的輸出是被噪聲污染的 EEG 信號 \(t\) 。 由於自適應濾波器僅僅知道初始的噪聲源 \(v\) ,在濾波器試圖通過重現被污染信號的過程中,它只能復制自適應濾波器的輸出 \(a\) 將接近於干擾噪聲 \(m\) 。通過這樣的方法,誤差 \(e\) 將接近於未被污染的初始 EEG 信號。

在噪聲源為單正弦波的情況下,由兩個權值且沒有偏置值的一個神經元足以實現這個濾波器。濾波器的輸入是噪聲源的當前值和前一時刻的值。

輸入相關矩陣 \(R\) 和 輸入/目標 的互相關向量 \(h\) 分別為 \(\mathbf{R}=\left[\mathbf{z z}^{T}\right]\)\(\mathbf{h}=E[t \mathbf{z}]\)
輸入向量由噪聲源和當前值和前一時刻的值構成:

\[\mathbf{z}(k)=\left[ \begin{array}{c}{v(k)} \\ {v(k-1)}\end{array}\right] \]

目標輸出是當前信號和過濾的噪聲信號之和:

\[t(k)=s(k)+m(k) \]

通過展開 \(R\)\(h\) 可得:

\[\mathbf{R}=\left[ \begin{array}{cc}{E\left[v^{2}(k)\right]} & {E[v(k) v(k-1)]} \\ {E[v(k-1) v(k)]} & {E\left[v^{2}(k-1)\right]}\end{array}\right] \]

\[\mathbf{h}=\left[ \begin{array}{c}{E[(s(k)+m(k)) v(k)]} \\ {E[(s(k)+m(k)) v(k-1)]}\end{array}\right] \]

然后可以得到權值的最小均方誤差算法的解

\[\mathbf{x}^{*}=\mathbf{R}^{-1} \mathbf{h} \]

將得到的 \(R\)\(h\)\(x^{*}\) 帶入可得最終均方誤差值

\[F(\mathbf{x})=c-2 \mathbf{x}^{T} \mathbf{h}+\mathbf{x}^{T} \mathbf{R} \mathbf{x} \]

該最小均方誤差值與 EEG 信號的均方值相同

5.5.2 回聲消除

在長途電話線和用戶地線之間連接的“混合”設備處的阻抗不匹配,所以長途電話線上的回聲普遍存在。在長距離線的末端,到來的信號被輸送到一個自適應濾波器及混合設備。濾波器的輸出是混合設備的輸出,因此,濾波器試圖消除混合設備輸出中與輸入信號相關的那部分信號,即回聲。

第6章 反向傳播(Back Propagation , BP)

和 LMS 算法學習法則一樣,反向傳播算法也是一種近似最速梯度下降算法,它采用均方誤差作為性能指標。LMS 算法和反向傳播算法的差異僅在於它們計算導數的方式。對於單層的線性網絡來說,誤差是網絡權值的顯示線性函數,它關於權值的導數可以輕易地通過計算得到。然而,多層網絡采用非線性的傳輸函數,網絡權值和誤差之間的關系更為復雜,為了計算導數,需要利用微積分中的鏈式法則。

1974年 Paul Werbos 的畢業論文中首次描述多層網絡訓練算法 [Werbo74]。然而直到80年代中期,反向傳播算法才被 David Rumelhart, Geoffrey Hinton 和 Ronald Williams
[RuHi86], David Parker [Park85], 還有 Yann Le Cun [LeCu85]重新發現並得到廣泛宣傳。

如今,通過反向傳播算法訓練的多層感知機網絡是應用最廣泛的神經網絡。

6.1 多層感知機

考慮三層網絡,第一層的權值矩陣記為 \(\mathbf{W}^{1}\) ,第二層的權值矩陣記為 \(\mathbf{W}^{2}\),將輸入的神經元個數與每層中神經元的個數依次列出,多層網絡結構記為:

\[R-S^{1}-S^{2}-S^{3} \]

6.1.1 模式分類

兩層網絡能解決異或問題,有多種不同的多層解決方法,以下是一個例子

6.1.2 函數逼近

在控制系統中,目標是找到合適的反饋函數,從而建立從測得輸出到控制輸入的映射。在自適應濾波中,目標是找到一個函數,建立從延遲輸入信號到合適的輸出信號的映射。

已經證明:只要有足夠多的隱層單元,一個隱層采用 S 型傳輸函數,輸出層采用線性傳輸函數的兩層網絡幾乎可以任意精度逼近任意函數[HoSt89]。

函數逼近網絡示例:

接下來需要設計一個算法來訓練這樣的網絡

6.2 反向傳播算法

多層網絡可以表達為:

\[\mathbf{a}^{m+1}=\mathbf{f}^{m+1}\left(\mathbf{W}^{m+1} \mathbf{a}^{m}+\mathbf{b}^{m+1}\right) \text { for } m=0,1, \ldots, M-1 \]

其中 M 是網絡的層數,第一層的神經元接收外部輸入:

\[\mathbf{a}^{0}=\mathbf{p} \]

最后一層神經元的輸出作為網絡的輸出:

\[\mathbf{a}=\mathbf{a}^{M} \]

6.2.1 性能指標

多層網絡的反向傳播算法是 LMS 算法的推廣,並且兩個算法都使用 均方誤差 作為性能指標。算法需要一組反應正確網絡行為的樣本:

\[\left\{\mathbf{p}_{1}, \mathbf{t}_{1}\right\},\left\{\mathbf{p}_{2}, \mathbf{t}_{2}\right\}, \ldots,\left\{\mathbf{p}_{Q}, \mathbf{t}_{Q}\right\} \]

其中 , \(P_{q}\) 是網絡的一個輸入, \(t_{q}\) 是對應的目標輸出。每一個輸入傳給網絡后,網絡的輸出都將和目標輸出進行比較。算法則調整網絡的參數以最小化均方誤差:

\[F(\mathbf{x})=E\left[e^{2}\right]=E\left[(t-a)^{2}\right] \]

其中 \(x\) 是網絡權值和偏置值構成的向量。如果網絡有多個輸出,則可以推廣為:

\[F(\mathbf{x})=E\left[\mathbf{e}^{T} \mathbf{e}\right]=E\left[(\mathbf{t}-\mathbf{a})^{T}(\mathbf{t}-\mathbf{a})\right] \]

和 LMS 算法一樣,我們用下式近似表示均方誤差:

\[\hat{F}(\mathbf{x})=(\mathbf{t}(k)-\mathbf{a}(k))^{T}(\mathbf{t}(k)-\mathbf{a}(k))=\mathbf{e}^{T}(k) \mathbf{e}(k) \]

原來的誤差平方的期望被第 \(k\) 次迭代時的誤差平方代替。

近似均方誤差的最速梯度下降算法(隨機梯度下降)為:

\[\begin{cases} w_{i, j}^{m}(k+1)=w_{i, j}^{m}(k)-\alpha \frac{\partial \hat{F}}{\partial w_{i, j}^{m}}\\ \\ b_{i}^{m}(k+1)=b_{i}^{m}(k)-\alpha \frac{\partial \hat{F}}{\partial b_{i}^{m}} \end{cases} \]

6.2.2 鏈式法則

單層線性網絡(ADALINE)的偏導數可以方便計算出來。對於多層網絡而言,誤差並不是隱層網絡權值的顯式函數,因此這些導數的計算並不那么容易。

由於誤差是隱層權值的間接函數,我們將用微積分中的鏈式法則來計算這些導數。假設有一個函數 \(f\) ,它僅僅是變量 \(n\) 的顯式函數。我們要計算 \(f\) 關於另一個變量 \(w\) 的導數,鏈式法則為:

\[\frac{d f(n(w))}{d w}=\frac{d f(n)}{d n} \times \frac{d n(w)}{d w} \]

\[f(n)=e^{n} \text { and } n=2 w, \text { so that } f(n(w))=e^{2 w} \]

\[\frac{d f(n(w))}{d w}=\frac{d f(n)}{d n} \times \frac{d n(w)}{d w}=\left(e^{n}\right)(2) \]

導數為

\[\frac{\partial \hat{F}}{\partial w_{i, j}^{m}}=\frac{\partial \hat{F}}{\partial n_{i}^{m}} \times \frac{\partial n_{i}^{m}}{\partial w_{i, j}^{m}} \]

\[\frac{\partial \hat{F}}{\partial b_{i}^{m}}=\frac{\partial \hat{F}}{\partial n_{i}^{m}} \times \frac{\partial n_{i}^{m}}{\partial b_{i}^{m}} \]

由於第 \(m\) 層的凈輸入是該層權值和偏置值的顯式函數,因此上式的第二項可以容易計算處:

\[n_{i}^{m}=\sum_{j=1}^{S^{m-1}} w_{i, j}^{m} a_{j}^{m-1}+b_{i}^{m} \]

因此

\[\frac{\partial n_{i}^{m}}{\partial w_{i, j}^{m}}=a_{j}^{m-1}, \frac{\partial n_{i}^{m}}{\partial b_{i}^{m}}=1 \]

定義

\[s_{i}^{m}=\frac{\partial \hat{F}}{\partial n_{i}^{m}} \]

\(\hat{F}\) 對第 \(m\) 層中凈輸入額第 \(i\) 個元素變化的敏感度(sensitivity) ,導數可以簡化為:

\[\frac{\partial \hat{F}}{\partial w_{i, j}^{m}}=s_{i}^{m} a_{j}^{m-1} \]

\[\frac{\partial \hat{F}}{\partial b_{i}^{m}}=s_{i}^{m} \]

近似梯度下降算法可以表示為:

\[w_{i, j}^{m}(k+1)=w_{i, j}^{m}(k)-\alpha s_{i}^{m} a_{j}^{m-1} \]

\[b_{i}^{m}(k+1)=b_{i}^{m}(k)-\alpha s_{i}^{m} \]

寫成矩陣形式:

\[\mathbf{W}^{m}(k+1)=\mathbf{W}^{m}(k)-\alpha \mathbf{s}^{m}\left(\mathbf{a}^{m-1}\right)^{T} \]

\[\mathbf{b}^{m}(k+1)=\mathbf{b}^{m}(k)-\alpha \mathbf{s}^{m} \]

其中

\[\mathbf{s}^{m} \equiv \frac{\partial \hat{F}}{\partial \mathbf{n}^{m}}=\left[ \begin{array}{c}{\frac{\partial \hat{F}}{\partial n_{1}^{m}}} \\ {\frac{\partial \hat{F}}{\partial n_{1}^{m}}} \\ {\vdots} \\ {\frac{\partial F}{\partial n_{s^{m}}^{m}}}\end{array}\right] \]

6.2.3 敏感度的反向傳播

現在剩下的工作就是計算敏感度 \(s^{m}\) ,這需要再次利用鏈式法則。反向傳播正是由這個過程而得名,因為它描述了一種遞歸關系,即第 \(m\) 層敏感度是由第 \(m+1\) 層敏感度計算得到的。
為了推導敏感度的遞歸關系,我們將使用 Jacobian (雅可比)矩陣

\[\frac{\partial \mathbf{n}^{m+1}}{\partial \mathbf{n}^{m}} \equiv \left[ \begin{array}{cc}{\frac{\partial n_{1}^{m+1}}{\partial n_{1}^{m}}} & {\frac{\partial n_{1}^{m+1}}{\partial n_{2}^{m}}} & \ldots & {\frac{\partial n_{1}^{m+1}}{\partial n_{S^{m}}^{m}}} \\ \\ {\frac{\partial n_{2}^{m+1}}{\partial n_{1}^{m}}} & {\frac{\partial n_{2}^{m+1}}{\partial n_{2}^{m}}} & \ldots & {\frac{\partial n_{2}^{m+1}}{\partial n_{S^{m}}^{m}}} \\ {\vdots} & {\vdots} & {\vdots} & {\vdots}\\ {\frac{\partial n_{s^{m+1}}^{m+1}}{\partial n_{1}^{m}}} & {\frac{\partial n_{s^{m+1}}^{m+1}}{\partial n_{2}^{m}}} & \ldots & {\frac{\partial n_{s^{m+1}}^{m+1}}{\partial n_{s^{m}}^{m}}}\end{array}\right] \]

接下來要找到一種計算表達式。考慮矩陣的第 \(i,j\) 項元素

\[\frac{\partial n_{i}^{m+1}}{\partial n_{j}^{m}}=\frac{\partial\left(\sum_{l=1}^{m+1} a_{l}^{m}+b_{i}^{m+1}\right)}{\partial n_{j}^{m}}=w_{i, j}^{m+1} \frac{\partial a_{j}^{m}}{\partial n_{j}^{m}}\\ =w_{i, j}^{m+1} \frac{\partial f^{m}\left(n_{j}^{m}\right)}{\partial n_{j}^{m}}=w_{i, j}^{m+1} f^{m}\left(n_{j}^{m}\right) \]

其中

\[\dot{f}^{m}\left(n_{j}^{m}\right)=\frac{\partial f^{m}\left(n_{j}^{m}\right)}{\partial n_{j}^{m}} \]

故這個雅可比矩陣可以寫為

\[\frac{\partial \mathbf{n}^{m+1}}{\partial \mathbf{n}^{m}}=\mathbf{W}^{m+1} \dot{\mathbf{F}}^{m}\left(\mathbf{n}^{m}\right) \]

其中

\[\dot{\mathbf{F}}^{m}\left(\mathbf{n}^{m}\right)= \left[ \begin{array}{cc}{\dot{f}^{m}\left(n_{1}^{m}\right)} & {0} & \ldots & {0} \\ \\ {0} & {\dot{f}^{m}\left(n_{2}^{m}\right)} & \ldots & {0} \\ {\vdots} & {\vdots} & {\vdots} & {\vdots}\\ {0} & {0} & \ldots & {\dot{f}^{m}\left(n_{S^{n}}^{m}\right)}\end{array}\right] \]

利用矩陣形式的鏈式法則寫出敏感詞之間的遞歸關系:

\[\mathbf{s}^{m}=\frac{\partial \hat{F}}{\partial \mathbf{n}^{m}}=\left(\frac{\partial \mathbf{n}^{m+1}}{\partial \mathbf{n}^{m}}\right)^{T} \frac{\partial \hat{F}}{\partial \mathbf{n}^{m+1}}=\dot{\mathbf{F}}^{m}\left(\mathbf{n}^{m}\right)\left(\mathbf{W}^{m+1}\right)^{T} \frac{\partial \hat{F}}{\partial \mathbf{n}^{m+1}} \\ =\dot{\mathbf{F}}^{m}\left(\mathbf{n}^{m}\right)\left(\mathbf{W}^{m+1}\right)^{T} \mathbf{s}^{m+1} \]

由此可以看出反向傳播算法名稱的由來。敏感度在網絡中從最后一層反向傳播到第一層:

\[\mathbf{s}^{M} \rightarrow \mathbf{s}^{M-1} \rightarrow \ldots \rightarrow \mathbf{s}^{2} \rightarrow \mathbf{s}^{1} \]

需要強調的是,反向傳播算法利用了和 LMS 算法相同的近似最速下降方法。唯一復雜的地方在於,為了計算梯度我們首先要反向傳播敏感度。反向傳播的精妙之處在於鏈式法則的有效實現。

還差一部我們便可以完成反向傳播算法。我們需要一個起始點 \(s^{M}\)來實現上述遞歸關系。它可以在最后一層得到:

\[s_{i}^{M}=\frac{\partial \hat{F}}{\partial n_{i}^{M}}=\frac{\partial(\mathbf{t}-\mathbf{a})^{T}(\mathbf{t}-\mathbf{a})}{\partial n_{i}^{M}}=\frac{\partial \sum_{i=1}^{n}\left(t_{j}-a_{j}\right)^{2}}{\partial n_{i}^{M}}=-2\left(t_{i}-a_{i}\right) \frac{\partial a_{i}}{\partial n_{i}^{M}} \]

由於

\[\frac{\partial a_{i}}{\partial n_{i}^{M}}=\frac{\partial a_{i}^{M}}{\partial n_{i}^{M}}=\frac{\partial f^{M}\left(n_{i}^{M}\right)}{\partial n_{i}^{M}}=\dot{f}^{M}\left(n_{i}^{M}\right) \]

可以得到

\[s_{i}^{M}=-2\left(t_{i}-a_{i}\right) \dot{f}^{M}\left(n_{i}^{M}\right) \]

寫成矩陣形式為

\[\mathbf{s}^{M}=-2 \dot{\mathbf{F}}^{M}\left(\mathbf{n}^{M}\right)(\mathbf{t}-\mathbf{a}) \]

6.2.4 總結

第一步將輸入向前傳過網絡:

\[\mathbf{a}^{0}=\mathbf{p} \]

\[\mathbf{a}^{m+1}=\mathbf{f}^{m+1}\left(\mathbf{W}^{m+1} \mathbf{a}^{m}+\mathbf{b}^{m+1}\right) \text { for } m=0,1, \ldots, M-1 \]

\[\mathbf{a}=\mathbf{a}^{M} \]

接着,將敏感度反向傳過網絡:

\[\mathbf{s}^{M}=-2 \dot{\mathbf{F}}^{M}\left(\mathbf{n}^{M}\right)(\mathbf{t}-\mathbf{a}) \]

\[\mathbf{s}^{m}=\dot{\mathbf{F}}^{m}\left(\mathbf{n}^{m}\right)\left(\mathbf{W}^{m+1}\right)^{T} \mathbf{s}^{m+1}, \text { for } m=M-1, \ldots, 2,1 \]

最后,利用近似最速下降規則更新網絡的權值和偏置值:

\[\mathbf{W}^{m}(k+1)=\mathbf{W}^{m}(k)-\alpha \mathbf{s}^{m}\left(\mathbf{a}^{m-1}\right)^{T} \]

\[\mathbf{b}^{m}(k+1)=\mathbf{b}^{m}(k)-\alpha \mathbf{s}^{m} \]

6.3 例子

為了演示反向傳播算法,需要選擇一個網絡並把它應用到一個實際的問題中。
我們需要一個網絡逼近於下面的函數:

\[g(p)=1+\sin \left(\frac{\pi}{4} p\right) \text { for }-2 \leq p \leq 2 \]

在多個 \(p\) 值處計算該函數以得到訓練集

在開始反向傳播算法之前,我們還需要選定網絡權值和偏置值的初始值。通常它們都被設置為比較小的隨機數,我們先將其設為:

\[\mathbf{w}^{1}(0)=\left[ \begin{array}{c}{-0.27} \\ {-0.41}\end{array}\right], \mathbf{b}^{1}(0)=\left[ \begin{array}{c}{-0.48} \\ {-0.13}\end{array}\right], \mathbf{w}^{2}(0)=[0.09-0.17], \mathbf{b}^{2}(0)=[0.48] \]

接下來我們需要選定一個訓練集\(\left\{p_{1}, t_{1}\right\},\left\{p_{2}, t_{2}\right\}, \ldots,\left\{p_{Q}, t_{Q}\right\}\)。我們在[-2,2]范圍內對函數進行21次間距為0.2的等距采樣。

雖然訓練樣本可以任意順序選擇,但通常會采用隨機的方法取選取。第一個輸入我們選擇 \(p=1\) ,即第16個訓練樣本:

\[a^{0}=p=1 \]

於是,第一個網絡層的輸出為

\[\mathbf{a}^{1}=\mathbf{f}^{1}\left(\mathbf{W}^{1} \mathbf{a}^{0}+\mathbf{b}^{1}\right)= \operatorname{logsig}\left(\left[ \begin{array}{c}{-0.27} \\ {-0.41}\end{array}\right] \left[ \begin{array}{c}{-0.48} \\ {-0.13}\end{array}\right]\right)=\operatorname{logsig}\left(\left[ \begin{array}{c}{-0.75} \\ {-0.54}\end{array}\right]\right)\\ \\ =\left[ \begin{array}{c}{\frac{1}{1+e^{0.7}}} \\ {\frac{1}{1+e^{0.54}}}\end{array}\right]=\left[ \begin{array}{c}{0.321} \\ {0.368}\end{array}\right] \]

第二層的輸出為

\[a^{2}=f^{2}\left(\mathbf{W}^{2} \mathbf{a}^{1}+\mathbf{b}^{2}\right)=\text { purelin }([0.09-0.17]] \left[ \begin{array}{c}{0.321} \\ {0.368}\end{array}\right]+[0.48] )=[0.446] \]

誤差為

\[e=t-a=\left\{1+\sin \left(\frac{\pi}{4} p\right)\right\}-a^{2}=\left\{1+\sin \left(\frac{\pi}{4} 1\right)\right\}-0.446=1.261 \]

反向傳播的下一步是回傳敏感度。在開始反向傳播之前,我們還需要計算傳輸函數的導數 \(\dot{f}^{\mathrm{1}}(n)\)\(\dot{f}^{2}(n)\) 。對第一層

\[\dot{f}^{1}(n)=\frac{d}{d n}\left(\frac{1}{1+e^{-n}}\right)=\frac{e^{-n}}{\left(1+e^{-n}\right)^{2}}=\left(1-\frac{1}{1+e^{-n}}\right)\left(\frac{1}{1+e^{-n}}\right)=\left(1-a^{1}\right)\left(a^{1}\right) \]

對第二層

\[\dot{f}^{2}(n)=\frac{d}{d n}(n)=1 \]

現在開始進行反向傳播,起點在第二層

\[\mathbf{s}^{2}=-2 \dot{\mathbf{F}}^{2}\left(\mathbf{n}^{2}\right)(\mathbf{t}-\mathbf{a})=-2\left[\dot{f}^{2}\left(n^{2}\right)\right](1.261)=-2[1](1.261)=-2.522 \]

然后可以計算出第一層的敏感度:

\[\mathbf{s}^{1}=\dot{\mathbf{F}}^{1}\left(\mathbf{n}^{1}\right)\left(\mathbf{W}^{2}\right)^{T} \mathbf{s}^{2}=\left[ \begin{array}{cc}{\left(1-a_{1}^{1}\right)\left(a_{1}^{1}\right)} & {0} \\ {0} & {\left(1-a_{2}^{1}\right)\left(a_{2}^{1}\right)}\end{array}\right] \left[ \begin{array}{c}{0.09} \\ {-0.17}\end{array}\right] \left[ \begin{array}{c}{-2.522}\end{array}\right]\\ \\ =\left[ \begin{array}{cc}{(1-0.321)(0.321)} & {0} \\ {0} & {(1-0.368)(0.368)}\end{array}\right] \left[ \begin{array}{c}{0.09} \\ {-0.17}\end{array}\right] \left[ \begin{array}{c}{-2.522}\end{array}\right]\\ \\ =\left[ \begin{array}{cc}{0.218} & {0} \\ {0} & {0.233}\end{array}\right] \left[ \begin{array}{c}{-0.227} \\ {0.429}\end{array}\right]=\left[ \begin{array}{c}{-0.0495} \\ {0.0997}\end{array}\right] \]

算法的最后一步是更新權值,設置學習率 \(\alpha =0.1\) 權值為:

\[\mathbf{w}^{2}(1)=\mathbf{w}^{2}(0)-\alpha \mathbf{s}^{2}\left(\mathbf{a}^{1}\right)^{T}\\ =[0.09-0.17]-0.1[-2.522][0.3210 .368] \\ =[0.171-0.0772] \]

\[\mathbf{b}^{2}(1)=\mathbf{b}^{2}(0)-\alpha \mathbf{s}^{2}=[0.48]-0.1[-2.522]=[0.732] \]

\[\mathbf{W}^{1}(1)=\mathbf{W}^{1}(0)-\alpha \mathbf{s}^{1}\left(\mathbf{a}^{0}\right)^{T}=\left[ \begin{array}{c}{-0.27} \\ {-0.41}\end{array}\right]-0.1 \left[ \begin{array}{c}{-0.0495} \\ {0.0997}\end{array}\right] \left[ \begin{array}{c}{-0.265} \\ {-0.420}\end{array}\right] \]

\[\mathbf{b}^{1}(1)=\mathbf{b}^{1}(0)-\alpha \mathbf{s}^{1}=\left[ \begin{array}{c}{-0.48} \\ {-0.13}\end{array}\right]-0.1 \left[ \begin{array}{c}{-0.0495} \\ {0.0997}\end{array}\right]=\left[ \begin{array}{c}{-0.475} \\ {-0.140}\end{array}\right] \]

這樣,就完成了反向傳播算法的第一次迭代。接着再從訓練集中隨機選取另一個輸入並執行一次新的算法迭代,直到網絡輸出和目標函數之間的差異達到可接受的程度。

6.4 批量訓練和增量訓練

網絡的連接權值和偏置值在每一個樣本傳過網絡后都被更新。我們也可以執行 批量訓練(batch training)先計算完整梯度(即在所有輸入都傳給網絡進行計算之后)再更新連接權值和偏置值。例如,假設每個樣本出現的概率是一樣的,均方誤差性能指標可以寫為

\[F(\mathbf{x})=E\left[\mathbf{e}^{T} \mathbf{e}\right]=E\left[(\mathbf{t}-\mathbf{a})^{T}(\mathbf{t}-\mathbf{a})\right]=\frac{1}{Q} \sum_{q=1}^{Q}\left(\mathbf{t}_{q}-\mathbf{a}_{q}\right)^{T}\left(\mathbf{t}_{q}-\mathbf{a}_{q}\right) \]

這個性能指標的總梯度為

\[\nabla F(\mathbf{x})=\nabla\left\{\frac{1}{Q} \sum_{q=1}^{Q}\left(\mathbf{t}_{q}-\mathbf{a}_{q}\right)^{T}\left(\mathbf{t}_{q}-\mathbf{a}_{q}\right)\right\}=\frac{1}{Q} \sum_{q=1}^{Q} \nabla\left\{\left(\mathbf{t}_{q}-\mathbf{a}_{q}\right)^{T}\left(\mathbf{t}_{q}-\mathbf{a}_{q}\right)\right\} \]

因此,均方誤差的總梯度等於每個樣本平方誤差梯度的平均。所以,為了實現反向傳播算法的批量訓練,我們首先對訓練集中的所有樣本先求計算前向傳播的值和反向傳播的敏感度,然后求單個樣本梯度的平均以得到總梯度。這樣,批量訓練最速下降算法的更新公式為

\[\mathbf{W}^{m}(k+1)=\mathbf{W}^{m}(k)-\frac{\alpha}{Q} \sum_{q=1}^{Q} \mathbf{s}_{q}^{m}\left(\mathbf{a}_{q}^{m-1}\right)^{T} \]

\[\mathbf{b}^{m}(k+1)=\mathbf{b}^{m}(k)-\frac{\alpha}{Q} \sum_{q=1}^{Q} \mathbf{s}_{q}^{m} \]

6.5 使用反向傳播

6.5.1 網絡結構的選擇

要逼近一個具有大量拐點的函數,需要隱層中有大量的神經元。

6.5.2 收斂性

網絡有逼近函數的能力,但是學習算法卻不一定能產生能准確逼近函數的網絡參數。

6.5.3 泛化

一個網絡要能夠泛化,它包含的參數個數應該少於訓練集中數據點的個數。

第7章 反向傳播算法的變形

反向傳播算法收斂速度慢

啟發式技術:可變的學習率、使用沖量以及改變變量范圍

數值優化技術:[Shan90], [Barn92], [Batt92] and [Char92] 等。
成功用於訓練多層感知機的數值優化技術:共軛梯度算法和 Levenberg-Marquardt 算法(牛頓法的一種變形)

算法差異在於它們利用得到的導數來更新權值的方式。

把基本的反向傳播算法稱為 最速下降反向傳播算法(steepest descent
backpropagation , SDBP)

7.1 反向傳播算法的缺點

為了防止進入鞍點區域,將初始權值和偏置設置成小的隨機值

平滑軌跡,防止振盪

7.2 反向傳播的啟發式改進

7.2.1 沖量(Momentum)

平滑軌跡上的振盪,提升算法的收斂性。

一階濾波器:

\[y(k)=\gamma y(k-1)+(1-\gamma) w(k) \]

\(w(k)\) 是濾波器的輸入, \(y(k)\)是濾波器的輸出, \(\gamma\) 是沖量系數且必須滿足如下條件

\[0 \leq \gamma<1 \]

將沖量用於參數更新時,可得 反向傳播算法的沖量改進(momentum modification to backpropagation , MOBP)

\[\Delta \mathbf{W}^{m}(k)=\gamma \Delta \mathbf{W}^{m}(k-1)-(1-\gamma) \alpha \mathbf{s}^{m}\left(\mathbf{a}^{m-1}\right)^{T} \]

\[\Delta \mathbf{b}^{m}(k)=\gamma \Delta \mathbf{b}^{m}(k-1)-(1-\gamma) \alpha \mathbf{s}^{m} \]

目標:使用較大的學習率同時保證算法的穩定性。

該方法傾向於在相同方向上進行梯度更新

7.2.2 可變學習率

可變學習率反向傳播算法(variable learning rate backpropagation algorithm ,VLBP)

7.2.3 數值優化技術

7.2.3.1 共軛梯度

不需要計算二階導數但擁有二階函數的收斂性質。共軛梯度反向傳播(conjugate gradient backpropagation , CGBP)

黃金分割搜索算法[Scal85]:

7.2.3.2 Levenberg-Marquardt 算法

LMBP
用於最小化非線性函數的平方和。此方法非常適合采用均方誤差為性能指標的神經網絡訓練。

\[\mathbf{x}_{k+1}=\mathbf{x}_{k}-\left[\mathbf{J}^{T}\left(\mathbf{x}_{k}\right) \mathbf{J}\left(\mathbf{x}_{k}\right)+\mu_{k} \mathbf{I}\right]^{-1} \mathbf{J}^{T}\left(\mathbf{x}_{k}\right) \mathbf{v}\left(\mathbf{x}_{k}\right) \]

\[\Delta \mathbf{x}_{k}=-\left[\mathbf{J}^{T}\left(\mathbf{x}_{k}\right) \mathbf{J}\left(\mathbf{x}_{k}\right)+\mu_{k} \mathbf{I}\right]^{-1} \mathbf{J}^{T}\left(\mathbf{x}_{k}\right) \mathbf{v}\left(\mathbf{x}_{k}\right) \]

其中 \(J(x)\) 為雅可比矩陣
誤差向量

\[\Delta \mathbf{x}_{k}=-\left[\mathbf{J}^{T}\left(\mathbf{x}_{k}\right) \mathbf{J}\left(\mathbf{x}_{k}\right)+\mu_{k} \mathbf{I}\right]^{-1} \mathbf{J}^{T}\left(\mathbf{x}_{k}\right) \mathbf{v}\left(\mathbf{x}_{k}\right) \]

參數向量

\[\mathbf{x}^{T}=\left[ \begin{array}{lll}{x_{1}} & {x_{2}} & {\dots} & {x_{n}}\end{array}\right]= \left[ \begin{array}{lllllll}{w_{1,1}^{1}w_{1,2}^{1}} & {\dots}&{w_{S^{1}, R}^{1} b_{1}^{1}} & {\dots} & {b_{S^{1}}^{1} w_{1,1}^{2}} & {\dots} & {b_{S^{M}}^{M}}\end{array}\right] \]

\(N=Q \times S^{M}\)\(S^{1}(R+1)+S^{2}\left(S^{1}+1\right)+\cdots+S^{M}\left(S^{M-1}+1\right)\)
雅可比矩陣的每一項都可以通過對反向傳播算法進行簡單改進求得:

\[[\mathbf{J}]_{h, l}=\frac{\partial v_{h}}{\partial x_{l}}=\frac{\partial e_{k, q}}{\partial w_{i, j}^{m}}=\frac{\partial e_{k, q}}{\partial n_{i, q}^{m}} \times \frac{\partial n_{i, q}^{m}}{\partial w_{i, j}^{m}}=\tilde{s}_{i, h}^{m} \times \frac{\partial n_{i, q}^{m}}{\partial w_{i, j}^{m}}=\tilde{s}_{i, h}^{m} \times a_{j, q}^{m-1} \]

如果 \(x_{l}\) 是偏置值,

\[[\mathbf{J}]_{h, l}=\frac{\partial v_{h}}{\partial x_{l}}=\frac{\partial e_{k, q}}{\partial b_{i}^{m}}=\frac{\partial e_{k, q}}{\partial n_{i, q}^{m}} \times \frac{\partial n_{i, q}^{m}}{\partial b_{i}^{m}}=\tilde{s}_{i, h}^{m} \times \frac{\partial n_{i, q}^{m}}{\partial b_{i}^{m}}=\tilde{s}_{i, h}^{m} \]

Marquardt 敏感度定義為:

\[\tilde{S}_{i, h}^{m} \equiv \frac{\partial v_{h}}{\partial n_{i, q}^{m}}=\frac{\partial e_{k, q}}{\partial n_{i, q}^{m}} \]

其中 \(h=(q-1) S^{M}+k\)
矩陣形式:
初始化

\[\tilde{S}_{q}^{M}=-\dot{\mathbf{F}}^{M}\left(\mathbf{n}_{q}^{M}\right) \]

行列反向傳播求解

\[\tilde{S}_{q}^{m}=\dot{\mathbf{F}}^{m}\left(\mathbf{n}_{q}^{m}\right)\left(\mathbf{W}^{m+1}\right)^{T} \tilde{S}_{q}^{m+1} \]

對每個輸入計算得到的矩陣進行增廣,可得每一層完整的 Marquardt 敏感度矩陣

\[\tilde{S}^{m}=\left[\tilde{S}_{1}^{m}\left|\tilde{S}_{2}^{m}\right| \ldots | \tilde{S}_{Q}^{m}\right] \]

第8章 泛化(generalization)

神經元數量過多時,在訓練數據上容易過擬合。泛化能力出眾的網絡應當在訓練數據和新的數據上具有同樣優異的表現。

Ockham's razor 奧卡姆剃刀 :如無必要,勿增實體!

產生最簡神經網絡:生長法、剪枝法、全局搜索法、正則化法和提前終止法
后兩種方法約束網絡權值大小來實現網絡最簡化

8.1 提升泛化性能的方法

75%訓練 15%驗證 15%測試

8.1.1 提前終止法(Early Stopping)

交叉驗證

8.1.2 正則化法 (Regularization)

添加一個包含逼近函數導數的懲罰項,或者說正則化項,以平滑所得到的函數。

\[F(\mathbf{x})=\beta E_{D}+\alpha E_{W}=\beta \sum_{q=1}^{Q}\left(\mathbf{t}_{q}-\mathbf{a}_{q}\right)^{T}\left(\mathbf{t}_{q}-\mathbf{a}_{q}\right)+\alpha \sum_{i=1}^{n} x_{i}^{2} \]

比率 $\alpha / \beta $ 用於控制網絡解的有效復雜度。比率越大,網絡響應越平滑。

8.1.3 貝葉斯分析(Bayesian Analysis)

如果存在兩個隨機事件 A 和 B ,那么已知事件 B 發生的情況下,事件 A 發生的條件概率為

\[P(A | B)=\frac{P(B | A) P(A)}{P(B)} \]

8.1.4 貝葉斯正則化

第一層貝葉斯框架
第二層貝葉斯框架

最大似然估計

好復雜。。。

然后看不懂了。。。太難了,公式推不動!!!有空再補

第9章 動態網絡

輸出不但依賴於當前的網絡輸入,還依賴於之前的輸入、輸出及狀態等。(有記憶性)

動態網絡可以逼近一個 動力學系統。有眾多應用:金融系統的預測、通信系統的信道均衡、電力系統的相位探測、排序、故障檢測、語音識別、自然語言中的語法學習、遺傳學中蛋白質結構預測。

9.1 分層數字動態網絡(Layered Digital Dynamic Networks (LDDN))

可以方便地表示具有多個反饋連接及抽頭延遲線(tapped delay lines , TDL)的網絡。

\[\mathbf{n}^{m}(t)=\sum_{l \in L_{m}^{f} d \in D L_{m, l}} \mathbf{L} \mathbf{W}^{m, l}(d) \mathbf{a}^{l}(t-d)++\sum_{l \in I_{m} d \in D I_{m, l}} \mathbf{I} \mathbf{W}^{m, l}(d) \mathbf{p}^{l}(t-d)+\mathbf{b}^{m} \]

\(m\) 層的輸出計算為

\[\mathbf{a}^{m}(t)=\mathbf{f}^{m}\left(\mathbf{n}^{m}(t)\right) \]

示例

靜態網絡可以逼近靜態函數。動態網絡可以通過訓練逼近動力學系統,如機械臂、飛行器、生物過程、經濟體系等,這些系統的輸出依賴於之前輸入和輸出的歷史。

9.2 動態網絡的反向傳播算法

動態網絡的反向傳播算法:時間反向傳播算法(backpropagation-throughtime , BPTT)和 實時回復學習(real-time recurrent learning , RTRL)

第10章 競爭網絡

使用聯想學習規則進行自適應學習,以實現模式分類。
競爭網絡、特征圖網絡以及學習向量量化(Learning Vector Quantization , LVQ)網絡

Hamming 網絡是最簡單的競爭網絡之一,其輸出層的神經元通過互相競爭從而產生一個勝者。這個勝者表明了何種標准模式最能代表輸入模式。

10.1 Hamming 網絡

Hamming 網絡包含兩層,第一層(是一個 instat 層)將輸入向量和標准向量相互關聯起來。第二層采用競爭方式確定最接近於輸入向量的標准向量。

10.1.1 第一層

單個instar只能識別一種模式。為了實現多個模式,需要多個 instar ,Hamming 網絡實現了這一點。
假設要讓網絡識別如下的標准向量

\[\left\{\mathbf{p}_{1}, \mathbf{p}_{2}, \dots, \mathbf{p}_{Q}\right\} \]

則第一層的權值矩陣 \(W^{1}\) 和偏置向量 \(b^{1}\) 為:

\[\mathbf{W}^{1}=\left[ \begin{array}{c}{ _{1}\mathbf{w}^{T}} \\ { _{2}\mathbf{w}^{T}} \\ {\vdots} \\ {_{s}\mathbf{w}^{T}}\end{array}\right]=\left[ \begin{array}{c}{\mathbf{p}_{1}^{T}} \\ {\mathbf{p}_{2}^{T}} \\ {\vdots} \\ {\mathbf{p}_{Q}^{T}}\end{array}\right], \mathbf{b}^{1}=\left[ \begin{array}{c}{R} \\ {R} \\ {\vdots} \\ {R}\end{array}\right] \]

其中, \(\mathbf{W}^{1}\) 的每一行代表了一個想要識別的標准向量, \(B^{1}\) 中的每一個元素都設為等於輸入向量的元素個數R (神經元的數量 S 等於將要被識別的標准向量個數 Q )
因此,第一層的輸出為:

\[\mathbf{a}^{1}=\mathbf{W}^{1} \mathbf{p}+\mathbf{b}^{1}=\left[ \begin{array}{c}{\mathbf{p}_{1}^{T} \mathbf{p}+R} \\ {\mathbf{p}_{2}^{T} \mathbf{p}+R} \\ {\vdots} \\ {\mathbf{p}_{Q}^{T} \mathbf{p}+R}\end{array}\right] \]

注意,第一層的輸出等於標准向量於輸入的乘積再加上R

10.1.2 第二層

在instar 中,使用了 hardlim 傳輸函數來決定輸入向量是否足夠接近於標准向量。 Hamming 網絡的第二個層擁有多個 instar ,因此需要確定哪個標准向量於輸入最接近。我們會用一個競爭層代替一個 hardlim 傳輸函數以選擇最接近的標准向量。

第二層是一個競爭層,這一層的神經元使用前饋層的輸出進行初始化,這些輸出指明了標准模式和輸入向量間的相互關系。然后這一層的神經元之間相互競爭以決出一個勝負,即競爭過后只有一個神經元具有非零輸出。獲勝的神經元指明了輸入數據所屬的類別(每一個標准向量代表一個類別)
首先使用第一層的輸出 \(a^{1}\) 初始化第二層

\[\mathbf{a}^{2}(0)=\mathbf{a}^{1} \]

然后更新第二層的輸出

\[\mathbf{a}^{2}(t+1)=\operatorname{poslin}\left(\mathbf{W}^{2} \mathbf{a}^{2}(t)\right) \]

第二層的權值矩陣 \(W^{2}\) 的對角線上的元素都被設為1 ,非對角線上的元素被設為一個很小的負數。

\[w_{i j}^{2}=\left\{\begin{aligned} 1, & \text { if } i=j \\-\varepsilon, & \text { otherwise } \end{aligned}\right., \text { where } 0<\varepsilon<\frac{1}{S-1} \]

該矩陣產生 側向抑制 (lateral inhibition) ,即每一個神經元的輸出都會對所有其他神經元產生一個抑制作用。最終穩定時,只有一個 神經元有非零輸出。

10.2 競爭層 (competition)

由於其每個神經元都激活自身並抑制其他所有神經元。
定義一個傳輸函數來實現回復競爭層的功能:

\[\mathbf{a}=compet(\mathbf{n}) \]


它找到擁有最大凈輸入的神經元的索引 \(i^{*}\) ,並將該神經元的輸出置為 1(平局時選索引最小的神經元),同時將其他所有神經元的輸出置為0

\[a_{i}=\left\{\begin{array}{l}{1, i=i^{*}} \\ {0, i \neq i^{*}}\end{array}\right., \text { where } n_{i^{*}} \geq n_{i}, \forall i, \text { and } i^{*} \leq i, \forall n_{i}=n_{i^{*}} \]

和 Hamming 網絡一樣,標准向量被存儲在 \(W\) 矩陣的行中。網絡凈輸入 \(n\) 計算了輸入向量 \(p\) 與每一個標准向量 \(_{i} W\)之間的距離(假設所有向量都被歸一化,長度為L)。每個神經元 \(i\) 的凈輸入 \(n_{i}\) 正比於 \(p\) 與標准向量 \(_{i}W\) 之間的夾角\(\theta _{i}\):

\[\mathbf{n}=\mathbf{W}_{\mathbf{p}}=\left[ \begin{array}{c}{_{1}\mathbf{w}^{T}} \\ {_{2} \mathbf{w}^{T}} \\ {\vdots} \\ {_{s}\mathbf{w}^{T}}\end{array}\right] \mathbf{p}=\left[ \begin{array}{c}{_{1}\mathbf{w}^{T} \mathbf{p}} \\ {_{2} \mathbf{w}^{T} \mathbf{p}} \\ {\vdots} \\ {_{s}\mathbf{w}^{T} \mathbf{p}}\end{array}\right]=\left[ \begin{array}{c}{L^{2} \cos \theta_{1}} \\ {L^{2} \cos \theta_{2}} \\ {\vdots} \\ {L^{2} \cos \theta_{S}}\end{array}\right] \]

競爭函數將方向上與輸入向量最接近的權值向量所對應的神經元輸出設置為1:

\[\mathbf{a}=\mathbf{c} \mathbf{o} \mathbf{m} \mathbf{p} \mathbf{e} \mathbf{t}(\mathbf{W} \mathbf{p}) \]

10.2.1 競爭學習

通過將 \(W\) 的行設置為期望的標准向量,可設計一個競爭網絡分類器。instar 學習規則:

\[_{i} \mathbf{w}(q)=_{i} \mathbf{w}(q-1)+\alpha a_{i}(q)\left(\mathbf{p}(q)-_{i} \mathbf{w}(q-1)\right) \]

使用 Kohonen 規則也能得到同樣結果:

\[_{i} \mathbf{w}(q)=_{i} \mathbf{w}(q-1)+\alpha\left(\mathbf{p}(q)-_{i} \mathbf{w}(q-1)\right)=(1-\alpha)_{i} \mathbf{w}(q-1)+\alpha \mathbf{p}(q) \]

\[_{i} \mathbf{w}(q)=_{i} \mathbf{w}(q-1) \quad i \neq i^{*} \]

因此,權值矩陣中最接近輸入向量的行(即與輸入向量的內積最大的行)向着輸入向量靠近,它沿着權值矩陣原來的行向量與輸入向量之間的連線移動。

10.2.2 競爭層存在的問題

學習度與最終權值向量穩定性之間折中。死神經元等。。。

10.2.3 生物學中的競爭層

加強中心、抑制周圍

10.3 自組織特征圖

10.4 學習向量量化(LVQ )

混合型網絡:使用 無監督和有監督學習來實現分類

第11章 徑向基網絡(通用函數逼近網絡)

隱層采用S型傳輸函數而輸出層采用線性傳輸函數的多層網絡是通用的函數逼近器。
另一類通用函數逼近網絡——徑向基(Radial Basis Networks ,RBF)函數

RBF 被用來解決多維空間中的精確插值問題。也就是說,通過徑向基插值創建的函數需要精確地通過訓練集中的所有的目標。[Powe87]

11.1 徑向基網絡

徑向基網絡是一個兩層網絡。徑向基函數(RBF)網絡和兩層感知機網絡有兩個主要的區別。第一,在RBF網絡的第一層,我們計算了輸入向量和權值矩陣的行向量之間的距離,而不是計算權值和輸入的內積(矩陣相乘)。第二,RBF對偏置采用乘積而非加的方式。因此,第一層中神經元 \(i\) 的凈輸入的計算如下所示:

\[n_{i}^{1}=\left\|\mathbf{p}-_{i} \mathbf{w}^{1}\right\| b_{i}^{1} \]

權值矩陣的每一行作為一個中心點,在這個點處的凈輸入值為0。偏置值對傳輸(基)函數實施一種縮放操作,即放大或縮小。

絕大多數關於RBF網絡的文獻使用了標准差、方差或分布參數等基本術語,而非偏置值。我們采用“偏置值”僅為了與其他網絡保持一致。

當使用高斯傳輸函數時,偏置值與標准差有如下關系:

\[b=1 /(\sigma \sqrt{2}) \]

RBF網絡中第一層所采用的傳輸函數不同於多層感知機(MLP)中在隱層一般采用的 S 型函數。有幾種不同類型的傳輸函數都可以采用[BrLo88]。考慮高斯函數:

\[a=e^{-n^{2}} \]

局部性(local)是該函數的關鍵特性。這意味着如果在任意方向非常遠離中心點的話,輸出將趨近於零,全局(global) S 型函數的輸出依然接近於 1 。

網絡的第二層是一個標准線性層:

\[\mathbf{a}^{2}=\mathbf{W}^{2} \mathbf{a}^{1}+\mathbf{b}^{2} \]

11.1.1 函數逼近

這種 RBF 已經被證明是通用的逼近器[PaSa93]。

如果RBF網絡第一層給擁有足夠多的神經元,可以逼近任意函數。

11.1.2 模式分類

11.2 訓練網絡

11.2.1 線性最小二乘法

矩陣增廣

\[\mathbf{x}=\left[ \begin{array}{c}{\mathbf{w}^{2}} \\ {b^{2}}\end{array}\right], \mathbf{z}_{q}=\left[ \begin{array}{c}{\mathbf{a}_{q}^{1}} \\ {1}\end{array}\right] \]

輸出

\[a_{q}^{2}=\left(_{1} \mathbf{w}^{2}\right)^{T} \mathbf{a}_{q}^{1}+b^{2} \]

可以寫為

\[a_{q}=\mathbf{x}^{T} \mathbf{z}_{q} \]

誤差平方和:

\[F(\mathbf{x})=\sum_{q=1}^{Q}\left(e_{q}\right)^{2}=\sum_{q=1}^{Q}\left(t_{q}-a_{q}\right)^{2}=\sum_{q=1}^{Q}\left(t_{q}-\mathbf{x}^{T} \mathbf{z}_{q}\right)^{2} \]

定義矩陣

\[\mathbf{t}=\left[ \begin{array}{c}{t_{1}} \\ {t_{2}} \\ {\vdots} \\ {t_{Q}}\end{array}\right], \mathbf{U}=\left[ \begin{array}{c}{\mathbf{u}^{T}} \\ {\mathbf{u}^{T}} \\ {2^{T}} \\ {\vdots} \\ {Q^{\mathbf{u}}}\end{array}\right]=\left[ \begin{array}{c}{\mathbf{z}_{1}^{T}} \\ {\mathbf{z}_{2}^{T}} \\ {\vdots} \\ {\mathbf{z}_{Q}^{T}}\end{array}\right], \mathbf{e}=\left[ \begin{array}{c}{e_{1}} \\ {e_{2}} \\ {\vdots} \\ {e_{Q}}\end{array}\right] \]

誤差可以寫為

\[\mathbf{e}=\mathbf{t}-\mathbf{U} \mathbf{x} \]

性能指標為:

\[F(\mathbf{x})=(\mathbf{t}-\mathbf{U} \mathbf{x})^{T}(\mathbf{t}-\mathbf{U} \mathbf{x}) \]

使用正則化方法防止過擬合:

\[F(\mathbf{x})=(\mathbf{t}-\mathbf{U} \mathbf{x})^{T}(\mathbf{t}-\mathbf{U} \mathbf{x})+\rho \mathbf{x}^{T} \mathbf{x} \]

最優權值為 \(\mathbf{x}^{*}\) 可從下式求得:

\[\left[\mathbf{U}^{T} \mathbf{U}+\rho \mathbf{I}\right] \mathbf{x}^{*}=\mathbf{U}^{T} \mathbf{t} \]

11.2.2 正交最小二乘法

11.2.3 聚類(Clustering)

訓練權值

\[_{i^{*}} \mathbf{w}^{1}(q)=_{i^{*}} \mathbf{w}^{1}(q-1)+\alpha\left(\mathbf{p}(q)-_{i^{*}} \mathbf{w}^{1}(q-1)\right) \]

計算中心點和它相鄰點的平均距離

\[d i s t_{i}=\frac{1}{n_{c}}\left(\sum_{j=1}^{n_{c}}\left\|\mathbf{p}_{j}^{i}-_{i} \mathbf{w}\right\|^{2}\right)^{\frac{1}{2}} \]

設置第一層的偏置值

\[b_{i}^{1}=\frac{1}{\sqrt{2} \operatorname{dis} t_{i}} \]

11.2.4 非線性優化

\[n_{i}^{1}=\left\|\mathbf{p}-_{i} \mathbf{w}^{1}\right\| b_{i}^{1}=b_{i}^{1} \sqrt{\sum_{j=1}^{s^{1}}\left(p_{j}-w_{i, j}^{1}\right)^{2}} \]

\[\frac{\partial n_{i}^{1}}{\partial w_{i, j}^{1}}=b_{i}^{1} \frac{1 / 2}{\sqrt{\sum_{j=1}^{S}\left(p_{j}-w_{i, j}^{1}\right)^{2}}} 2\left(p_{j}-w_{i, j}^{1}\right)(-1)=\frac{b_{i}^{1}\left(w_{i, j}^{1}-p_{j}\right)}{\left\|\mathbf{p}-_{i} \mathbf{w}^{1}\right\|} \]

\[\frac{\partial n_{i}^{1}}{\partial b_{i}^{1}}=\left\|\mathbf{p}-_{i} \mathbf{w}^{1}\right\| \]

梯度

\[\frac{\partial \hat{F}}{\partial w_{i, j}^{1}}=s_{i}^{1} \frac{b_{i}^{1}\left(w_{i, j}^{1}-p_{j}\right)}{\left\|\mathbf{p}-_{i} \mathbf{w}^{1}\right\|} \]

\[\frac{\partial \hat{F}}{\partial b_{i}^{1}}=s_{i}^{1}\left\|\mathbf{p}-_{i} \mathbf{w}^{1}\right\| \]

第12章 實際訓練問題

12.1 訓練前的步驟

12.1.1 數據選擇

訓練集、測試集、驗證集 70% 15% 15%

12.1.2 數據預處理

歸一化、非線性變換、特征提取、離散輸入/目標的編碼以及缺失數據的處理

歸一化(normalization):

  • 使得數據在-1~1內

\[\mathbf{p}^{n}=2\left(\mathbf{p}-\mathbf{p}^{m i n}\right) . /\left(\mathbf{p}^{\max }-\mathbf{p}^{\min }\right)-1 \]

  • 調整數據,使其具有特定的均值和方差——通常是0和1

\[\mathbf{p}^{n}=\left(\mathbf{p}-\mathbf{p}^{m e a n}\right) / \mathbf{p}^{s t d} \]

通用特征提取方法:主成分分析(PCA:principal component analysis (PCA) [Joll02])。將原始輸入向量變換為各成分之間互不相關的向量。

另一種在多層模式識別網絡輸出層使用的傳輸函數是 softmax 函數:

\[a_{i}=f\left(n_{i}\right)=\exp \left(n_{i}\right) \div \sum_{j=1}^{S} \exp \left(n_{j}\right) \]

softmax 傳輸函數的輸出可以解釋為每個類別的概率。每個輸出都在0~1之間,且所有輸出之和為1。

12.1.3 網絡結構選擇

(1)基本結構的選擇
擬合、模式識別、聚類和預測

擬合(fitting)又稱為函數逼近或者回歸。學習輸入集和輸出集之間的映射關系。對於擬合問題,目標輸出變量為連續值。

用於擬合問題的標准神經網絡結構式隱層采用 tansig 神經元、輸出層采用線性神經元的多層感知機。
徑向基網絡也可用於擬合問題。在徑向基隱層中使用高斯傳輸函數,輸出層使用線性傳輸函數。

模式識別(pattern recognition)也被稱為模式分類。

聚類(clustering):按照數據相似性對其進行划分。

預測(prediction)也屬於時間序列分析、系統辨識、濾波和動態建模。預測時間序列上未來的值。需要使用動態神經網絡。最簡單的用於非線性預測的網絡是聚焦延遲神經網絡。這是一個通用動態網絡的一部分,叫做聚焦網絡。其動態性只表現在一個靜態多層前饋網絡的輸入層。該網絡的優點是可以使用靜態反向傳播算法來訓練,因為網絡輸入的抽頭延遲線能夠被輸入延遲值的擴展向量代替。

聚焦延遲神經網絡(Focused Time-Delay Neural Network):

對於動態建模和控制問題, NARX網絡(Nonlinear AutoRegressive model with eXogenous input 外部輸入的非線性自回歸模型)是廣泛使用的一種方法。例如,輸入信號可以表示施加到馬達上的電壓。輸出可以表示機器人手臂的角位置。可以用靜態反向傳播算法訓練。這兩個抽頭延遲線可以替換為延遲輸入和目標的擴展向量。我們可以反饋目標而非網絡輸出(這需要采用動態反向傳播算法進行訓練),因為當訓練結束時網絡的實際輸出應該和目標相匹配。

(2)具體結構的選擇
例如,使用 SOFM 網絡進行聚類,那么網絡只有一層

12.2 網絡訓練

12.2.1 權值初始化

12.2.2 訓練算法選擇

在可用序列模式實現的算法中,最快的算法是擴展 Kalman 濾波算法

12.2.3 訓練終止條件

(1)限制條件
(2)梯度的范數

12.2.4 性能函數選擇

對於多層網絡,標准的性能指標是均方誤差,當訓練集的所有輸入都擁有同樣的可能性時,可以表示為:

\[F(\mathbf{x})=\frac{1}{Q S_{q=1}^{M}}\left(\mathbf{t}_{q}-\mathbf{a}_{q}\right)^{T}\left(\mathbf{t}_{q}-\mathbf{a}_{q}\right) \]

或者

\[F(\mathbf{x})=\frac{1}{Q S^{M}} \sum_{q=1}^{Q} \sum_{i=1}^{s^{n}}\left(t_{i, q}-a_{i, q}\right)^{2} \]

Minkowski 誤差(任意冪)

\[F(\mathbf{x})=\frac{1}{Q S_{q=1}^{M}} \sum_{q=1}^{Q} \sum_{i=1}^{s^{n}}\left|t_{i, q}-a_{i, q}\right|^{K} \]

以均方誤差作為性能指標在目標為連續的函數逼近問題上效果很好。然而,在目標是離散值的情況下,其他性能指標可能更合適。如在分類問題中使用 交叉熵(corss-entropy)[Bish95]

\[F(\mathbf{x})=-\sum_{q=1}^{Q} \sum_{i=1}^{M} t_{i, q} \ln \frac{a_{i, q}}{t_{i, q}} \]

使用交叉熵后通常在網絡最后一層使用 softmax 傳輸函數

12.2.5 網絡多次訓練與網絡委員會(Multiple Training Runs and Committees of Networks)

ephch
單次訓練的網絡不一定能獲得最優的性能,因為訓練過程中可能會陷入性能曲面的局部極小值。為了克服這個問題,最好能在不同初始化條件下多次訓練網絡,然后選擇性能最好的網絡。通常情況下訓練5~10次能夠獲得全局最優解[HaBo07]。

12.3 訓練結果分析

12.3.1 擬合

12.3.2 模式識別

受試者工作特征曲線(Receiver Operating Characteristic Curve, ROC)

12.3.3 聚類

自組織圖(Self-Organizing Map ,SOM)網絡是最常用的一種網絡

12.3.4 預測

為了測試預測誤差在時間上的相關性,使用 自相關函數(autocorrelation function):

\[R_{e}(\tau)=\frac{1}{Q-\tau} \sum_{t=1}^{Q-\tau} e(t) e(t+\tau) \]

95% 置信區間邊界 [BoJe96]

\[-\frac{2 R_{e}(0)}{\sqrt{Q}}<R_{e}(\tau)<\frac{2 R_{e}(0)}{\sqrt{Q}} \]

為了檢驗預測誤差與輸入序列的相關性,可以使用 互相關函數(cross-correlation function):

\[R_{p e}(\tau)=\frac{1}{Q-\tau} \sum_{t=1}^{Q-\tau} p(t) e(t+\tau) \]

95% 置信區間邊界 [BoJe96]

\[-\frac{2 \sqrt{R_{e}(0)} \sqrt{R_{p}(0)}}{\sqrt{Q}}<R_{p e}(\tau)<\frac{2 \sqrt{R_{e}(0)} \sqrt{R_{p}(0)}}{\sqrt{Q}} \]

12.3.5 過擬合與外推

12.3.6 敏感性分析

附錄 : 數學基礎

這章附錄復習一下學過的《線性代數》及《高等數學》的知識,以便隨時速查

1.1 線性代數

1.1.1 內積(Inner Product)

\[\mathbf{x}^{T} \mathbf{y}=x_{1} y_{1}+x_{2} y_{2}+\cdots+x_{n} y_{n} \]

標量函數(scalar function)也是一種形式的內積:

\[\left(\chi_{\vartheta} y\right)=\int_{0}^{1} x(t) y(t) d t \]

1.1.2 范數(Norm)

基於向量長度的概念,滿足如下性質的標量函數 \(||\mathcal{X}||\) 稱為范數:

    1. $||\mathcal{X}|| >0 $
    1. $||\mathcal{X}|| =0 $,當且僅當 $\mathcal{X} =0 $
    1. 對於標量 \(a\)\(||a\mathcal{X}|| = |a| ||\mathcal{X}||\)
    1. \(||\mathcal{X}+\mathcal{Y}|| \le ||\mathcal{X}|| + ||\mathcal{Y}||\)

有很多函數滿足這些條件,一個常見的基於內積的范數是:

\[\|x\|=(x, x)^{1 / 2} \]

對於歐氏空間(Euclidean spaces),最熟悉的范數為:

\[\|\mathbf{x}\|=\left(\mathbf{x}^{T} \mathbf{x}\right)^{1 / 2}=\sqrt{x_{1}^{2}+x_{2}^{2}+\cdots+x_{n}^{2}} \]

在神經網絡中,對輸入向量歸一化( normalize)通常是有用的,也即對於每個輸入向量都有 \(||\mathbf{p}_{i}=1||\)

利用范數和內積的定義,可以把夾角的概念推廣到二維以上的向量空間中,兩個向量 $\mathcal{X} $ 和 \(\mathcal{Y}\) 的夾角定義為:

\[\cos \theta=\frac{(x, y)}{\|x\| y \|} \]

1.1.3 Gram-Schmidt 正交化

正交性和線性無關之間存在一種關系。一組線性無關的向量可以轉換為一組正交向量,它們能生成同一個向量空間。標准的轉化過程稱為 Gram-Schmidt 正交化。

假設有 n 個線性無關的向量 \(y_{1}\)\(y_{2}\),... ,\(y_{n}\) 。要把它們轉化為 n 個正交向量 \(v_{1}\)\(v_{2}\),... ,\(v_{n}\) 。首先選擇第一個線性無關向量作為第一個正交向量:

\[v_{1}=y_{1} \]

為了得到第二個正交向量,將 \(y_{2}\) 減去它在 \(v_{1}\) 方向上的分量。由此可得:

\[v_{2}=y_{2}-a v_{1} \]

其中 \(a\) 的選擇需要使 \(v_{2}\) 正交於 $v_{1} $ ,這需要滿足:

\[\left(v_{1}, v_{2}\right)=\left(v_{1}, y_{2}-a v_{1}\right)=\left(v_{1}, y_{2}\right)-a\left(v_{1}, v_{1}\right)=0 \]

或者

\[a=\frac{\left(v_{1}, y_{2}\right)}{\left(v_{1}, v_{1}\right)} \]

一次,為了得到 \(y_{2}\) 在 $v_{1} $ 方向上的分量 \(a v_{1}\) 需要求這兩個向量的內積。\(a v_{1}\)也稱為 \(y_{2}\)\(v_{1}\) 上的投影。
繼續這一過程,第 \(k\) 步為

\[v_{k}=y_{k}-\sum_{i=1}^{k-1} \frac{\left(v_{i}, y_{k}\right)}{\left(v_{i}, v_{i}\right)} v_{i} \]

1.1.4 特征值、特征向量(Eigenvalues and Eigenvectors)與 對角化(Diagonalization)

\[\mathcal{A}(z)=\lambda z \]

着意味着矩陣\([A-\lambda I]\)的各列是 線性相關(dependent)的,所以該矩陣的行列式必為0:

\[|[\mathbf{A}-\lambda \mathbf{I}]|=0 \]

這個行列式是一個 \(n\) 次多項式,通常有 \(n\) 個根,其中某些根可能是復數,某些根可能是重根。
定義

\[\mathbf{B}=\left[ \begin{array}{llll}{\mathbf{z}_{1}} & {\mathbf{z}_{2}} & {\dots} & {\mathbf{z}_{n}}\end{array}\right] \]

其中 \(\left\{\mathbf{z}_{1}, \mathbf{z}_{2}, \dots, \mathbf{z}_{n}\right\}\) 是矩陣 \(A\) 的特征向量。那么:

\[\left[\mathbf{B}^{-1} \mathbf{A} \mathbf{B}\right]= \left[ \begin{array}{cccc}{\lambda_{1}} & {0} & {\ldots} & {0} \\ {0} & {\lambda_{2}} & {\dots} & {0} \\ {\vdots} & {\vdots} & {{ }} & {\vdots} \\ {0} & {0} & {\ldots} & {\lambda_{n}}\end{array}\right] \]

其中\(\left\{\lambda_{1}, \lambda_{2}, \ldots, \lambda_{n}\right\}\) 是矩陣 \(A\) 的特征值。

1.2 高等數學 之 性能曲面與最優點

性能學習(performance learning) : 網絡參數調整的目標是優化網絡性能

目標是研究性能曲面並確定性能曲面存在極小點和極大點的條件。

性能學習包含幾種不同的學習法則

依據是:在網絡訓練過程中,網絡參數(權值和偏置值)的改變旨在優化網絡的性能。

第一步是定義“性能”,尋找一個衡量網絡性能的定量指標,即 性能指標 (performance index) 。網絡性能越好,性能指標越小;網絡性能越差,性能指標越大。

第二步是搜索參數空間(調整網絡權值和偏置)以減小性能指標。研究性能曲面的特性,建立一些保證一個曲面存在極小點(尋找的最優點)的條件。

1.2.1 泰勒級數(Taylor Series)

性能指標可以表示為在某點 \(x^{*}\) 處的 泰勒級數展開式(Taylor series expansion):

\[F(x) =F\left(x^{*}\right)+\frac{d}{d x} F\left.(x)\right|_{x=x^{*}}\left(x-x^{*}\right) +\frac{1}{2} \frac{d^{2}}{d x^{2}} F\left.(x)\right|_{x=x^{*}}\left(x-x^{*}\right)^{2}+\cdots \\ +\frac{1}{n !} \frac{d^{n}}{d x^{n}} F\left.(x)\right|_{x=x^{*}}\left(x-x^{*}\right)^{n}+\cdots \]

向量的情況

考慮 \(n\) 元函數:

\[F(\mathbf{x})=F\left(x_{1}, x_{2}, \ldots, x_{n}\right) \]

這個函數在點 \(x^{*}\) 處的 泰勒級數展開式為:

\[F(\mathbf{x})=F\left(\mathbf{x}^{*}\right)+\frac{\partial}{\partial x_{1}} F\left.(\mathbf{x})\right|_{\mathbf{X}=\mathbf{x}^{*}}\left(x_{1}-x_{1}^{*}\right)+\frac{\partial}{\partial x_{2}} F\left.(\mathbf{x})\right|_{\mathbf{X}=\mathbf{x}^{*}}\left(x_{2}-x_{2}^{*}\right)\\ +\cdots+\frac{\partial}{\partial x_{n}} F\left.(\mathbf{x})\right|_{\mathbf{X}=\mathbf{x}^{*}}\left(x_{n}-x_{n}^{*}\right)+\frac{1}{2} \frac{\partial^{2}}{\partial x_{1}^{2}} F\left.(\mathbf{x})\right|_{\mathbf{X}=\mathbf{x}^{*}}\left(x_{1}-x_{1}^{*}\right)^{2}\\ +\frac{1}{2} \frac{\partial^{2}}{\partial x_{1} \partial x_{2}} F\left.(\mathbf{x})\right|_{\mathbf{X}=\mathbf{x}^{*}}\left(x_{1}-x_{1}^{*}\right)\left(x_{2}-x_{2}^{*}\right)+\cdots \]

寫成矩陣形式為:

\[F(\mathbf{x})=F\left(\mathbf{x}^{*}\right)+\nabla F\left.(\mathbf{x})^{T}\right|_{\mathbf{X}=\mathbf{x}^{*}}\left(\mathbf{x}-\mathbf{x}^{*}\right)\\+\frac{1}{2}\left(\mathbf{x}-\mathbf{x}^{*}\right)^{T} \nabla^{2} F\left.(\mathbf{x})\right|_{\mathbf{X}=\mathbf{x}^{*}}\left(\mathbf{x}-\mathbf{x}^{*}\right)+\cdots \]

其中 \(\nabla F(\mathbf{x})\) 表示梯度(Gradient),定義為:

\[\nabla F(\mathbf{x})=\left[\frac{\partial}{\partial x_{1}} F(\mathbf{x}) \frac{\partial}{\partial x_{2}} F(\mathbf{x}) \ldots \frac{\partial}{\partial x_{n}} F(\mathbf{x})\right]^{T} \]

\(\nabla^{2} F(\mathbf{x})\) 表示海塞矩陣(Hessian),是一個多元函數的二階偏導數構成的方陣,描述了函數的局部曲率:

\[\nabla^{2} F(\mathbf{x})=\left[ \begin{array}{cc}{\frac{\partial^{2}} {\partial x_{1}^{2}} F(\mathbf{x})} & {\frac{\partial^{2}}{\partial x_{1} \partial x_{2}} F(\mathbf{x})} & \ldots & {\frac{\partial^{2}}{\partial x_{1} \partial x_{n}} F(\mathbf{x})} \\ \\ {\frac{\partial^{2}}{\partial x_{2} \partial x_{1}} F(\mathbf{x})} & {\frac{\partial^{2}}{\partial x_{2}^{2}} F(\mathbf{x})} & \ldots & {\frac{\partial^{2}}{\partial x_{2} \partial x_{n}} F(\mathbf{x})} \\ {\vdots} & {\vdots} & {\vdots} & {\vdots}\\ {\frac{\partial^{2}}{\partial x_{n} \partial x_{1}} F(\mathbf{x})} & {\frac{\partial^{2}}{\partial x_{n} \partial x_{2}} F(\mathbf{x}) } & \ldots & {\frac{\partial^{2}}{\partial x_{n}^{2}} F(\mathbf{x})}\end{array}\right] \]

1.2.2 方向導數(Directional Derivatives)

梯度的第 \(i\) 個元素 \(\partial F(\mathbf{x}) / \partial x_{i}\) 是性能指標 \(F\) 沿着 \(x_{i}\) 軸的二階導數。設向量 \(p\) 為要計算導數的方向上的一個向量,則這個方向導數是梯度和方向向量的內積:

\[\frac{\mathbf{p}^{T} \nabla F(\mathbf{x})}{\|\mathbf{p}\|} \]

二階梯度為:

\[\frac{\mathbf{p}^{T} \nabla^{2} F(\mathbf{x}) \mathbf{p}}{\|\mathbf{p}\|^{2}} \]

當方向向量和梯度的內積最大時,方向為梯度方向,所以沿梯度方向的導數最大,與梯度正交的方向導數為0。

1.2.3 極小點(Minima)

  • 強極小點 : 給定函數 \(F(\mathbf{x})\) 和 點 \(x^{*}\) ,如果存在一個標量 \(\delta >0\),使得對於所有滿足 \(\delta > ||\Delta x||>0\)\(||\Delta x||\) 都有 \(F(\mathbf{x^{*}})<F(\mathbf{x^{*}+\Delta x})\),則 \(x^{*}\)\(F(\mathbf{x})\) 的一個強極小值點。
  • 全局極小點 : 給定函數 \(F(\mathbf{x})\) 和 點 \(x^{*}\) ,如果對於所有的 \(\Delta x\) 都有 \(F(\mathbf{x^{*}})<F(\mathbf{x^{*}+\Delta x})\),則 \(x^{*}\)\(F(\mathbf{x})\) 的唯一全局極小點。
  • 弱極小點 : 如果 \(x^{*}\) 不是函數 \(F(\mathbf{x})\) 的強極小點,並且存在一個標量 \(\delta >0\),使得對於所有滿足 \(\delta > ||\Delta x||>0\)\(||\Delta x||\) 都有 \(F(\mathbf{x^{*}}) \le F(\mathbf{x^{*}+\Delta x})\),則 \(x^{*}\)\(F(\mathbf{x})\) 的一個強極小值點。

強弱極小點的區別在於領域內是否存在相等點,對應於 Hessian 矩陣的正定和半正定。

1.2.4 優化的必要條件(Necessary Conditions for Optimality)

一階條件

極小值點處梯度必須為0。駐點(局部極小點的一階必要(但不充分)條件):

\[\nabla F\left.(\mathbf{x})\right|_{\mathbf{X}=\mathbf{X}^{*}}=\mathbf{0} \]

二階條件

強極小點條件:

\[\Delta \mathbf{x}^{T} \nabla^{2} F\left.(\mathbf{x})\right|_{\mathbf{X}=\mathbf{x}^{*}} \Delta \mathbf{x}>0 \]

對任意向量 \(z \neq 0\) ,均有

\[\mathbf{z}^{T} \mathbf{A} \mathbf{z}>0 \]

則矩陣 \(A\) 是正定矩陣(positive semidefinite)。而如果

\[\mathbf{z}^{T} \mathbf{A} \mathbf{z} \geq 0 \]

則矩陣 \(A\) 是半正定矩陣。這些條件可以通過矩陣的特征值進行檢驗。如果特征值均為正,則矩陣是正定矩陣。如果所有的特征值均非負,則矩陣式是半正定矩陣。

正定的 Hessian 矩陣是強極小值點存在的一個二階 充分條件(sufficient condition),但不是必要條件。強極小值點存在的 二階必要條件是 Hessian 矩陣 為半正定矩陣。

綜上所述: \(x^{*}\) 是函數 \(F(\mathbf{x})\) 的極小點(強極小點或弱極小點)的必要條件是 : \(\nabla F\left.(\mathbf{x})\right|_{\mathbf{X}=\mathbf{X}^{*}}=\mathbf{0}\)\(\nabla^{2} F\left.(\mathbf{x})\right|_{\mathbf{X}=\mathbf{x}^{*}}\) 是半正定矩陣。\(x^{*}\) 是函數 \(F(\mathbf{x})\) 的強極小點的充分條件是 :\(\nabla F\left.(\mathbf{x})\right|_{\mathbf{X}=\mathbf{X}^{*}}=\mathbf{0}\)\(\nabla^{2} F\left.(\mathbf{x})\right|_{\mathbf{X}=\mathbf{x}^{*}}\) 是正定矩陣。

1.2.5 二次函數

在某點的領域內,許多函數可以用二次函數近似。

\[F(\mathbf{x})=\frac{1}{2} \mathbf{x}^{T} \mathbf{A} \mathbf{x}+\mathbf{d}^{T} \mathbf{x}+c \]

梯度

\[\nabla F(\mathbf{x})=\mathbf{A x}+\mathbf{d} \]

Hessian 矩陣

\[\nabla^{2} F(\mathbf{x})=\mathbf{A} \]

二階方向導數

\[\frac{\mathbf{p}^{T} \nabla^{2} F(\mathbf{x}) \mathbf{p}}{\|\mathbf{p}\|^{2}}=\frac{\mathbf{p}^{T} \mathbf{A} \mathbf{p}}{\|\mathbf{p}\|^{2}}=\frac{\mathbf{c}^{T} \mathbf{B}^{T}\left(\mathbf{B} \Lambda \mathbf{B}^{T}\right) \mathbf{B} \mathbf{c}}{\mathbf{c}^{T} \mathbf{B}^{T} \mathbf{B} \mathbf{c}}=\frac{\mathbf{c}^{T} \Lambda \mathbf{c}}{\mathbf{c}^{T} \mathbf{c}}=\frac{\sum_{i=1}^{n} \lambda_{i} c_{i}^{2}}{\sum_{i=1}^{n} c_{i}^{2}} \]

這個二階導數是特征值的加權平均:

\[\lambda_{\min } \leq \frac{\mathbf{p}^{T} \mathbf{A} \mathbf{p}}{\|\mathbf{p}\|^{2}} \leq \lambda_{\max } \]

二階導數的最大值存在於最大特征值所對應的特征向量的方向上。事實上,在每個特征向量方向上,二階導數都等於相應的特征值。特征向量定義了一個新的二次交叉衰減的坐標系。特征向量被稱為函數等高線的主軸。

1.3 高等數學 之 性能優化

最速下降法、牛頓法、共軛梯度法

性能優化目標:尋找給定神經網絡的最優權值和偏置值

優化的基本原理由 開普勒、費馬、牛頓、萊布尼茲 這些科學家以及數學家於17世紀發現的。

所要討論的優化算法都是迭代的,從某個初始值 \(x_{0}\) 開始,然后按照如下形式的等式逐步更新猜測值:

\[\mathbf{x}_{k+1}=\mathbf{x}_{k}+\alpha_{k} \mathbf{p}_{k} \]

其中,向量 \(p_{k}\) 表示一個搜索方向,正數標量 \(\alpha_{k}\) 表示學習率,它決定了學習步長。

1.3.1 最速下降法(Steepest Descent)

當使用上式更新最優(極小)點的猜測值時,我們希望函數值在每次迭代時都減小:

\[F\left(\mathbf{x}_{k+1}\right)<F\left(\mathbf{x}_{k}\right) \]

對於足夠小的學習率,如何選擇方向才能使得函數值遞減?

考慮 \(F(\mathbf{x})\) 在舊猜測值 \(x_{k}\) 的一階泰勒展開式

\[F\left(\mathbf{x}_{k+1}\right)=F\left(\mathbf{x}_{k}+\Delta \mathbf{x}_{k}\right) \approx F\left(\mathbf{x}_{k}\right)+\mathbf{g}_{k}^{T} \Delta \mathbf{x}_{k} \]

其中 \(g_{k}\) 是在舊猜測值 \(x_{k}\) 處的梯度:

\[\mathbf{g}_{k} \equiv \nabla F\left.(\mathbf{x})\right|_{\mathbf{X}=\mathbf{X}_{k}} \]

為了使 \(F\left(\mathbf{x}_{k+1}\right)<F\left(\mathbf{x}_{k}\right)\) ,另一項必須為負

\[\mathbf{g}_{k}^{T} \Delta \mathbf{x}_{k}=\alpha_{k} \mathbf{g}_{k}^{T} \mathbf{p}_{k}<0 \]

我們將選擇一個較小但是大於0的 \(\alpha _{k}\) ,那么

\[\mathbf{g}_{k}^{T} \mathbf{p}_{k}<0 \]

任一滿足上式的向量 \(p_{k}\) 均稱作一個 下降方向(descent direction)。如果沿此方向選擇足夠小的步長,函數值一定減小。當 \(\mathbf{g}_{k}^{T} \mathbf{p}_{k}\) 最小時,最速下降就會發生(假設 \(p_{k}\) 的長度不變,只改變方向)。這是梯度和方向向量之間的內積。當方向向量於梯度反向時,該內積取最小值。因此最速下降方向上的一個向量為:

\[\mathbf{p}_{k}=-\mathbf{g}_{k} \]

應用上式就得到了 最速下降法(steepest descent):

\[\mathbf{x}_{k+1}=\mathbf{x}_{k}-\alpha_{k} \mathbf{g}_{k} \]

對於最速下降法,有兩個一般的方法來確定學習率(learning rate) \(a_{k}\)。一個方法是在每次迭代時,選擇使性能指標 \(F(\mathbf{x})\) 最小的 \(a_{k}\) 。這中情況下,我們將沿着下列直線進行最小化

\[\mathbf{x}_{k}-\alpha_{k} \mathbf{g}_{k} \]

另一種選擇 \(a_{k}\) 的方法是使用一個固定值(例如 \(\alpha =0.002\)),或使用預先設定的變量的值。

注意:對於較小的學習率,最速下降的軌跡總是沿着與等高線正交的路徑。這是因為梯度與等高線正交。如果學習率過大,算法會變得不穩定,軌跡會出現振盪,且越來越大。希望取較大的學習率,可以增大學習步長,使得算法更快收斂。是否存在某種方法可以預測最大且可行的學習率?對於任意給定函數,這是不可能的。對於二次函數,可以確定一個上界。

穩定的學習率

將二次函數的梯度帶入最速下降式子中:

\[\mathbf{x}_{k+1}=[\mathbf{I}-\alpha \mathbf{A}] \mathbf{x}_{k}-\alpha \mathbf{d} \]

這是一個 線性動力學系統,如果 矩陣 \([\mathbf{I}-\alpha \mathbf{A}]\) 的特征值的絕對值小於1,該系統就是穩定的([Brog91])。\([\mathbf{I}-\alpha \mathbf{A}]\) 的特征向量 與 Hessian 矩陣 \(A\) 相同,並且\([\mathbf{I}-\alpha \mathbf{A}]\) 的特征值為 \((1-\alpha \lambda _{i})\)。最速下降穩定性條件為:

\[\left|\left(1-\alpha \lambda_{i}\right)\right|<1 \]

假設二次函數由一個強極小點,那么它的特征值一定為正數。上式可簡化為:

\[\alpha<\frac{2}{\lambda_{i}} \]

因為該式對 Hessian 矩陣所有特征值都成立,所以有

\[\alpha<\frac{2}{\lambda_{\max }} \]

最大的穩定性學習率與二次函數的最大曲率成正比。

學習率受限於最大特征值,最小特征值與學習率共同決定算法收斂的快慢。最大特征值與最小特征值的絕對值相差懸殊將導致最速下降算法收斂緩慢。

沿直線最小化

\[\alpha_{k}=-\frac{\nabla F\left.(\mathbf{x})^{T}\right|_{\mathbf{x}=\mathbf{x}_{k}} \mathbf{p}_{k}}{\mathbf{p}_{k}^{T} \nabla^{2} F\left.(\mathbf{x})\right|_{\mathbf{X}=\mathbf{x}_{k}} \mathbf{p}_{k}}=-\frac{\mathbf{g}_{k}^{T} \mathbf{p}_{k}}{\mathbf{p}_{k}^{T} \mathbf{A}_{k} \mathbf{p}_{k}} \]

算法逐次迭代都是正交的。如果使用 共軛 代替 正交 ,函數能在最多 \(n\) 步迭代內被極小化 , \(n\)\(x\) 的維數

1.3.2 牛頓法

最速下降法中的推導是基於一階泰勒級數展開式,牛頓法基於二階泰勒級數:

\[F\left(\mathbf{x}_{k+1}\right)=F\left(\mathbf{x}_{k}+\Delta \mathbf{x}_{k}\right) \approx F\left(\mathbf{x}_{k}\right)+\mathbf{g}_{k}^{T} \Delta \mathbf{x}_{k}+\frac{1}{2} \Delta \mathbf{x}_{k}^{T} \mathbf{A}_{k} \Delta \mathbf{x}_{k} \]

牛頓法的原理是尋找 \(F(\mathbf{x})\) 的二次近似的駐點。求解上式對 \(\Delta x_{k}\) 的梯度,並且將其設置為0,有:

\[\mathbf{g}_{k}+\mathbf{A}_{k} \Delta \mathbf{x}_{k}=\mathbf{0} \]

求解可得:

\[\Delta \mathbf{x}_{k}=-\mathbf{A}_{k}^{-1} \mathbf{g}_{k} \]

所以牛頓法被定義為:

\[\mathbf{x}_{k+1}=\mathbf{x}_{k}-\mathbf{A}_{k}^{-1} \mathbf{g}_{k} \]

牛頓算法在許多應用中都能快速收斂。但是有時候可能收斂到鞍點。

1.3.3 共軛梯度法(Conjugate Gradient)

牛頓法有一個性質被稱為 二次終結 。即它能在有限的迭代次數內使二次函數極小化。
假設尋找如下二次函數的極小點

\[F(\mathbf{x})=\frac{1}{2} \mathbf{x}^{T} \mathbf{A} \mathbf{x}+\mathbf{d}^{T} \mathbf{x}+c \]

當且僅當

\[\mathbf{p}_{k}^{T} \mathbf{A} \mathbf{p}_{j}=0 \quad k \neq j \]

向量集合 \(\{ p_{k} \}\) 關於一個正定 的 Hessian 矩陣 \(A\) 相互共軛。對於正交向量,存在無窮多個共軛向量集,他們將張成一個給定的 \(n\) 維空間。 \(A\) 的特征向量組成了一個共軛向量集。設 \(\left\{\lambda_{1}, \lambda_{2}, \ldots, \lambda_{n}\right\}\)\(\left\{\mathbf{z}_{1}, \mathbf{z}_{2}, \dots, \mathbf{z}_{n}\right\}\) 分別為 Hessian 矩陣 的特征值和特征向量。為了驗證特征向量的共軛性,用 \(z_{k}\) 代替上式的 \(p_{k}\) 可得:

\[\mathbf{z}_{k}^{T} \mathbf{A} \mathbf{z}_{j}=\lambda_{j} \mathbf{z}_{k}^{T} \mathbf{z}_{j}=0 \quad k \neq j \]

其中,因為對稱矩陣的特征向量兩兩正交,所以最后一個等式成立。因此特征向量即是共軛又是正交的。

因為特征向量構成了函數等高線的主軸,所以沿 Hessian 矩陣 的特征向量搜索就能准確地使二次函數極小化。我們需要找到一種不計算二次導數的算法。

已經證明([Scal85] or [Gill81]),如果沿着任意的共軛向量集合 \(\left\{\mathbf{p}_{1}, \mathbf{p}_{2}, \ldots, \mathbf{p}_{n}\right\}\) 進行連續的線性搜索,那么能在最多 \(n\) 次搜索內對 \(n\) 個參數的任意二次函數的極小化。如何構造這些共軛的搜索方向?

共軛條件可以重新表示:

\[\alpha_{k} \mathbf{p}_{k}^{T} \mathbf{A} \mathbf{p}_{j}=\Delta \mathbf{x}_{k}^{T} \mathbf{A} \mathbf{p}_{j}=\Delta \mathbf{g}_{k}^{T} \mathbf{p}_{j}=0 \quad k \neq j \]

把共軛條件表示為算法相鄰兩次迭代的梯度變化。如果搜索方向 \(p_{0}\) 使任意的,且 \(p_{1}\) 可以是與 \(\Delta g_{0}\) 正交的任意向量,存在無窮多個共軛向量集。

共軛梯度法:

    1. 選擇與梯度相反的方向作為第一次搜索方向:

    \[\]

\[- 2. 進行進一步搜索,選擇學習率 $\alpha _{k}$ 以使函數沿搜索方向極小化 \]

\Delta \mathbf{x}{k}=\left(\mathbf{x}{k+1}-\mathbf{x}{k}\right)=\alpha{k} \mathbf{p}_{k}

\[- 3. 確定下一個搜索方向([Scal85]),先計算 $\beta _{k}$ 之后構造一個與梯度之差正交的向量作為方向: \]

\begin{cases}
\beta_{k}=\frac{\Delta \mathbf{g}{k-1}^{T} \mathbf{g}{k}}{\Delta \mathbf{g}{k-1}^{T} \mathbf{p}{k-1}}\
\
\beta_{k}=\frac{\mathbf{g}{k}^{T} \mathbf{g}{k}}{\mathbf{g}{k-1} \mathbf{g}{k-1}}\
\
\beta_{k}=\frac{\Delta \mathbf{g}{k-1}^{T} \mathbf{g}{k}}{\mathbf{g}{k-1}^{T} \mathbf{g}{k-1}}
\end{cases}

\[\]

\mathbf{p}{k}=-\mathbf{g}{k}+\beta_{k} \mathbf{p}_{k-1}

\[其中 $\mathbf{g}_{k} \equiv \nabla F\left.(\mathbf{x})\right|_{\mathbf{X}=\mathbf{X}_{k}}$ ,且 $\Delta \mathbf{g}_{k}=\mathbf{g}_{k+1}-\mathbf{g}_{k}$。 - 4. 如果算法為收斂,返回第二步 # 參考文獻 ## 第1章 - [Ande72] J. A. Anderson, “A simple neural network generating an interactive memory,” Mathematical Biosciences, Vol. 14, pp.197–220, 1972. >Anderson提出了一種“線性關聯器”模型用於聯想記憶。 使用推廣的Hebb假設來訓練模型,用於學習輸入和輸出向量之間的關聯。 - [AnRo89] J. A. Anderson and E. Rosenfeld, Neurocomputing: Foundations of Research, Cambridge, MA: MIT Press, 1989. >Neurocomputing是一本基礎參考書。 它包含了40多個最重要的神經計算領域的著作。 每篇論文都附有一個成果介紹,並提供論文在該領域的歷史中的位置。 - [DARP88] DARPA Neural Network Study, Lexington, MA: MIT Lincoln Laboratory, 1988. >到1988年為止,已知的神經網絡知識概要。它總結了神經網絡的理論基礎並討論了它們目前的應用。 它包含關聯記憶,循環網絡,視覺,語音識別和機器人技術的章節。 最后,它討論了仿真工具和實現技術。 - [MiPa69] M. Minsky and S. Papert, Perceptrons, Cambridge, MA: MIT Press, 1969. >這是一本具有里程碑意義的書,其中包含第一次嚴謹研究了感知機的學習能力。通過嚴格的論述,闡述了感知機的局限性,以及克服局限的方法。遺憾的是,該書悲觀地預測,感知器的局限性表明神經網絡領域是沒有前景的。 這一失實的觀點為后續若干年的神經網絡研究和基金資助造成了極大的負面影響。 - [Rose58] F. Rosenblatt, “The perceptron: A probabilistic model for information storage and organization in the brain,” Psychological Review, Vol. 65, pp. 386–408, 1958. >提出了第一個實際的神經網絡模型,感知機。 - [RuMc86] D. E. Rumelhart and J. L. McClelland, eds., Parallel Distributed Processing: Explorations in the Microstructure of Cognition, Vol. 1, Cambridge, MA: MIT Press, 1986. >20世紀80年代重新燃起人們對神經網絡研究興趣的兩大重要論著之一。書中包含了許多主題,訓練多層網絡的反省傳播算法是其中之一。 - [WiHo60] B. Widrow and M. E. Hoff, “Adaptive switching circuits,”1960 IRE WESCON Convention Record, New York: IRE Part 4, pp. 96–104, 1960. >這篇重要論文描述了要給自適應的類似感知機的網絡,它能快速准確地學習。作者假定系統有輸入和每個輸入對應地期望輸出,且系統能計算實際輸出和期望輸出之間地誤差。為了最小化均方誤差,網絡使用梯度下降法來調整權值(最小均方誤差或LMS算法) 這篇論文在[AnRo88]中被重印。 ## 第2章 - [Hopf82] J. J. Hopfield, “Neural networks and physical systems with emergent collective computational properties,” Proceedings of the National Academy of Sciences, vol. 79, pp. 2554–2558, 1982. (Chapter 1, 21) >Hopfield提出了內容可尋址的神經網絡。 他還清楚地描述了該神經網絡如何運作,以及該網絡可以勝任何種工作。 - [Hopf84] J. J. Hopfield, “Neurons with graded response have collective computational properties like those of two-state neurons,” Proceedings of the National Academy of Sciences, vol.81, pp. 3088–3092, 1984. (Chapter 21) >Hofield網絡 ## 第3章 - [BaSu83] A. Barto, R. Sutton and C. Anderson, “Neuron-like adap tive elements can solve difficult learning control problems,” IEEE Transactions on Systems, Man and Cybernetics, Vol.13, No. 5, pp. 834–846, 1983. >一種采用增強學習算法訓練神經網絡來平衡逆向振盪地經典論文。 - [Brog91] W. L. Brogan, Modern Control Theory, 3rd Ed., Englewood Cliffs, NJ: Prentice-Hall, 1991. >一本關於線性系統主題的佳作。 本書的前半部分專門用於線性代數。 它在線性微分方程的解和線性和非線性系統的穩定性方面也有很好的部分。 - [McPi43] W. McCulloch and W. Pitts, “A logical calculus of the ideas immanent in nervous activity,” Bulletin of Mathematical Biophysics, Vol. 5, pp. 115–133, 1943. >本文介紹了神經元的第一個數學模型。這個模型通過比較多個輸入信號地加權和閾值來決定是否激發該神經元。這是第一次根據當時已知的計算元素描述大腦的作用。 它表明簡單的神經網絡可以計算任何算術或邏輯函數。 - [Rose58] F. Rosenblatt, “The perceptron: A probabilistic model for information storage and organization in the brain,” Psycho logical Review, Vol. 65, pp. 386–408, 1958. >本文提出了第一個實用的人工神經網絡模型:感知器。 - [Rose61] F. Rosenblatt, Principles of Neurodynamics, Washington DC: Spartan Press, 1961. >關於神經計算的第一本書之一。 - [WhSo92] D. White and D. Sofge (Eds.), Handbook of Intelligent Control, New York: Van Nostrand Reinhold, 1992.Collection of articles describing current research and appli >該書收集了當時一些關於控制系統中地神經網絡和模糊邏輯地研究和應用地論文。 ## 第4章 - [Hebb49] D. O. Hebb, The Organization of Behavior. New York:Wiley, 1949. >這本著作的核心思想是:行為可以由生物神經元的活動來解釋。在書中,Hebb提出了第一個神經網絡學習規則,這是一個細胞級別上的學習機制假說。 - [Albe72] A. Albert, Regression and the Moore-Penrose Pseudoinverse, New York: Academic Press, 1972. >Albert的著作是關於偽逆的理論和基本性質的主要參考文獻。 包括主要偽逆定理地證明。 - [Ande72] J. A. Anderson, “A simple neural network generating an interactive memory,” Mathematical Biosciences, vol. 14, pp.197–220, 1972. (Chapter 1, 15, 21) >Anderson提出了一種用於聯想記憶的“線性關聯器”模型。 使用Hebb假設的推廣來訓練模型,以學習輸入和輸出向量之間的關聯。 強調了網絡的生理合理性。 雖然兩位研究人員獨立工作,Kohonen同時發表了一篇密切相關的論文[Koho72]。 - [Koho72] T. Kohonen, “Correlation matrix memories,” IEEE Transactions on Computers, vol. 21, pp. 353–359, 1972. >Kohonen提出了一種關聯記憶的相關矩陣模型。 使用外積規則(也稱為Hebb規則)訓練模型,以學習輸入和輸出向量之間的關聯。 強調了網絡的數學結構。 安德森同時發表了一篇密切相關的論文[Ande72],盡管兩位研究人員正在獨立工作。 ## 第5章 - [StDo84] W. D. Stanley, G. R. Dougherty, R. Dougherty, Digital Sig nal Processing, Reston VA: Reston, 1984 - [WiHo60] B. Widrow, M. E. Hoff, “Adaptive switching circuits,” 1960 IRE WESCON Convention Record, New York: IRE Part 4, pp. 96–104. >這篇開創性的論文描述了一種類似自適應感知器的網絡,可以快速准確地學習。 作者假設系統具有輸入,每個輸入的期望輸出分類,並且系統可以計算實際輸出和期望輸出之間的誤差。 使用梯度下降法調整權重,以便最小化均方誤差。 (最小均方誤差或LMS算法。)本文在[AnRo88]中重印。 - [WiSt85] B. Widrow and S. D. Stearns, Adaptive Signal Processing,Englewood Cliffs, NJ: Prentice-Hall, 1985. >這本書描述了自適應信號處理方面地理論和應用。作者在書中提供了關於所需數學背景知識地綜述,闡述了算法細節,並討論了許多實際應用。 - [WiWi88] B. Widrow and R. Winter, “Neural nets for adaptive filtering and adaptive pattern recognition,” IEEE Computer Magazine, March 1988, pp. 25–39. >這篇可讀性地文章總結了自適應多層神經網絡地應用,比如系統建模,統計預測、回聲消除、逆向建模和模式識別等。 ## 第6章 - [Werbo74] P. J. Werbos, “Beyond regression: New tools for predictionand analysis in the behavioral sciences,” Ph.D. Thesis,Harvard University, Cambridge, MA, 1974. >這篇博士 論文包含似乎是反向傳播算法的第一個描述(雖然沒有使用該名稱)。 這里在一般網絡的背景下描述該算法,其中神經網絡作為特殊情況。 直到20世紀80年代中期,Rumelhart,Hinton和Williams [RuHi86],David Parker [Park85]和Yann Le Cun [LeCu85]重新發現了反向傳播。 - [RuHi86] D. E. Rumelhart, G. E. Hinton and R. J. Williams, “Learning representations by back-propagating errors,” Nature,vol. 323, pp. 533–536, 1986. >本文包含最廣泛的反向傳播算法的描述。 - [Park85] D. B. Parker, “Learning-logic: Casting the cortex of the human brain in silicon,” Technical Report TR-47, Center forComputational Research in Economics and Management Science, MIT, Cambridge, MA, 1985. >David Parker在與Le Cun和Rumelhart,Hinton和Williams大致同時獨立地推導出反向傳播算法。 該報告描述了他的算法。 - [LeCu85] Y. Le Cun, “Une procedure d’apprentissage pour reseau a seuil assymetrique,” Cognitiva, vol. 85, pp. 599–604, 1985. >Yann Le Cun與Parker和Rumelhart,Hinton和Williams幾乎同時發現了反向傳播算法。 本文描述了他的算法。 - [HoSt89] K. M. Hornik, M. Stinchcombe and H. White, “Multilayerfeedforward networks are universal approximators,” Neural Networks, vol. 2, no. 5, pp. 359–366, 1989. >本文證明了具有任意壓縮函數的多層前饋網絡可以逼近從一個有限維空間到另一個有限維空間的任何Borel可積函數。 ## 第7章 - [Barn92] E. Barnard, “Optimization for training neural nets,” IEEE Trans. on Neural Networks, vol. 3, no. 2, pp. 232–240, 1992. >這篇論文討論了大量訓練神經網絡地優化算法。 - [Batt92] R. Battiti, “First- and second-order methods for learning:Between steepest descent and Newton's method,” Neural Computation, vol. 4, no. 2, pp. 141–166, 1992. >這篇論文是對當前適合神經網絡訓練地優化算法極為出色地總結。 - [Char92] C. Charalambous, “Conjugate gradient algorithm for efficient training of artificial neural networks,” IEE Proceedings, vol. 139, no. 3, pp. 301–310, 1992. >這篇論文解釋了共軛梯度算法是如何用於訓練多層網絡地。同時比較了共軛梯度算法和其他訓練算法地不同。 - [Fahl88] S. E. Fahlman, “Faster-learning variations on back-propagation: An empirical study,” In D. Touretsky, G. Hinton &T. Sejnowski, eds., Proceedings of the 1988 Connectionist Models Summer School, San Mateo, CA: Morgan Kaufmann, pp. 38–51, 1988. >這篇論文描述了 QuickProp算法是一種對標准反向傳播算法較為流行地啟發式改進。它假設誤差曲線可以被一個拋物線逼近,同時每一個權值地影響都可以獨立考慮。在很多問題上,相比標准反向傳播算法,QuickProp能顯著提高算法地速度。 - [HaMe94] M. T. Hagan and M. Menhaj, “Training feedforward networks with the Marquardt algorithm,” IEEE Transactions on Neural Networks, vol. 5, no. 6, 1994. >這篇論文描述了 Levenberg-Marquardt 算法在多層神經網絡中地使用,同時比較了它與可變學習率反向傳播算法以及共軛梯度算法地性能區別。這個 Levenberg-Marquardt 提高了收斂速度,但是需要更大地存儲空間。 - [Jaco88] R. A. Jacobs, “Increased rates of convergence through learning rate adaptation,” Neural Networks, vol. 1, no. 4,pp. 295–308, 1988. >這是另外一篇討論使用可變學習率反向傳播算法地早期論文。這里描述地過程被稱為 delta-bar-delta 學習規則,在此學習規則中,每一個網絡參數有獨立地學習率,同時學習率在每次迭代時都發生變化。 - [NgWi90] D. Nguyen and B. Widrow, “Improving the learning speed of 2-layer neural networks by choosing initial values of the adaptive weights,” Proceedings of the IJCNN, vol. 3, pp.21–26, July 1990. >這篇論文描述了一種反向傳播算法中權值和偏置值地初始化方法。它通過S型傳輸函數地形狀以及輸入變量地范圍來決定權值地大小,然后利用偏置值來將S型函數置於運作區域的中央。反向傳播算法的收斂性可以通過此過程得到有效提升。 - [RiIr90] A. K. Rigler, J. M. Irvine and T. P. Vogl, “Rescaling of variables in back propagation learning,” Neural Networks, vol.4, no. 2, pp. 225–230, 1991. >這篇論文提出S型函數的導數在尾部非常小,這意味着與前幾層關聯的梯度元素通常會小於與最后一層關聯的梯度元素。因此,需要重新調整梯度中各項的范圍,使它們均衡。 - [Scal85] L. E. Scales, Introduction to Non-Linear Optimization. New York: Springer-Verlag, 1985. >這是一本可讀性很強的書,它介紹了主要的優化算法,着重於優化方法而非收斂的存在定理和證明。 - [Shan90] D. F. Shanno, “Recent advances in numerical techniques for large-scale optimization,” Neural Networks for Control,Miller, Sutton and Werbos, eds., Cambridge MA: MIT Press, 1990. >這篇論文討論了一些可以用在神經網絡訓練中的共軛梯度算法以及擬牛頓優化算法。 - [Toll90] T. Tollenaere, “SuperSAB: Fast adaptive back propagation with good scaling properties,” Neural Networks, vol. 3, no.5, pp. 561–573, 1990. >這篇論文介紹了一種可變學習率的反向傳播算法。其中,每一個權值的學習率都是不同的。 - [VoMa88] T. P. Vogl, J. K. Mangis, A. K. Zigler, W. T. Zink and D. L. Alkon, “Accelerating the convergence of the backpropagation method,” Biological Cybernetics., vol. 59, pp. 256–264,Sept. 1988. >這是介紹加速反向傳播算法收斂速度的幾種啟發式技術最早的文章之一,它包括沖量、批處理以及可變學習率。 ## 第8章 - [AmMu97] S. Amari, N. Murata, K.-R. Muller, M. Finke, and H. H.Yang, “Asymptotic Statistical Theory of Overtraining and Cross-Validation,” IEEE Transactions on Neural Networks, vol. 8, no. 5, 1997. >當使用提前終止法時,確定驗證集包含的數據數量很重要。這篇論文為驗證規模的選取提供了理論基礎。 - [FoHa97] D. Foresee and M. Hagan, “Gauss-Newton Approximation to Bayesian Learning,” Proceedings of the 1997 International Joint Conference on Neural Networks, vol. 3, pp.1930 - 1935, 1997. >這篇論文介紹了一種使用高斯-牛頓法逼近 Hessian 矩陣以實現貝葉斯正則化的方法。 - [GoLa98] C. Goutte and J. Larsen, “Adaptive Regularization of Neural Networks Using Conjugate Gradient,” Proceedings of the IEEE International Conference on Acoustics, Speech and Signal Processing, vol. 2, pp. 1201-1204, 1998. >當使用正則化方法時,一個重要的步驟是設置正則化參數,這篇論文介紹了設置正則化參數以極小化驗證集誤差的步驟。 - [MacK92] D. J. C. MacKay, “Bayesian Interpolation,” Neural Computation, vol. 4, pp. 415-447, 1992. >貝葉斯方法在統計學中已經使用了很多年。這篇論文展示了首次提出貝葉斯框架用於訓練神經網絡的方法之一。MacKay 針對該論文隨后對其中的方法進行了很多措施性的改進。 - [Sarle95] W. S. Sarle, “Stopped training and other remedies for overfitting,” In Proceedings of the 27th Symposium on Interface,1995. >這是一篇使用提前終止法和驗證集來防止過擬合的早期文獻之一。這篇論文介紹了提前終止法與其他提升泛化能力方法比較的仿真結果。 - [SjLj94] J. Sjoberg and L. Ljung, “Overtraining, regularization and searching for minimum with application to neural networks,” Linkoping University, Sweden, Tech. Rep. LiTHISY-R-1567, 1994. >這個報告解釋了提前終止法和正則化法是如何近似等價的過程。它證實了訓練的迭代次數和正則化參數成反比。 - [Tikh63] A. N. Tikhonov, “The solution of ill-posed problems and the regularization method,” Dokl. Acad. Nauk USSR, vol. 151,no. 3, pp. 501-504, 1963. >正則化法是一種將誤差平方和性能指標與一個懲罰逼近函數復雜度的懲罰項進行結合的方法。這篇論文是介紹正則化的概念最早的文獻。懲罰項設計逼近函數的導數。 - [WaVe94] C. Wang, S. S. Venkatesh, and J. S. Judd, “Optimal Stop ping and Effective Machine Complexity in Learning,” Advances in Neural Information Processing Systems, J. D.Cowan, G. Tesauro, and J. Alspector, Eds., vol. 6, pp. 303-310, 1994. >這篇論文介紹了訓練過程中網絡有效參數數量是如何變化的,以及提前終止結束訓練是如何提升網絡泛化能力的。 ## 第9章 - [DeHa07] O. De Jesús and M. Hagan, “Backpropagation Algorithms for a Broad Class of Dynamic Networks,” IEEE Transactions on Neural Networks, vol. 18, no. 1, pp., 2007. >這篇論文介紹了 BPTT 和 RTRL 算法面向梯度和雅可比矩陣的一般性推廣。文中呈現了相關實驗結果,比較了在不同網絡結構上這兩個算法的復雜度。 - [MaNe99] J.R. Magnus and H. Neudecker, Matrix Differential Calculus, John Wiley & Sons, Ltd., Chichester, 1999. >這部教材清晰而完整地介紹了矩陣論及矩陣微積分方法。 - [PhHa13] M. Phan and M. Hagan, “Error Surface of Recurrent Networks,” IEEE Transactions on Neural Networks and Learning Systems, Vol. 24, No. 11, pp. 1709 - 1721, October,2013. >這篇論文介紹了循環網絡誤差曲面上地欺騙性凹槽,以及一系列可以用於改進循環網絡地措施。 - [Werb90] P. J. Werbos, “Backpropagation through time: What it is and how to do it,” Proceedings of the IEEE, vol. 78, pp.1550–1560, 1990. >時序反向傳播算法是循環神經網絡梯度計算地兩個主要方法之一。這篇論文介紹了時序反向傳播算法地一般性框架。 - [WiZi89] R. J. Williams and D. Zipser, “A learning algorithm for continually running fully recurrent neural networks,” Neural Computation, vol. 1, pp. 270–280, 1989. >這篇論文介紹了計算動態網絡梯度地實時回復學習算法。采用這一方方法,可以從第一個時刻開始計算梯度,並依時間順序正向進行計算,該算法適合在線或實時地實現。 ## 第10章 - [FrSk91] J. Freeman and D. Skapura, Neural Networks: Algorithms, Applications, and Programming Techniques, Reading, MA:Addison-Wesley, 1991. >這本書包含了一些神經網絡算法地代碼段,以明晰網絡細節。 - [Koho87] T. Kohonen, Self-Organization and Associative Memory,2nd Ed., Berlin: Springer-Verlag, 1987. >這本書中介紹了 Kohonen 規則和幾種使用該規則的網絡。書中還提供了線性聯想模型的完整分析,並且給出了很多擴展和例子。 - [Hech90] R. Hecht-Nielsen, Neurocomputing, Reading, MA: Addison-Wesley, 1990. >這本書的一個章節介紹了競爭學習的歷史和其中的數學。 - [RuMc86] D. Rumelhart, J. McClelland et al., Parallel Distributed Processing, vol. 1, Cambridge, MA: MIT Press, 1986. >這套兩卷的論文集著作是神經網絡的經典文章,第一卷中的第一章描述了競爭網絡及其是如何學會檢測特征的。 ## 第11章 - [BrLo88] D.S. Broomhead and D. Lowe, “Multivariable function in terpolation and adaptive networks,” Complex Systems,vol.2, pp. 321-355, 1988. >這篇開創性的論文第一次闡述了徑向基函數在神經網絡領域內的使用。 - [MoDa89] J. Moody and C.J. Darken, “Fast Learning in Networks of Locally-Tuned Processing Units,” Neural Computation,Vol. 1, pp. 281–294, 1989. >第一篇使用聚類方法選擇徑向基函數中心和方差的論文。 - [PaSa93] J. Park and I.W. Sandberg, “Universal approximation using radial-basis-function networks,” Neural Computation,vol. 5, pp. 305-316, 1993. >這篇論文證明了徑向基函數網絡的通用逼近性能。 - [Powe87] M.J.D. Powell, “Radial basis functions for multivariable in terpolation: a review,” Algorithms for Approximation, pp.143-167, Oxford, 1987. >這篇論文回顧了徑向基函數的早期工作。徑向基函數最初用於精確的多變量插值問題。 ## 第12章 - [Bish95] C.M. Bishop, Neural Networks for Pattern Recognition, Oxford University Press,1995. >一本從統計學角度論述神經網絡的優秀教材。 - [HaBo07] L. Hamm, B. W. Brorsen and M. T. Hagan, “Comparison of Stochastic Global Optimization Methods to Estimate Neural Network Weights,” Neural Processing Letters, Vol. 26,No. 3, December 2007. >這篇文章之處,使用多個啟動的局部優化的程序,如最速下降或共軛梯度,其結果與全局優化方法不相上下,並且計算量較小。 - [HeOh97] B. Hedén, H. Öhlin, R. Rittner, L. Edenbrandt, “Acute My ocardial Infarction Detected in the 12-Lead ECG by Artificial Neural Networks,” Circulation, vol. 96, pp. 1798–1802,1997. >這篇文章論述了使用神經網絡通過心電圖檢測心肌梗塞的應用。 - [Joll02] I.T. Jolliffe, Principal Component Analysis, Springer Series in Statistics, 2nd ed., Springer, NY, 2002. >有關主成分分析最著名的文章 - [PuFe97] G.V. Puskorius and L.A. Feldkamp, “Extensions and en hancements of decoupled extended Kalman filter training,”Proceedings of the 1997 International Conference on NeuralNetworks, vol. 3, pp. 1879-1883, 1997. >這篇文章接受的擴展卡爾曼濾(Kalman)波算法,是神經網絡訓練較快的序列算法之一。 - [RaMa05] L.M. Raff, M. Malshe, M. Hagan, D.I. Doughan, M.G. Rockley, and R. Komanduri, “Ab initio potential-energy surfaces for complex, multi-channel systems using modified novelty sampling and feedforward neural networks,” The Journalof Chemical Physics, vol. 122, 2005. >這篇文章描述了如何使用神經網絡來進行分子動力學仿真。 - [ScSm99] B. Schölkopf, A. Smola, K.-R. Muller, “Kernel Principal Component Analysis,” in B. Schölkopf, C. J. C. Burges, A.J. Smola (Eds.), Advances in Kernel Methods-Support Vector Learning, MIT Press Cambridge, MA, USA, pp. 327-352, 1999. >這篇文章介紹了一種使用核方法的非線性主成分分析方法。\]


免責聲明!

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



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