侵權(quán)投訴
訂閱
糾錯(cuò)
加入自媒體

神經(jīng)網(wǎng)絡(luò)1:多層感知器-MLP

神經(jīng)網(wǎng)絡(luò)是當(dāng)前機(jī)器學(xué)習(xí)領(lǐng)域普遍所應(yīng)用的,例如可利用神經(jīng)網(wǎng)絡(luò)進(jìn)行圖像識(shí)別、語(yǔ)音識(shí)別等,從而將其拓展應(yīng)用于自動(dòng)駕駛汽車(chē)。它是一種高度并行的信息處理系統(tǒng),具有很強(qiáng)的自適應(yīng)學(xué)習(xí)能力,不依賴(lài)于研究對(duì)象的數(shù)學(xué)模型,對(duì)被控對(duì)象的的系統(tǒng)參數(shù)變化及外界干擾有很好的魯棒性,能處理復(fù)雜的多輸入、多輸出非線性系統(tǒng),神經(jīng)網(wǎng)絡(luò)要解決的基本問(wèn)題是分類(lèi)問(wèn)題。

目前在機(jī)器學(xué)習(xí)領(lǐng)域火爆的開(kāi)源軟件庫(kù)中,TensorFlow算其中一個(gè),里面有大量的機(jī)器學(xué)習(xí)和深度神經(jīng)網(wǎng)絡(luò)方面的研究,畢竟由Google 大腦小組開(kāi)發(fā)出來(lái),其系統(tǒng)的通用性和易用性是無(wú)可比擬的,TensorFlow是一個(gè)采用數(shù)據(jù)流圖(Data flow graphs),用于數(shù)值計(jì)算的開(kāi)源軟件庫(kù)。節(jié)點(diǎn)(Nodes)在圖中表示數(shù)學(xué)操作,圖中的線(edges)則表示在節(jié)點(diǎn)間相互聯(lián)系的多維數(shù)據(jù)數(shù)組,即張量(tensor)。(數(shù)據(jù)流圖用“結(jié)點(diǎn)”(nodes)和“線”(edges)的有向圖來(lái)描述數(shù)學(xué)計(jì)算!肮(jié)點(diǎn)”一般用來(lái)表示施加的數(shù)學(xué)操作,但也可以表示數(shù)據(jù)輸入(feedin)的起點(diǎn)/輸出(push out)的終點(diǎn),或者是讀。瘜(xiě)入持久變量(persistent variable)的終點(diǎn)!熬”表示“節(jié)點(diǎn)”之間的輸入/輸出關(guān)系。這些數(shù)據(jù)“線”可以輸運(yùn)“size可動(dòng)態(tài)調(diào)整”的多維數(shù)據(jù)數(shù)組,即“張量”(tensor)。張量從圖中流過(guò)的直觀圖像是這個(gè)工具取名為“Tensorflow”的原因,一旦輸入端的所有張量準(zhǔn)備好,節(jié)點(diǎn)將被分配到各種計(jì)算設(shè)備完成異步并行地執(zhí)行運(yùn)算)。因此對(duì)想快速上手神經(jīng)網(wǎng)絡(luò)做一些有趣的圖像識(shí)別和語(yǔ)音識(shí)別的小伙伴可利用TensorFlow進(jìn)行學(xué)習(xí)。

神經(jīng)網(wǎng)絡(luò)的變種目前有很多,如誤差反向傳播(Back Propagation,BP)神經(jīng)網(wǎng)路、概率神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network ,CNN-適用于圖像識(shí)別)、時(shí)間遞歸神經(jīng)網(wǎng)絡(luò)(Long short-term Memory Network ,LSTM-適用于語(yǔ)音識(shí)別)等。但最簡(jiǎn)單且原汁原味的神經(jīng)網(wǎng)絡(luò)則是多層感知器(Muti-Layer Perception ,MLP),只有理解經(jīng)典的原版,才能更好的去理解功能更加強(qiáng)大的現(xiàn)代變種。

MLP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和原理

理解神經(jīng)網(wǎng)絡(luò)主要包括兩大內(nèi)容,一是神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),其次則是神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和學(xué)習(xí),其就好比我們的大腦結(jié)構(gòu)是怎么構(gòu)成的,而基于該組成我們又是怎樣去學(xué)習(xí)和識(shí)別不同事物的,這次樓主主要講解第一部分,而訓(xùn)練和學(xué)習(xí)則放到后續(xù)更新中。

神經(jīng)網(wǎng)絡(luò)其實(shí)是對(duì)生物神經(jīng)元的模擬和簡(jiǎn)化,生物神經(jīng)元由樹(shù)突、細(xì)胞體、軸突等部分組成。樹(shù)突是細(xì)胞體的輸入端,其接受四周的神經(jīng)沖動(dòng);軸突是細(xì)胞體的輸出端,其發(fā)揮傳遞神經(jīng)沖動(dòng)給其他神經(jīng)元的作用,生物神經(jīng)元具有興奮和抑制兩種狀態(tài),當(dāng)接受的刺激高于一定閾值時(shí),則會(huì)進(jìn)入興奮狀態(tài)并將神經(jīng)沖動(dòng)由軸突傳出,反之則沒(méi)有神經(jīng)沖動(dòng)。

我們基于生物神經(jīng)元模型可得到多層感知器MLP的基本結(jié)構(gòu),最典型的MLP包括包括三層:輸入層、隱層和輸出層,MLP神經(jīng)網(wǎng)絡(luò)不同層之間是全連接的(全連接的意思就是:上一層的任何一個(gè)神經(jīng)元與下一層的所有神經(jīng)元都有連接)。

由此可知,神經(jīng)網(wǎng)絡(luò)主要有三個(gè)基本要素:權(quán)重、偏置和激活函數(shù)。

權(quán)重:神經(jīng)元之間的連接強(qiáng)度由權(quán)重表示,權(quán)重的大小表示可能性的大小

偏置:偏置的設(shè)置是為了正確分類(lèi)樣本,是模型中一個(gè)重要的參數(shù),即保證通過(guò)輸入算出的輸出值不能隨便激活。

激活函數(shù):起非線性映射的作用,其可將神經(jīng)元的輸出幅度限制在一定范圍內(nèi),一般限制在(-1~1)或(0~1)之間。最常用的激活函數(shù)是Sigmoid函數(shù),其可將(-∞,+∞)的數(shù)映射到(0~1)的范圍內(nèi)。

激活函數(shù)還有tanh和ReLU等函數(shù),tanh是Sigmoid函數(shù)的變形,tanh的均值是0,在實(shí)際應(yīng)用中有比Sigmoid更好的效果;ReLU是近來(lái)比較流行的激活函數(shù),當(dāng)輸入信號(hào)小于0時(shí),輸出為0;當(dāng)輸入信號(hào)大于0時(shí),輸出等于輸入;具體采用哪種激活函數(shù)需視具體情況定。

從上面可知下層單個(gè)神經(jīng)元的值與上層所有輸入之間的關(guān)系可通過(guò)如下方式表示,其它以此類(lèi)推。

MLP的最經(jīng)典例子就是數(shù)字識(shí)別,即我們隨便給出一張上面寫(xiě)有數(shù)字的圖片并作為輸入,由它最終給出圖片上的數(shù)字到底是幾。

對(duì)于一張寫(xiě)有數(shù)字的圖片,我們可將其分解為由28*28=784個(gè)像素點(diǎn)構(gòu)成,每個(gè)像素點(diǎn)的值在(0~1)之間,其表示灰度值,值越大該像素點(diǎn)則越亮,越低則越暗,以此表達(dá)圖片上的數(shù)字并將這786個(gè)像素點(diǎn)作為神經(jīng)網(wǎng)絡(luò)的輸入。

而輸出則由十個(gè)神經(jīng)元構(gòu)成,分別表示(0~9)這十個(gè)數(shù)字,這十個(gè)神經(jīng)元的值也是在(0~1)之間,也表示灰度值,但神經(jīng)元值越大表示從輸入經(jīng)判斷后是該數(shù)字的可能性越大。

隱層的層數(shù)和神經(jīng)元的選擇需根據(jù)具體情況選擇,此例選擇兩層隱層,每層16個(gè)神經(jīng)元。那么根據(jù)上面的敘述,根據(jù)權(quán)重、偏置的個(gè)數(shù)此神經(jīng)網(wǎng)絡(luò)將會(huì)有13002個(gè)參數(shù)需要去調(diào)節(jié),而如何調(diào)整這些參數(shù),從而使神經(jīng)網(wǎng)絡(luò)有較好的學(xué)習(xí)效果則正是下篇更新的神經(jīng)網(wǎng)絡(luò)訓(xùn)練和學(xué)習(xí)的內(nèi)容。

通過(guò)樓主上面的敘述,該圖像識(shí)別問(wèn)題最終可通過(guò)線性方程的方式表示出來(lái),從而來(lái)描述本篇通過(guò)MLP神經(jīng)網(wǎng)絡(luò)進(jìn)行數(shù)字識(shí)別的案例,并通過(guò)建立的問(wèn)題描述模型來(lái)編程實(shí)現(xiàn)。

總結(jié)

MLP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)還是挺簡(jiǎn)單的,基本的結(jié)構(gòu)和原理是入門(mén)學(xué)習(xí)所必須了解的。神經(jīng)網(wǎng)絡(luò)訓(xùn)練和學(xué)習(xí)這塊等樓主有機(jī)會(huì)再更新,發(fā)現(xiàn)前期給自己挖太多坑都還沒(méi)填,主要在于樓主忙于工作,最近正好是2019上海車(chē)展,樓主也去轉(zhuǎn)了一波,基本都待在二層的零部件供應(yīng)商那里,了解下各大供應(yīng)商在智能出行、電驅(qū)、智能網(wǎng)聯(lián)等方面的系統(tǒng)集成和解決方案,收獲還是很多的,也希望能在下篇跟大家做個(gè)分享。

END -

聲明: 本文由入駐維科號(hào)的作者撰寫(xiě),觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號(hào)