周志華《機器學習》課後習題解答系列(六):Ch5 - 神經網路

Snoopy_Yuan發表於2017-05-12

本章所涉及的程式設計練習主要採用Python實現,檢視相關答案和原始碼,歡迎訪問我的Github:PY131/Machine-Learning_ZhouZhihua.

本章概要

本章講述人工神經網路(Artificial Neural Network,ANN),相關內容包括:

  • 神經元模型(neuron)

M-P神經元模型,帶權的連線,閾值(threshold),啟用函式(activation function),Sigmoid函式;

  • 感知機(Perceptron)與多層網路(multi-layer networks)

感知機網路,線性可分,隱含層(hidden layer),單隱層網路,多層前饋神經網路(multi-layer feedforward neural networks);

  • 誤差逆傳播演算法(BP algorithms)

BP演算法,BP網路,梯度下降法,學習率,標準BP演算法,累積BP演算法,隱層神經元個數調整-試錯法(trial-by-error),過擬合問題,早停(early-stopping),正則化(regularization);

  • 全域性最小與區域性最小

全域性最小(global minimum),區域性最小(local minimum),多初始化,模擬退火(simulated annealing),隨機梯度下降;

  • 其他常見神經網路模型

RBF網路,徑向基函式(RBF),高斯徑向基函式;

ART網路,競爭性學習(competitive learning),比較層,識別層,模式類,識別閾值,可塑性-穩定性窘境,增量學習;

SOM網路,高維到低維對映,最佳匹配單元,距離;

級聯相關網路(cascade-correlation),結構自適應,相關性;

Elman網路,遞迴神經網路,狀態反饋,推廣BP演算法;

Boltzmann機,基於能量(energy)的模型,能量最小化,布林型神經元,受限Boltzmann機(RBM),對比散度(contrastive divergence);

  • 深度學習簡介

多隱層,無監督逐層訓練(unsupervised layer-wise training),預訓練-微調,深度信念網路(DBN),權共享(weight sharing),卷積神經網路(CNN),特徵學習(feature learning),特徵工程(feature engineering);


神經網路的優劣總結

人工神經網路的好處很多,這裡不做贅述,下面列出一些在使用神經網路方法時,需要注意的問題:

  • 演算法收斂速度問題
  • 過擬合風險
  • 區域性最優風險
  • 網路結構選擇問題
  • 樣本依賴問題
  • 黑盒模型缺陷

課後練習

5.1 神經元啟用函式選擇考慮

這裡寫圖片描述

啟用函式的選取是很靈活的,不同層可選擇不同的啟用函式,但一般都會要求滿足非線性。若為線性(即形如題中 f(x)=wx ),根據多項式組合法則,多層網路退化成等價的單層網路,此時模型成為線性模型,無法解決非線性問題,如線性不可分的分類問題。

進一步,啟用函式一般會追求以下性質:

  • 非線性,內在反映的是模型的非線性;
  • 可微性,以支援梯度下降法等基於微分的優化方法;
  • 單調性,以保證單層網路是凸約束,從而存在最優;
  • 輸出值範圍受限,當輸出有限時,尋優演算法(如梯度下降)變得更加穩定;
  • 導數可由原函式計算出,以便重複利用;

最常用的啟用函式有:Sigmoid(對數機率函式),Tanh(雙曲正切函式),ReLUs(修正線性函式),RBF(徑向基函式),softmax(歸一化指數函式)…


5.2 Sigmoid啟用函式與對率迴歸的聯絡

這裡寫圖片描述

圖5.2(b)採用Sigmoid函式作為啟用函式,相當於將每個節點視為對率迴歸分類器,其係數為輸入連線的權值ω(包括閾值對應的啞變數-1係數θ);


5.3 BP演算法推導

這裡寫圖片描述

圖如下所示:

這裡寫圖片描述

引數 v_ih 的更新公式為(書公式5.5):

這裡寫圖片描述

其中 Δv_ih 如下(書上公式5.13):

這裡寫圖片描述

給出具體的推導過程如下:

這裡寫圖片描述


5.4 學習率取值分析

這裡寫圖片描述
這裡寫圖片描述

學習率 η 控制著梯度下降法的搜尋步長(相關內容可參考書p408-附錄B.4的梯度下降法的內容):

對於固定的 η,參考書p109頁: η 過大,收斂過程易振盪, η 過小,收斂速度過慢。

常把學習率 η 設定為隨迭代次數變化的量,使其隨著訓練的要求變化而變化(一般是減小)。如剛開始 η 大以快速到達到目標值附近, 後期 η 小以保證收斂穩定。


5.5 BP演算法實驗

這裡寫圖片描述

參考書p105,標準BP演算法和累積BP演算法的最大區別在於梯度下降法的實現,前者採用隨機梯度下降法原理,後者採用標準梯度下降法,相關可參考題3.3對率迴歸中的兩種梯度下降法的實現。

本題程式設計採用python-pybrain實現,詳細過程見:

周志華《機器學習》課後習題解答系列(六):Ch5.5 - BP演算法實現


5.6 BP演算法改進

這裡寫圖片描述

這裡採用“新增動量項+自適應學習率”機制來加快BP演算法收斂。詳細過程見:

周志華《機器學習》課後習題解答系列(六):Ch5.6 - BP演算法改進


5.7 RBF神經網路實驗

這裡寫圖片描述

詳細過程見:

周志華《機器學習》課後習題解答系列(六):Ch5.7 - RBF網路實驗


5.8 SOM神經網路實驗

這裡寫圖片描述

詳細過程見:

周志華《機器學習》課後習題解答系列(六):Ch5.8 - SOM網路實驗


5.9 Elman網路的BP演算法推導

這裡寫圖片描述

這裡簡單說說思路:

Elman神經網路是一種遞迴神經網路(RNN),它將上一次隱層輸出和當前輸入一起作為隱層輸入(反饋*feedback),從而實現網路的“記憶*”功能。

Elman訓練演算法以MLP-BP演算法為基礎,但是在計算隱層梯度時,要考慮由於反饋而產生的時序項,所以在訓練演算法中存在累加項。更多內容可以參考RECURRENT NEURAL NETWORKS TUTORIAL

遞迴神經網路正廣泛應用於自然語言處理(NLP)等新興領域。


5.10 卷積神經網路實驗

這裡寫圖片描述

本章最後一題,詳細過程見:

周志華《機器學習》課後習題解答系列(六):Ch5.10 - 卷積神經網路實驗


相關文章