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