今天我們重點探討一下多層感知器MLP。
感知器(Perceptron)是ANN人工神經(jīng)網(wǎng)絡(luò)的一個概念,由Frank Rosenblatt于1950s第一次引入。
單層感知器(Single Layer Perceptron)是最簡單的ANN人工神經(jīng)網(wǎng)絡(luò)。它包含輸入層和輸出層,而輸入層和輸出層是直接相連的。單層感知器僅能處理線性問題,不能處理非線性問題。今天想要跟大家探討的是MLP多層感知器。
MLP多層感知器是一種前向結(jié)構(gòu)的ANN人工神經(jīng)網(wǎng)絡(luò), 多層感知器(MLP)能夠處理非線性可分離的問題。
MLP概念:
MLP多層感知器(MulTI-layerPerceptron)是一種前向結(jié)構(gòu)的人工神經(jīng)網(wǎng)絡(luò)ANN,映射一組輸入向量到一組輸出向量。MLP可以被看做是一個有向圖,由多個節(jié)點層組成,每一層全連接到下一層。除了輸入節(jié)點,每個節(jié)點都是一個帶有非線性激活函數(shù)的神經(jīng)元。使用BP反向傳播算法的監(jiān)督學(xué)習(xí)方法來訓(xùn)練MLP。MLP是感知器的推廣,克服了感知器不能對線性不可分?jǐn)?shù)據(jù)進行識別的弱點。
相對于單層感知器,MLP多層感知器輸出端從一個變到了多個;輸入端和輸出端之間也不光只有一層,現(xiàn)在又兩層:輸出層和隱藏層。
基于反向傳播學(xué)習(xí)的是典型的前饋網(wǎng)絡(luò), 其信息處理方向從輸入層到各隱層再到輸出層,逐層進行。隱層實現(xiàn)對輸入空間的非線性映射,輸出層實現(xiàn)線性分類,非線性映射方式和線性判別函數(shù)可以同時學(xué)習(xí)。
MLP激活函數(shù)
MLP可使用任何形式的激活函數(shù),譬如階梯函數(shù)或邏輯乙形函數(shù)(logisTIc sigmoid funcTIon),但為了使用反向傳播算法進行有效學(xué)習(xí),激活函數(shù)必須限制為可微函數(shù)。由于具有良好可微性,很多乙形函數(shù),尤其是雙曲正切函數(shù)(Hyperbolictangent)及邏輯乙形函數(shù),被采用為激活函數(shù)。
激活函數(shù)的作用是將非線性引入神經(jīng)元的輸出。因為大多數(shù)現(xiàn)實世界的數(shù)據(jù)都是非線性的,希望神經(jīng)元能夠?qū)W習(xí)非線性的函數(shù)表示,所以這種應(yīng)用至關(guān)重要。
MLP原理:
前饋神經(jīng)網(wǎng)絡(luò)是最先發(fā)明也是最簡單的人工神經(jīng)網(wǎng)絡(luò)。它包含了安排在多個層中的多個神經(jīng)元。相鄰層的節(jié)點有連接或者邊(edge)。所有的連接都配有權(quán)重。
一個前饋神經(jīng)網(wǎng)絡(luò)可以包含三種節(jié)點:
1)輸入節(jié)點(Input Nodes):也稱為輸入層,輸入節(jié)點從外部世界提供信息,。在輸入節(jié)點中,不進行任何的計算,僅向隱藏節(jié)點傳遞信息。
2)隱藏節(jié)點(Hidden Nodes):隱藏節(jié)點和外部世界沒有直接聯(lián)系。這些節(jié)點進行計算,并將信息從輸入節(jié)點傳遞到輸出節(jié)點。隱藏節(jié)點也稱為隱藏層。盡管一個前饋神經(jīng)網(wǎng)絡(luò)只有一個輸入層和一個輸出層,但網(wǎng)絡(luò)里可以沒有也可以有多個隱藏層。
3)輸出節(jié)點(Output Nodes):輸出節(jié)點也稱為輸出層,負(fù)責(zé)計算,并從網(wǎng)絡(luò)向外部世界傳遞信息。
在前饋網(wǎng)絡(luò)中,信息只單向移動——從輸入層開始前向移動,然后通過隱藏層,再到輸出層。在網(wǎng)絡(luò)中沒有循環(huán)或回路。
MLP多層感知器就是前饋神經(jīng)網(wǎng)絡(luò)的一個例子,除了一個輸入層和一個輸出層以外,至少包含有一個隱藏層。單層感知器只能學(xué)習(xí)線性函數(shù),而多層感知器也可以學(xué)習(xí)非線性函數(shù)。
一般采用BP反向傳播算法來訓(xùn)練MPL多層感知器。采用BP反向傳播算法就像從錯誤中學(xué)習(xí)。監(jiān)督者在人工神經(jīng)網(wǎng)絡(luò)犯錯誤時進行糾正。MLP包含多層節(jié)點;輸入層,中間隱藏層和輸出層。相鄰層節(jié)點的連接都有配有權(quán)重。學(xué)習(xí)的目的是為這些邊緣分配正確的權(quán)重。通過輸入向量,這些權(quán)重可以決定輸出向量。在監(jiān)督學(xué)習(xí)中,訓(xùn)練集是已標(biāo)注的。這意味著對于一些給定的輸入,能夠知道期望的輸出(標(biāo)注)。
MLP訓(xùn)練過程大致如下:
1)所有邊的權(quán)重隨機分配;
2)前向傳播:利用訓(xùn)練集中所有樣本的輸入特征,作為輸入層,對于所有訓(xùn)練數(shù)據(jù)集中的輸入,人工神經(jīng)網(wǎng)絡(luò)都被激活,然后經(jīng)過前向傳播,得到輸出值。
3)反向傳播:利用輸出值和樣本值計算總誤差,再利用反向傳播來更新權(quán)重。
4)重復(fù)2)~3), 直到輸出誤差低于制定的標(biāo)準(zhǔn)。
上述過程結(jié)束后,就得到了一個學(xué)習(xí)過的MLP網(wǎng)絡(luò),該網(wǎng)絡(luò)被認(rèn)為是可以接受新輸入的。
MLP優(yōu)點:
1)高度的并行處理;
2)高度的非線性全局作用;
3)良好的容錯性;
4)具有聯(lián)想記憶功能;
5)非常強的自適應(yīng)、自學(xué)習(xí)功能。
MLP缺點:
1)網(wǎng)絡(luò)的隱含節(jié)點個數(shù)選取非常難;
2)停止閾值、學(xué)習(xí)率、動量常數(shù)需要采用”trial-and-error”法,極其耗時;
3)學(xué)習(xí)速度慢;
4)容易陷入局部極值;
5)學(xué)習(xí)可能會不夠充分。
MLP應(yīng)用:
MLP在80年代的時候曾是相當(dāng)流行的機器學(xué)習(xí)方法,擁有廣泛的應(yīng)用場景,譬如語音識別、圖像識別、機器翻譯等等,但自90年代以來,MLP遇到來自更為簡單的支持向量機的強勁競爭。近來,由于深層學(xué)習(xí)的成功,MLP又重新得到了關(guān)注。
常被MLP用來進行學(xué)習(xí)的反向傳播算法,在模式識別的領(lǐng)域中算是標(biāo)準(zhǔn)監(jiān)督學(xué)習(xí)算法,并在計算神經(jīng)學(xué)及并行分布式處理領(lǐng)域中,持續(xù)成為被研究的課題。MLP已被證明是一種通用的函數(shù)近似方法,可以被用來擬合復(fù)雜的函數(shù),或解決分類問題。
結(jié)語:
MLP多層感知器是一種前向結(jié)構(gòu)的ANN人工神經(jīng)網(wǎng)絡(luò), 它能夠處理非線性可分離的問題,值得深入研究。為了實現(xiàn)MLP多層感知器,會用到BP反向傳播算法。MLP可使用任何形式的激活函數(shù),但為了使用反向傳播算法進行有效學(xué)習(xí),激活函數(shù)必須限制為可微函數(shù)。MLP算法應(yīng)用范圍較廣,擴展性也強,可應(yīng)用于語音識別、圖像識別、機器翻譯等領(lǐng)域。