周志華《機器學習》課後習題解答系列(六):Ch5 - 神經網路
本章所涉及的程式設計練習主要採用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 - 卷積神經網路實驗
相關文章
- 周志華《機器學習》課後習題解答系列(六):Ch5.10 - 卷積神經網路實驗機器學習H5卷積神經網路
- 周志華《機器學習》課後習題解答系列(六):Ch5.8 - SOM網路實驗機器學習H5
- 周志華《機器學習》課後習題解答系列(六):Ch5.7 - RBF網路實驗機器學習H5
- 周志華《機器學習》課後習題解答系列(一):目錄機器學習
- 周志華《機器學習》課後習題解答系列(六):Ch5.5 - BP演算法實現機器學習H5演算法
- 周志華《機器學習》課後習題解答系列(六):Ch5.6 - BP演算法改進機器學習H5演算法
- 周志華《機器學習》課後習題解答系列(四):Ch3 - 線性模型機器學習模型
- 周志華《機器學習》課後習題解答系列(五):Ch4 - 決策樹機器學習
- 機器學習-周志華-課後習題答案5.5機器學習
- 周志華《機器學習》課後習題解答系列(四):Ch3.4 - 交叉驗證法練習機器學習
- 周志華《機器學習》課後習題解答系列(三):Ch2 - 模型評估與選擇機器學習模型
- 周志華《機器學習》課後習題解答系列(四):Ch3.3 - 程式設計實現對率迴歸機器學習程式設計
- 周志華《機器學習》課後習題解答系列(四):Ch3.5 - 程式設計實現線性判別分析機器學習程式設計
- 周志華《機器學習》課後習題解答系列(五):Ch4.3 - 程式設計實現ID3演算法機器學習程式設計演算法
- 周志華《機器學習》課後習題解答系列(五):Ch4.4 - 程式設計實現CART演算法與剪枝操作機器學習程式設計演算法
- 機器學習-周志華機器學習
- 周志華 機器學習ppt機器學習
- 周志華西瓜書《機器學習》機器學習
- 周志華:滿足這三大條件,可以考慮不用深度神經網路神經網路
- Stanford機器學習課程筆記——神經網路學習機器學習筆記神經網路
- 吳恩達機器學習系列11:神經網路吳恩達機器學習神經網路
- 機器學習導圖系列(5):機器學習模型及神經網路模型機器學習模型神經網路
- 個人學習卷積神經網路的疑惑解答卷積神經網路
- 第48周學習總結——神經網路神經網路
- 機器學習整理(神經網路)機器學習神經網路
- 【卷積神經網路學習】(4)機器學習卷積神經網路機器學習
- 重磅!周志華《機器學習》手推筆記來了!機器學習筆記
- Stanford機器學習課程筆記——神經網路的表示機器學習筆記神經網路
- 吳恩達機器學習課程 筆記5 神經網路吳恩達機器學習筆記神經網路
- 機器學習定義及基本術語(根據周志華的《機器學習》概括)機器學習
- Tensorflow系列專題(四):神經網路篇之前饋神經網路綜述神經網路
- Coursera Deep Learning 4 卷積神經網路 第四周習題卷積神經網路
- 【機器學習基礎】神經網路/深度學習基礎機器學習神經網路深度學習
- 【機器學習】搭建神經網路筆記機器學習神經網路筆記
- 吳恩達《神經網路與深度學習》課程筆記(4)– 淺層神經網路吳恩達神經網路深度學習筆記
- 吳恩達《神經網路與深度學習》課程筆記(5)– 深層神經網路吳恩達神經網路深度學習筆記
- 神經網路與深度學習 課程複習總結神經網路深度學習
- 深度學習系列(2)——神經網路與深度學習深度學習神經網路