神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過程就是根據(jù)訓(xùn)練數(shù)據(jù)來調(diào)整神經(jīng)元之間的連接權(quán)重以及每個功能神經(jīng)元的閾值。
5.1 神經(jīng)元模型
神經(jīng)網(wǎng)絡(luò)定義:神經(jīng)網(wǎng)絡(luò)是由具有適應(yīng)性的簡單單元(神經(jīng)元)組成的廣泛并行互聯(lián)的網(wǎng)絡(luò),它的組織能夠模擬生物神經(jīng)系統(tǒng)對真實世界物體所作出的交互反應(yīng)。
神經(jīng)元工作原理:在生物神經(jīng)網(wǎng)絡(luò)中,每個神經(jīng)元與其他神經(jīng)元相連,當(dāng)它“興奮”時,就會向相連的神經(jīng)元發(fā)送化學(xué)物質(zhì),從而改變這些神經(jīng)元內(nèi)的電位;如果某神經(jīng)元的電位超過了一個“閾值”,那么它就會被激活,即“興奮”起來,向其他神經(jīng)元發(fā)送化學(xué)物質(zhì)。
根據(jù)神經(jīng)元工作原理抽象化的簡單模型——M-P神經(jīng)元模型(如圖5.1):神經(jīng)元接收來自n個其他神經(jīng)元傳遞過來的輸入信號,這些輸入信號通過帶權(quán)重的連接進行傳遞,神經(jīng)元接收到的總輸入值將與神經(jīng)元的閾值進行比較,然后通過“激活函數(shù)”處理以產(chǎn)生神經(jīng)元的輸出。
把許多個神經(jīng)元按一定的層次結(jié)構(gòu)連接起來,就得到了神經(jīng)元網(wǎng)絡(luò)。從計算機科學(xué)的角度看,可把一個神經(jīng)元網(wǎng)絡(luò)視為包含了許多參數(shù)的數(shù)學(xué)模型,這個模型是若干個函數(shù)。

理想中的激活函數(shù):是階躍函數(shù),將輸入值映射為輸出值“0”(對于神經(jīng)元抑制)或“1”(對于神經(jīng)元興奮),階躍函數(shù)具有不連續(xù)、不光滑等性質(zhì)。
實際常用的激活函數(shù):是Sigmoid函數(shù)(擠壓函數(shù)),把可能在較大范圍內(nèi)變化的輸入值擠壓到(0,1)輸出值范圍內(nèi)。

5.2 感知機
感知機由兩層神經(jīng)元組成,輸入層接收外界輸入信號后傳遞給輸出層,輸出層是M-P神經(jīng)元,亦稱“閾值邏輯單元”。感知機能容易地實現(xiàn)邏輯與、或、非運算。

權(quán)重w和閾值θ可以通過學(xué)習(xí)得到。
當(dāng)學(xué)習(xí)過程中出現(xiàn)誤差時,感知器的權(quán)重將調(diào)整。

感知機只有輸出層神經(jīng)元進行激活函數(shù)處理,即只擁有一層功能神經(jīng)元,其學(xué)習(xí)能力十分有限,只能解決線性可分(即存在一個線性超平面能將它們分開)問題(“與”問題、“或”問題、“非”問題),此時感知機的學(xué)習(xí)過程一定會收斂;否則感知機學(xué)習(xí)過程將會發(fā)生振蕩,w難以穩(wěn)定下來,不能求得合適解(“異或”問題)。

5.3 多層網(wǎng)絡(luò)
要解決非線性可分問題,需考慮使用多層功能神經(jīng)元。
輸出層與輸入層之間的一層神經(jīng)元,被稱為隱層或隱含層,隱含層和輸出層神經(jīng)元都是擁有激活函數(shù)的功能神經(jīng)元。

一般的,常見的神經(jīng)網(wǎng)絡(luò)-——多層前饋神經(jīng)網(wǎng)絡(luò),每層神經(jīng)元下層神經(jīng)元全互連,神經(jīng)元之間不存在同層連接,也不存在跨層連接。

5.4 誤差逆?zhèn)鞑ニ惴ǎ˙P算法)
BP算法可用于多層前饋神經(jīng)網(wǎng)絡(luò),也可用于其他類型的神經(jīng)網(wǎng)絡(luò)。



BP算法是一個迭代學(xué)習(xí)算法,在迭代的每一輪學(xué)習(xí)采用廣義的感知機學(xué)習(xí)規(guī)則對參數(shù)進行估計:

BP算法基于梯度下降策略,以目標(biāo)的負(fù)梯度方向?qū)?shù)進行調(diào)整。
BP算法的工作流程:先將輸入示例提供給輸入層神經(jīng)元,然后逐層將信號前傳,直到產(chǎn)生輸出層的結(jié)果;然后計算輸出層的誤差(第4 - 5行),再將誤差逆向傳播至隱層神經(jīng)元(第6行),最后根據(jù)隱層神經(jīng)元的誤差來對連接權(quán)和閾值進行調(diào)整(第7行) .該迭代過程循環(huán)進行,直到達(dá)到某些停止條件為止。

BP算法的目標(biāo)是最小化訓(xùn)練集D上的累積誤差:

標(biāo)準(zhǔn)BP算法和累積BP算法的區(qū)別:
"標(biāo)準(zhǔn)BP算法"每次僅針對一個訓(xùn)練樣例更新連接權(quán)和閾值,即算法的更新規(guī)則是基于單個的Ek推導(dǎo)而得,參數(shù)更新非常頻繁,而且對不同樣例進行更新的效果可能出現(xiàn)抵消現(xiàn)象。為了達(dá)到累積誤差極小點,需進行更多次數(shù)的迭代。
“累積BP算法”基于累積誤差最小化的更新規(guī)則,直接針對累積誤差最小化,它在讀取整個訓(xùn)練集D一遍后才對參數(shù)進行更新,其參數(shù)更新的頻率低得多。
兩種緩解BP網(wǎng)絡(luò)過擬合的策略:
早停:將數(shù)據(jù)分成訓(xùn)練集和驗證集,訓(xùn)練集用來計算梯度、更新連接權(quán)和閾值,驗證集用來估計誤差,若訓(xùn)練集誤差降低但驗證集誤差升高,則停止訓(xùn)練,同時返回具有最小驗證集誤差的連接權(quán)和閾值。
正則化:在誤差目標(biāo)函數(shù)中增加一個用于描述網(wǎng)絡(luò)復(fù)雜度的部分,例如連接權(quán)與閾值的平方和,令誤差目標(biāo)函數(shù)改變?yōu)椋?/p>

5.5 全局最小與局部最小
局部極小解是參數(shù)空間中的某個點,其鄰域點的誤差函數(shù)值均不小于該點的函數(shù)值;
全局最小解則是指參數(shù)空間中所有點的誤差函數(shù)值均不小于該點的誤差函數(shù)值。
可能存在多個局部最小值,但是只有一個全局最小值。
參數(shù)尋優(yōu)過程是希望找到全局最小。
使用最廣泛的參數(shù)尋優(yōu)方法:基于梯度的搜索。從某些初始解出發(fā),迭代尋找最優(yōu)參數(shù)值。在每次迭代中,先計算誤差函數(shù)在當(dāng)前點的梯度,然后根據(jù)梯度確定搜索方向(沿負(fù)梯度方向搜索最優(yōu)解)。
5.6 其他常見神經(jīng)網(wǎng)絡(luò)
RBF網(wǎng)絡(luò)(徑向基網(wǎng)絡(luò))
分類:單隱層前饋神經(jīng)網(wǎng)絡(luò)
激活函數(shù):徑向基函數(shù)

過程:

ART網(wǎng)絡(luò)(自適應(yīng)諧振理論網(wǎng)絡(luò))
分類:競爭型學(xué)習(xí)的無監(jiān)督網(wǎng)絡(luò)
勝者通吃原則:使用競爭型學(xué)習(xí)策略時,網(wǎng)絡(luò)的輸出神經(jīng)元相互競爭,每一時刻僅有一個競爭獲勝的神經(jīng)元被撤活,其他神經(jīng)元的狀態(tài)被抑制。
過程:該網(wǎng)絡(luò)由比較層、識別層、識別闊值和重置模塊構(gòu)成。其中比較層負(fù)責(zé)接收輸入樣本,并將其傳遞給識別層神經(jīng)元。識別層每個神經(jīng)元對應(yīng)1個模式類,神經(jīng)元數(shù)目可在訓(xùn)練過程中動態(tài)增長以增加新的模式類。在接收到比較層的輸入信號后,識別層神經(jīng)元之間相互競爭以產(chǎn)生獲勝神經(jīng)元。獲勝神經(jīng)元將向其他識別層神經(jīng)元發(fā)送信號,抑制其撤活。若輸入向量與獲勝神經(jīng)元所對應(yīng)的代表向量之間的相似度大于識別閾值,則當(dāng)前輸入樣本將被歸為該代表向量所屬類別,同時,網(wǎng)絡(luò)連接權(quán)將會更新,使得以后在接收到相似輸入樣本時該模式類會計算出更大的相似度,從而使該獲勝神經(jīng)元有更大可能獲勝;若相似度不大于識別閾值,則重置模塊將在識別層增設(shè)一個新的神經(jīng)元,其代表向量就設(shè)置為當(dāng)前輸入向量。
SOM網(wǎng)絡(luò)(自組織映射網(wǎng)絡(luò))
分類:競爭學(xué)習(xí)型的無監(jiān)督網(wǎng)絡(luò)
特點:能將高維輸入數(shù)據(jù)映射到低維空間(通常為二維),同時保持輸入數(shù)據(jù)在高維空間的拓?fù)浣Y(jié)構(gòu),即將高維空間中相似的樣本點映射到網(wǎng)絡(luò)輸出層中的鄰近神經(jīng)元。
訓(xùn)練目標(biāo):為每個輸出層神經(jīng)元找到合適的權(quán)向量,以達(dá)到保持拓?fù)浣Y(jié)構(gòu)的目的。
過程:在接收到一個訓(xùn)練樣本后,個輸出層神經(jīng)局會計算該樣本與自身攜帶的權(quán)向量之間的距離,距離最近的神經(jīng)元成為競爭獲勝者,稱為最佳匹配單元。然后,最佳匹配單元及其鄰近神經(jīng)元的權(quán)向量將被調(diào)整,以使得這些權(quán)向量與當(dāng)前輸入樣本的距離縮小。這個過程不斷迭代,直至收斂。

級聯(lián)相關(guān)網(wǎng)絡(luò)
分類:結(jié)構(gòu)自適應(yīng)網(wǎng)絡(luò)(將網(wǎng)絡(luò)結(jié)構(gòu)也當(dāng)作學(xué)習(xí)的目標(biāo)之一,并希望能在訓(xùn)練過程中找到最符合數(shù)據(jù)特點的網(wǎng)絡(luò)結(jié)構(gòu)。
級聯(lián):指建立層次連接的層級結(jié)構(gòu)。
相關(guān):指通過最大化新神經(jīng)元的輸出與網(wǎng)絡(luò)誤差之間的相關(guān)性來訓(xùn)練相關(guān)的參數(shù)。
與一般的前饋神經(jīng)網(wǎng)絡(luò)相比,級聯(lián)相關(guān)網(wǎng)絡(luò)無需設(shè)置網(wǎng)絡(luò)層數(shù)、隱層神經(jīng)元數(shù)目,且訓(xùn)練速度較快,但其在數(shù)據(jù)較小時易陷入過擬合。

Elman網(wǎng)絡(luò)
分類:遞歸神經(jīng)網(wǎng)絡(luò)(允許出現(xiàn)環(huán)狀結(jié)構(gòu),能處理與時間有關(guān)的動態(tài)變化)
激活函數(shù):Sigmoid函數(shù)
特點:它的結(jié)構(gòu)與多層前饋網(wǎng)絡(luò)很相似,但隱層神經(jīng)元的輸出被反饋回來,與下一時刻輸入層神經(jīng)元提供的信號一起,作為隱層神經(jīng)元在下一時刻的輸入。

Boltzmann機
分類:遞歸神經(jīng)網(wǎng)絡(luò)(基于能量的模型)
特點:神經(jīng)元都是布爾型的,即只能取0,1兩種狀態(tài)。
過程:將每個訓(xùn)練樣本視為一個狀態(tài)向量,使其出現(xiàn)的概率盡可能大。

5.7? ?深度學(xué)習(xí)
無監(jiān)督逐層訓(xùn)練是多隱層網(wǎng)絡(luò)訓(xùn)練的有效手段。
其基本思想是:
每次訓(xùn)練一層隱結(jié)點,訓(xùn)練時將上一隱層結(jié)點的輸出作為輸入,而本層隱結(jié)點的輸出作為下一層隱結(jié)點的輸入,這稱為預(yù)訓(xùn)練。在預(yù)訓(xùn)練全部完成后,再對整個網(wǎng)絡(luò)進行微調(diào)訓(xùn)練。
預(yù)訓(xùn)練+微調(diào)的做法可視為將大量參數(shù)分組,對每組先找到局部看來比較好的設(shè)置,然后再基于這些局部較優(yōu)的結(jié)果聯(lián)合起來進行全局尋優(yōu)。這樣就在利用了模型大量參數(shù)所提供的自由度的同時,有效的節(jié)省了訓(xùn)練開銷。
另一種節(jié)省訓(xùn)練開銷的策略是權(quán)共享,即讓一組神經(jīng)元使用相同的連接權(quán)。這個策略在卷積神經(jīng)網(wǎng)絡(luò)中發(fā)揮了重要作用。