天天看點

《西瓜書》筆記05:神經網絡1. 神經元模型2. 感覺機與多層網絡3. 誤差逆傳播/反向傳播算法4. 全局最小和局部極小5. 其他常見神經網絡6. 深度學習

1. 神經元模型

神經網絡/人工神經網絡:由具有适應性的簡單單元組成的廣泛并行互連的網絡。

神經網絡學習:機器學習和神經網絡兩個學科交叉的部分。

Neural Networks中的基本單元:神經元。

從計算機科學的角度,NN就是一個包含了大量參數的數學模型,該模型由若幹個函數互相代入而成。

2. 感覺機與多層網絡

感覺機,實際由兩層神經元組成。輸入層和輸出層。

更一般的,神經網絡是形如下方的層級結構,每層神經元與下一層神經元全互連,神經元之間不存在同層連接配接,也不存在跨層連接配接。稱為“多層前饋神經網絡”(Multi-layer feedforward NN)。

《西瓜書》筆記05:神經網絡1. 神經元模型2. 感覺機與多層網絡3. 誤差逆傳播/反向傳播算法4. 全局最小和局部極小5. 其他常見神經網絡6. 深度學習

“前饋”并不是說網絡中信号不能向後傳,而是說網絡拓撲結構上不存在環或者回路。

神經網絡學到的東西,蘊含在權重中。

3. 誤差逆傳播/反向傳播算法

Error BackPropagation,BP,誤差逆傳播/反向傳播。

BP算法基于梯度下降法,以目标的負梯度對參數調整。

鍊式法則:前向計算時,值一層層傳遞;反向計算梯度時,梯度一層層回流。

标準BP算法,每次僅針對一個樣例更新權重,參數更新非常頻繁,不同樣例更新效果可能會出現抵消的效果。

累計BP算法,針對累計誤差最小化,讀取整個訓練集一遍後才對參數更新。更新頻率較低。很多任務中,累計誤差下降到一定程度則不再動,這時标準BP往往更快獲得最優解。

标準BP和累積BP的差別:類似于随機梯度下降(SGD)和标準梯度下降的差別。

Hornik,1989證明:隻需一個包含足夠多神經元的隐層,多層前饋NN就能以任意精度逼近任意複雜的連續函數。

由于BP強大的表達能力,BP經常過拟合。兩種政策:

  • 早停:資料集分為訓練集和驗證集。若訓練誤差降低而驗證集誤差升高,停止訓練。
  • 正則化:在誤差目标函數中增加一個描述網絡複雜度的部分,如權重的平方和。

增加正則項,訓練過程比較偏好比較小的連接配接權重,使得網絡輸出更加“光滑”,對過拟合有所緩解。如下圖M=9,非常拟合訓練集,但泛化能力沒有M=3好,M=3更平滑,“認的不真”,是以有容乃大,乃泛化。

《西瓜書》筆記05:神經網絡1. 神經元模型2. 感覺機與多層網絡3. 誤差逆傳播/反向傳播算法4. 全局最小和局部極小5. 其他常見神經網絡6. 深度學習

4. 全局最小和局部極小

NN的訓練過程:在參數空間中尋找一組最優參數,使得E最小。

《西瓜書》筆記05:神經網絡1. 神經元模型2. 感覺機與多層網絡3. 誤差逆傳播/反向傳播算法4. 全局最小和局部極小5. 其他常見神經網絡6. 深度學習

參數空間中梯度為0的點,是我們關注的。基于梯度的搜尋,是最為廣泛的參數尋優方法。每次疊代,先計算損失函數在目前點的梯度,根據負梯度方向是下降最快的方向,沿着此方向搜尋最優解。

有時陷入了局部極小值,如何跳出?

  • 用多組不同參數值來初始化多個NN,按标準方法訓練後,取誤差最小的值為最終參數。此相當于從多個點開始搜尋,派出幾路人馬,更可能找到全局最小的。
  • 使用模拟退火(simulated annealing)。該方法在每一步都以一定的機率,接受比目前解更差的結果,有助于跳出局部極小。每步疊代中,接受“次優解”的機率随着時間推移而逐漸降低(退火),保證算法穩定。
  • 随機梯度下降。與标準GD精确計算梯度不同,SGD計算時加入了随機因素,有助于跳出局部極小。

注:上述算法均是啟發式,可能也會跳出全局最小。

5. 其他常見神經網絡

5.1 RBF網絡(徑向基函數網絡)

RBF,Radial basis function,徑向基函數。某種沿徑向對稱的标量函數。通常定義為樣本x到資料中心的歐式距離的單調函數。如高斯徑向基函數。

《西瓜書》筆記05:神經網絡1. 神經元模型2. 感覺機與多層網絡3. 誤差逆傳播/反向傳播算法4. 全局最小和局部極小5. 其他常見神經網絡6. 深度學習

RBF網絡,單隐層前饋NN,使用徑向基函數作為隐層神經元的激活函數,輸出層是隐層神經元輸出的線性組合。

《西瓜書》筆記05:神經網絡1. 神經元模型2. 感覺機與多層網絡3. 誤差逆傳播/反向傳播算法4. 全局最小和局部極小5. 其他常見神經網絡6. 深度學習

q個神經元,ci是第i個神經元對應的中心。p為徑向基函數。學習分兩步:一是确定神經元中心,可用聚類等;二是利用BP算法确定參數。

5.2 ART網絡

競争型學習,是NN中一種無監督學習政策。使用該政策時,網絡的輸出神經元互相競争,每一時刻僅有一個競争獲勝的神經元被激活。其他神經元的狀态被抑制,即“勝者通吃”。

ART(adaptive resonance theory,自适應諧振)網絡,是競争型學習的代表。

該網絡組成:

  • 比較層:負責接收輸入樣本,将其傳遞給識别層
  • 識别層:每個神經元對應一個模式類,訓練中可動态增加神經元數目來增加新的模式類。(即增量學習/線上學習)
  • 識别門檻值和重置子產品

接收到比較層的輸入信号後,識别層神經元互相競争。可計算輸入向量與每個識别層神經元對應的模式類的代表向量的距離,距離最小者勝出。獲勝神經元向其他發送信号,抑制其激活。

若輸入向量與獲勝神經元的代表向量的相似度大于識别門檻值,則目前輸入樣本被劃歸為該代表向量所屬類别。網絡連接配接權同時更新,使得後續接收到相似樣本時該模式類可計算出更大的相似度,有更大獲勝可能。

若相似度不大于識别門檻值,則重置子產品将在識别層增設一個新的神經元,其代表向量就設定為目前向量。

那麼,識别門檻值較高,輸入樣本将會被傾向于較多類,門檻值低則反之。

ART較好的緩解了競争型學習中的“可塑性-穩定性窘境”:可塑性是說網絡要有學習新知識的能力,穩定性是說網絡學習新知識時要保持對舊知識的記憶。則ART的優點就是:可增量學習/線上學習。

增量學習是說學得模型後,再接收到新樣本後,僅需根據新樣例對模型更新,不必重新訓練整個模型,先前學得的不會被沖掉;

線上學習說的是美獲得一個新樣本進行一次更新。線上學習是增量學習的特例,增量學習可看作是批量模式的線上學習。

5.3 SOM網絡

self-organizating map,自組織映射網絡

競争學習型的無監督神經網絡。将高維輸入資料映射到低維空間(通常為2維),同時需要保持輸入資料在高維空間的拓撲結構,将高維空間中相似的樣本點映射到網絡輸出層的鄰近神經元。

《西瓜書》筆記05:神經網絡1. 神經元模型2. 感覺機與多層網絡3. 誤差逆傳播/反向傳播算法4. 全局最小和局部極小5. 其他常見神經網絡6. 深度學習

輸出層的每個神經元有一個權向量,網絡接收輸入層向量後,将會确定輸出層獲勝神經元,它決定了該輸入在低維空間的位置。SOM訓練目标是為每個輸出層神經元找到合适權向量,以達到保持拓撲結構的目的。

訓練過程:接收一個訓練樣本後,每個輸出層神經元會計算該樣本與自身攜帶的權向量之間的距離,距離最近的神經元成為競争獲勝者,為最佳比對單元。然後,最佳比對神經元及其鄰近神經元的權向量将被調整,以使得這些權向量與目前輸入樣本的距離縮小。這個過程不斷疊代,直至收斂。

5.4 級聯相關網絡

一般的NN假設網絡結構是固定的,學習的過程是确定參數的過程。

而結構自适應網絡,将網絡結構也作為學習目标。級聯相關網絡(Cascade-correlation)是其代表。

ART網絡用于隐層神經元數目可增長,也是一種結構自适應型網絡。

關鍵詞:

  • 級聯:建立層次連接配接的層級結構,開始網絡隻有輸入輸出層。訓練時,随着新的隐層神經元加入,建立起層級結構。
  • 相關:加入新的隐層神經元,其輸入端連接配接權值是當機固定的,相關是通過最大化新神經元的輸出與網絡輸出之間的相關性而訓練參數。
《西瓜書》筆記05:神經網絡1. 神經元模型2. 感覺機與多層網絡3. 誤差逆傳播/反向傳播算法4. 全局最小和局部極小5. 其他常見神經網絡6. 深度學習

與一般相比,無需設定網絡層數等,訓練速度較快,但是資料較小時容易過拟合。

插:動态增加分支(決策樹),動态增加隐結點(級聯網絡),這種都容易過拟合。因為不僅其參數,包括其結構都在适應訓練集,在這個意義上,更容易過拟合。

5.5 遞歸神經網絡

recurrent NN,recursive NN均對。

與前饋NN不同,遞歸神經網絡允許出現環形結構,可讓一些神經元的輸出回報回來作為輸入。使得網絡在t時刻的輸出不僅依賴于t時刻輸入,并且依賴于t-1時刻的網絡狀态。進而能處理與時間有關的動态變化。

可以叫循環(不斷回報),也可叫遞歸(t時刻依賴于t-1時刻)。

Elman網絡是最常用的遞歸之一。結構如下圖:

《西瓜書》筆記05:神經網絡1. 神經元模型2. 感覺機與多層網絡3. 誤差逆傳播/反向傳播算法4. 全局最小和局部極小5. 其他常見神經網絡6. 深度學習

5.6 玻爾茨曼機

神經網絡中有一類模型:為網絡狀态定義一個能量。能量最小化時達到理想狀态。而網絡的訓練就是在最小化這個能量函數。

玻爾茨曼機,就是這樣一種基于能量的模型。常見結構如下:

《西瓜書》筆記05:神經網絡1. 神經元模型2. 感覺機與多層網絡3. 誤差逆傳播/反向傳播算法4. 全局最小和局部極小5. 其他常見神經網絡6. 深度學習

神經元都是布爾型的,非0即1。0狀态表示抑制,1狀态表示激活。

《西瓜書》筆記05:神經網絡1. 神經元模型2. 感覺機與多層網絡3. 誤差逆傳播/反向傳播算法4. 全局最小和局部極小5. 其他常見神經網絡6. 深度學習

若網絡中的神經元以任意不依賴于輸入值的順序進行更新,則網絡最終達到玻爾茨曼分布/平衡态/平穩分布:此時狀态向量出現的機率,僅由其能量與所有可能狀态向量的能量确定。

玻爾茨曼機的訓練過程:将每個訓練樣本視為一個狀态向量,使其出現的機率盡可能大。标準機是一個全連接配接圖,複雜度較高。常用受限的玻爾茨曼機(Restricted BM, RBM)。

6. 深度學習

理論上,參數越多,模型越複雜,容量越大,越意味着可完成更複雜的任務。

但一般,複雜模型的訓練效率低,易陷入過拟合。随着雲計算。大資料時代的到來,計算能力的大幅提高可緩解訓練低效性,訓練資料的大幅增加,可降低過拟合。

深度學習模型:很深層的神經網絡。

提高容量的方法:

  • 增加隐層的數目
  • 增加隐層神經元的數目

增加隐層數目的方法顯然比增加隐層神經元的數目更有效:增加隐層數不僅增加了擁有激活函數的神經元數目,還增加了激活函數嵌套的層數。

多隐層NN難以用經典算法求解:誤差在多隐層反響傳播時,往往會發散而不能收斂到穩定狀态。

無監督逐層訓練:多隐層訓練的有效手段。每次訓練一層隐結點,訓練時将上一層隐結點的輸出作為輸入,本層隐結點的輸出作為下一層的輸入,此稱為預訓練。預訓練全部完成後,再對整個網絡進行微調訓練。

例如:深度信念網絡(DBN),每層都是一個受限玻爾茨曼機。整個網絡視為若幹個RBM堆疊而成,首先預訓練,完成後再利用BP對整個網絡進行訓練。

預訓練+微調的做法:可看作是将大量參數分組。對每組先找到局部看起來比較好的設定,然後再基于這些局部較優結果聯合全局最優。

另一種節省訓練開銷的政策:權重共享。一組神經元使用相同的連接配接權。CNN中使用。

另一個角度看深度學習:

無論哪種網絡,其多層堆疊,每層對上一層的輸出進行處理的機制,可看作是對輸入信号不斷逐層加工,進而把初始的,與輸出目标不太相關的輸入表示,轉化為與輸出目标相關的表示。通過多層處理,逐漸将低層特征表示轉化為高層特征表示後,用簡單模型即可完成複雜的分類任務。

由此,可将深度學習了解為進行“特征學習”,或者“表示學習”。

以往的機器學習任務中,描述特征的樣本通常需要由人類專家設計,稱為“特征工程”。特征好壞對泛化性能有至關影響。人類設計好特征并非易事,特征學習則通過機器學習技術來産生好特征。使得機器學習向“全自動資料分許”前進了一大步。

神經網絡是一種難以解釋的黑箱模型。

繼續閱讀