《機器學習》學習筆記(五)——神經網絡

機器學習(Machine Learning)是一門多學科交叉專業,涵蓋概率論知識,統計學知識以及複雜算法知識,使用計算機作爲工具並致力於真實實時的模擬人類學習方式, 並將現有內容進行知識結構劃分來有效提高學習效率。本專欄將以學習筆記形式對《機器學習》的重點基礎知識進行總結整理,歡迎大家一起學習交流!
專欄鏈接:《機器學習》學習筆記

目錄

1. 概述

2.神經元模型

3. 感知機與多層網絡

3.1 感知機

3.2 多層前饋網絡結構         

3.3 神經網絡發展回顧       

3.4 誤差逆傳播算法(BP算法)

BP 算法推導

3.5 標準BP算法 和 累積BP算法

標準BP算法

累積BP算法

3.6 BP神經網絡過擬合

主要策略

3.7 全局最小 和 局部極小

4 其他常見神經網絡模型

5 深度學習的興起


1. 概述

神經網絡是由具有適應性的簡單單元組成的廣泛並行互連的網絡,它的組織能夠模擬生物神經系統對真實世界物體所作出的交互反應。 神經網絡中最基本的成分是神經元模型,即上述定義中的“簡單單元”。如果某神經元的電位超過一個閾值,那麼它就會被激活,即興奮起來,向其他神經元發送化學物質。

2.神經元模型

M-P 神經元模型 [McCulloch and Pitts,  1943]

M-P 神經元模型

M-P神經元模型,在這個模型中,神經元接收到來自n個其他神經元傳遞過來的輸入信號,這些輸入信號通過帶權重的連接進行傳遞,神經元接收到的總輸入值將與神經元的閾值進行比較,然後通過“激活函數”處理以產生神經元的輸出。

★功能性的神經元層:有激活函數、有閾值函數(有 Sigmoid 函數

激活函數

理想激活函數是階躍函數 , 0表示抑制神經元而1表示激活神經元
階躍函數具有不連續、不光滑等不好的性質 , 常用的是 Sigmoid 函數

典型的神經元激活函數

 

3. 感知機與多層網絡

3.1 感知機

感知機(Perceptron)由兩層神經元組成(輸入層、輸出層),輸入層接收外界輸入信號後傳遞給輸出層,輸出層是M-P神經元,亦稱“閾值邏輯單元”(threshold logic unit)。    
感知機能容易的實現邏輯與、或、非運算。 

感知機模型

對於“與”、“或”、“非”問題是線性可分的;
對於“異或”問題是非線性可分的。

3.2 多層前饋網絡結構         

多層網絡:包含隱層的網絡           
前饋網絡:神經元之間不存在同層連接也不存在跨層連接,即網絡中無環或者回路。             
隱層和輸出層神經元亦稱“功能單元”(functional unit),無隱藏層的又稱“感知機(Perceptron)”

“前饋”並不意味着網絡中信號不能像後傳,而是指網絡拓撲結構上不存在環或迴路。

神經網絡的學習過程,就是根據訓練數據來調整神經元之間的“連接權”以及每個功能神經元的閾值。
換言之,神經網絡“學”到的東西,蘊含在連接權和閾值中。

優點:
多層前饋網絡有強大的表示能力               
只需一個包含足夠多神經元的隱層 , 多層前饋神經網絡就能以任意精度逼近任意複雜度的連續函數
缺點:
但是,如何設置隱層神經元數是未決問題。實際常用“試錯法”

3.3 神經網絡發展回顧       

1940年代 -萌芽期: M-P模型 (1943), Hebb 學習規則 (1945)     
1958左右 -1969左右 ~繁榮期 : 感知機 (1958), Adaline (1960), …         
1969年: Minsky & Papert “Perceptrons”             
                 冰河期         
1985左右 -1995左右 ~繁榮期 : Hopfield (1983), BP (1986), …         
1995年左右:SVM 及 統計學習 興起
                 沉寂期
2010左右 -至今 ~繁榮期 :深度學習

發展交替模式 : 熱十(年) 冷十五(年)

3.4 誤差逆傳播算法(BP算法)

誤差逆傳播算法(error BackPropagation)又稱反向傳播算法,是多層網絡中的傑出代表,它是迄今最成功的神經網絡學習算法。現實生活中使用神經網絡時,大多是在用BP算法進行訓練。值得指出的是,BP算法不僅可以用於多層前饋神經網絡,還可用於其類型的神經網絡,例如訓練遞歸神經網絡。

BP網絡及算法中的變量符號

 

最成功、最常用的神經網絡算法,可被用於多種任務(不僅限於分類)

給定訓練集

輸入: d維特徵向量
輸出: l個輸出值
隱層:假定使用q個隱層神經元
假定功能單元均使用Sigmoid函數

BP 算法推導

對於訓練例, 假定網絡的實際輸出爲

則網絡在上的均方誤差爲:

需通過學習確定的參數數目:

BP 是一個迭代學習算法 , 在迭代的每一輪中採用如下誤差修正:

BP 算法基於梯度下降策略,以目標的負梯度方向對參數進行調整

爲例,對誤差,, 給定學習率,, 有:

                    

注意到,先影響到,再影響到, 然後才影響到, 有:

                   鏈式法則

其中項

再注意到

於是,

                   

類似地,有:

                  

其中:

                   

需要注意的是,BP算法的目標是要最小化訓練集D上的積累誤差

                        

在兩個屬性。五個樣本的數據上,BP網絡參數更新和分類邊界的變化情況

 

3.5 標準BP算法 和 累積BP算法

標準BP算法

 

每次針對單個訓練樣例更新權值與閾值 (每訓練1個樣本更新一次參數
參數更新頻繁 , 不同樣例可能抵消 , 需要多次迭代

累積BP算法

其優化目標是最小化整個訓練集上的累計誤差
讀取整個訓練集一遍纔對參數進行更新 , 參數更新頻率較低

在很多任務中 , 累計誤差下降到一定程度後 , 進一步下降會非常緩慢, 這時 標準BP算法往往會獲得較好的解, 尤其當訓練集非常大時效果更明顯。

3.6 BP神經網絡過擬合

用“試錯法”設置隱藏神經元的個數。  
由於其強大的表達能力,BP神經網絡經常遭遇過擬合
過擬合表現:訓練誤差持續降低,但測試誤差卻可能上升
兩種策略:“早停”、“正則化

主要策略

早停 (early stopping)

早停將數據分爲訓練集和驗證集,訓練集用於計算梯度、權值、閾值,驗證集用於估計誤差,當訓練集誤差下降,驗證集誤差上升,則停止訓練。 早停將數據分爲訓練集和驗證集,訓練集用於計算梯度、權值、閾值,驗證集用於估計誤差,當訓練集誤差下降,驗證集誤差上升,則停止訓練。
☞若訓練誤差連續 a 輪的變化小於 b, 則停止訓練
☞使用驗證集:若訓練誤差降低、驗證誤差升高 , 則停止訓練

正則化 (regularization)

正則化在誤差目標函數中增加一個用於描述網絡複雜度的部分;例如權值與閾值的平方和。 誤差目標函數:

                 
偏好比較小的連接權和閾值, 使網絡輸出更“光滑”

3.7 全局最小 和 局部極小

神經網絡的訓練過程可看作一個參數尋優過程:         
在參數空間中,尋找一組最優參數使得誤差最小

存在多個“局部極小”           
只有一個“全局最小”

“跳出”局部極小的常見策略:不同的初始參數、模擬退火、隨機擾動、遺傳算法 ……

以上用於跳出局部極小的技術大多是啓發式,理論上尚缺保障。



4 其他常見神經網絡模型

RBF: 分類任務中除BP之外最常用
ART:“競爭學習”的代表
SOM:最常用的聚類方法之一
級聯相關網絡:“構造性”神經網絡的代表
Elman網絡:遞歸神經網絡的代表
Boltzmann機:“基於能量的模型”的代表
   ……

5 深度學習的興起

2006年 , Hinton發表了深度學習的 Nature 文章
2012年 , Hinton 組參加 ImageNet 競賽 , 使用 CNN 模型以超過第二名 10個百分點的成績奪得當年競賽的冠軍
伴隨雲計算、大數據時代的到來,計算能力的大幅提升,使得深度學習模型在計算機視覺、自然語言處理、語音識別等衆多領域都取 得了較大的成功。

最常用的深度學習模型:卷積神經網絡

深度學習最重要的特徵: 表示學習 、聯合優化


歡迎留言,一起學習交流~~~

感謝閱讀

END

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章