M-P模型的來源
所謂M-P模型,其實是按照生物神經元的結構和工作原理構造出來的一個抽象和簡化了的模型。
下圖是生物神經元結構。
?
大家可以查一查一些生物方面的書籍,了解一下這個神經元是如何工作的。我們可以概括出生物神經網絡的假定特點:
1. 每個神經元都是一個多輸入單輸出的信息處理單元;
2. 神經元輸入分興奮性輸入和抑制性輸入兩種類型;
3. 神經元具有空間整合特性和閾值特性;
4. 神經元輸入與輸出間有固定的時滯,主要取決于突觸延擱
M-P模型
按照生物神經元,我們建立M-P模型。為了使得建模更加簡單,以便于進行形式化表達,我們忽略時間整合作用、不應期等復雜因素,并把神經元的突觸時延和強度當成常數。下圖就是一個M-P模型的示意圖。
?
那么接下來就好類比理解了。我們將這個模型和生物神經元的特性列表來比較:
?
結合M-P模型示意圖來看,對于某一個神經元j (注意別混淆成變量了,在這里j 只是起到標識某個神經元的作用),它可能接受同時接受了許多個輸入信號,用 χi 表示。
由于生物神經元具有不同的突觸性質和突觸強度,所以對神經元的影響不同,我們用權值 ωij 來表示,其正負模擬了生物神經元中突出的興奮和抑制,其大小則代表了突出的不同連接強度。
θj表示為一個閾值(threshold),或稱為偏置(bias)。
由于累加性,我們對全部輸入信號進行累加整合,相當于生物神經元中的膜電位(水的變化總量),其值就為:
?
神經元激活與否(外接專用水管流出與否)取決于某一閾值電平(水位高度),即只有當其輸入總和超過閾值θj 時,神經元才被激活而發放脈沖,否則神經元不會發生輸出信號。整個過程可以用下面這個函數來表示:
?
yj表示神經元j的輸出,函數f稱為激活函數 ( Activation Function )或轉移函數 ( Transfer Function ) ,net'j(t)稱為凈激活(net activation)。
若將閾值看成是神經元j的一個輸入x0的權重w0j,則上面的式子可以簡化為:
?
若用X表示輸入向量,用W表示權重向量,即:
則神經元的輸出可以表示為向量相乘的形式:
若神經元的凈激活net為正,稱該神經元處于激活狀態或興奮狀態(fire),若凈激活net為負,則稱神經元處于抑制狀態。
由此我們可以得到總結出M-P模型的6個特點:
1. 每個神經元都是一個多輸入單輸出的信息處理單元;
2. 神經元輸入分興奮性輸入和抑制性輸入兩種類型;
3. 神經元具有空間整合特性和閾值特性;
4. 神經元輸入與輸出間有固定的時滯,主要取決于突觸延擱;
5. 忽略時間整合作用和不應期;
6. 神經元本身是非時變的,即其突觸時延和突觸強度均為常數。
前面4點和生物神經元保持一致。
結合公式來看,輸入χij的下標 i=1,2,...,n,輸出 yj 的下標j 體現了第1個特點“多輸入單輸出”;
權重值 ωij 的正負體現了第2個特點中“突觸的興奮與抑制”;
θj 代表第3個特點 中的閾值,當 net'j(t)?Tj>0 時,神經元才能被激活;
為了簡單起見,對膜電位的計算net'j(t) 并沒有考慮時間整合,只考慮了空間整合,即只對每條神經末梢傳來的信號根據權重進行累加整合,而沒有考慮輸入輸出間的突觸時延,體現了第5個特點。
這種“閾值加權和”的神經元模型稱為M-P模型 ( McCulloch-Pitts Model ),也稱為神經網絡的一個處理單元( PE, Processing Element )。
常用激活函數
激活函數的選擇是構建神經網絡過程中的重要環節,下面簡要介紹常用的激活函數。
?
以上3個激活函數都屬于線性函數,下面介紹兩個常用的非線性激活函數。
?
S形函數與雙極S形函數的圖像如下:
?
雙極S形函數與S形函數主要區別在于函數的值域,雙極S形函數值域是(?1,1),而S形函數值域是(0,1)。
由于S形函數與雙極S形函數都是可導的(導函數是連續函數),因此適合用在BP神經網絡中。(BP算法要求激活函數可導)
最簡單的神經網絡結構——感知器
在1958年,美國心理學家Frank Rosenblatt提出一種具有單層計算單元的神經網絡,稱為感知器(Perceptron)。它其實就是基于M-P模型的結構。我們可以看看它的拓撲結構圖。
?
這個結構非常簡單,如果你還記得前面所講的M-P神經元的結構的話,這個圖其實就是輸入輸出兩層神經元之間的簡單連接(如果忘了可以看看第一話的模型示意圖)。
由第一話的(2)中我們知道輸入層各節點的輸入加權和
我們一般采用符號函數來當作單層感知器的傳遞函數,即輸出
公式(2)可以進一步表達為:
單層感知器的局限性
雖然單層感知器簡單而優雅,但它顯然不夠聰明——它僅對線性問題具有分類能力。什么是線性問題呢?簡單來講,就是用一條直線可分的圖形。比如,邏輯“與”和邏輯“或”就是線性問題,我們可以用一條直線來分隔0和1。
1)邏輯“與”的真值表和二維樣本圖如圖2:
?
2)邏輯“或”的真值表如圖3:
?
為什么感知器就可以解決線性問題呢?這是由它的傳遞函數決定的。這里以兩個輸入分量 x1 和 x2 組成的二維空間為例,此時節點 j 的輸出為
所以,方程
確定的直線就是二維輸入樣本空間上的一條分界線。對于三維及更高維數的推導過程可以參考其他的Tutorials。
如果要讓它來處理非線性的問題,單層感知器網就無能為力了。例如下面的“異或”,就無法用一條直線來分割開來,因此單層感知器網就沒辦法實現“異或”的功能。
?
多層感知器的瓶頸
既然一條直線無法解決分類問題,當然就會有人想到用彎曲的折線來進行樣本分類。我們常常聽到一句批評人笨的話“你這人腦袋就是不會轉彎!”大意就是如此,腦袋會轉彎的人才善于解決問題。所以,人們請來了單層感知器他哥——多層感知器來幫忙。所謂多層感知器,就是在輸入層和輸出層之間加入隱層,,以形成能夠將樣本正確分類的凸域。多層感知器的拓撲結構如下圖所示。
?
我們可以比較一下單層感知器和多層感知器的分類能力:
?
由上圖可以看出,隨著隱層層數的增多,凸域將可以形成任意的形狀,因此可以解決任何復雜的分類問題。實際上,Kolmogorov理論指出:雙隱層感知器就足以解決任何復雜的分類問題。
多層感知器確實是非常理想的分類器,但問題也隨之而來:隱層的權值怎么訓練?對于各隱層的節點來說,它們并不存在期望輸出,所以也無法通過感知器的學習規則來訓練多層感知器。因此,多層感知器心有余而力不足,雖然武功高強,但卻無力可施。
ANN的低潮期
1966年,Minisky和Papert在他們的《感知器》一書中提出了上述的感知器的研究瓶頸,指出理論上還不能證明將感知器模型擴展到多層網絡是有意義的。這在人工神經網絡的歷史上書寫了極其灰暗的一章。對ANN的研究,始于1890年開始于美國著名心理學家W.James對于人腦結構與功能的研究,半個世紀后W.S.McCulloch和W.A.Pitts提出了M-P模型,之后的1958年Frank Rosenblatt在這個基礎上又提出了感知器,此時對ANN的研究正處在升溫階段,《感知器》這本書的出現就剛好為這剛剛燃起的人工神經網絡之火潑了一大盆冷水。一時間人們仿佛感覺對以感知器為基礎的ANN的研究突然間走到盡頭,看不到出路了。于是,幾乎所有為ANN提供的研究基金都枯竭了,很多領域的專家紛紛放棄了這方面課題的研究。
?
ANN研究的復蘇和BP神經網絡的誕生
所以說真理的果實總是垂青于能夠忍受寂寞的科學家。盡管ANN的研究陷入了前所未有的低谷, 但仍有為數不多的學者忍受住寂寞,堅持致力于ANN的研究。在長達10年的低潮時期之間,相 繼有一些開創性的研究成果被提出來,但還不足以激起人們對于ANN研究的熱情。一直到上世 紀80年代,兩個璀璨的成果誕生了:1982年美國加州理工學院的物理學家John J.Hopfield博 士的Hopfield網絡和David E.Rumelhart以及James L.McCelland研究小組發表的《并行分布 式處理》。這兩個成果重新激起了人們對ANN的研究興趣,使人們對模仿腦信息處理的智能計 算機的研究重新充滿了希望。
前者暫不討論,后者對具有非線性連續變換函數的多層感知器的誤差反向傳播(Error Back Propagation)算法進行了詳盡的分析,實現了 Minsky 關于多層網絡的設想。Error Back Propagation算法的簡稱就是BP算法,以BP算法實現的多層感知器網絡就是BP網絡。
所以,BP網絡本質上并不是一個新的網絡,而是使用BP學習算法的多層感知器網絡。
評論
查看更多