神經(jīng)網(wǎng)絡(luò)1:多層感知器-MLP
神經(jīng)網(wǎng)絡(luò)是當前機器學習領(lǐng)域普遍所應用的,例如可利用神經(jīng)網(wǎng)絡(luò)進行圖像識別、語音識別等,從而將其拓展應用于自動駕駛汽車。它是一種高度并行的信息處理系統(tǒng),具有很強的自適應學習能力,不依賴于研究對象的數(shù)學模型,對被控對象的的系統(tǒng)參數(shù)變化及外界干擾有很好的魯棒性,能處理復雜的多輸入、多輸出非線性系統(tǒng),神經(jīng)網(wǎng)絡(luò)要解決的基本問題是分類問題。
目前在機器學習領(lǐng)域火爆的開源軟件庫中,TensorFlow算其中一個,里面有大量的機器學習和深度神經(jīng)網(wǎng)絡(luò)方面的研究,畢竟由Google 大腦小組開發(fā)出來,其系統(tǒng)的通用性和易用性是無可比擬的,TensorFlow是一個采用數(shù)據(jù)流圖(Data flow graphs),用于數(shù)值計算的開源軟件庫。節(jié)點(Nodes)在圖中表示數(shù)學操作,圖中的線(edges)則表示在節(jié)點間相互聯(lián)系的多維數(shù)據(jù)數(shù)組,即張量(tensor)。(數(shù)據(jù)流圖用“結(jié)點”(nodes)和“線”(edges)的有向圖來描述數(shù)學計算!肮(jié)點”一般用來表示施加的數(shù)學操作,但也可以表示數(shù)據(jù)輸入(feedin)的起點/輸出(push out)的終點,或者是讀。瘜懭氤志米兞浚╬ersistent variable)的終點!熬”表示“節(jié)點”之間的輸入/輸出關(guān)系。這些數(shù)據(jù)“線”可以輸運“size可動態(tài)調(diào)整”的多維數(shù)據(jù)數(shù)組,即“張量”(tensor)。張量從圖中流過的直觀圖像是這個工具取名為“Tensorflow”的原因,一旦輸入端的所有張量準備好,節(jié)點將被分配到各種計算設(shè)備完成異步并行地執(zhí)行運算)。因此對想快速上手神經(jīng)網(wǎng)絡(luò)做一些有趣的圖像識別和語音識別的小伙伴可利用TensorFlow進行學習。
神經(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-適用于圖像識別)、時間遞歸神經(jīng)網(wǎng)絡(luò)(Long short-term Memory Network ,LSTM-適用于語音識別)等。但最簡單且原汁原味的神經(jīng)網(wǎng)絡(luò)則是多層感知器(Muti-Layer Perception ,MLP),只有理解經(jī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ò)的訓練和學習,其就好比我們的大腦結(jié)構(gòu)是怎么構(gòu)成的,而基于該組成我們又是怎樣去學習和識別不同事物的,這次樓主主要講解第一部分,而訓練和學習則放到后續(xù)更新中。
神經(jīng)網(wǎng)絡(luò)其實是對生物神經(jīng)元的模擬和簡化,生物神經(jīng)元由樹突、細胞體、軸突等部分組成。樹突是細胞體的輸入端,其接受四周的神經(jīng)沖動;軸突是細胞體的輸出端,其發(fā)揮傳遞神經(jīng)沖動給其他神經(jīng)元的作用,生物神經(jīng)元具有興奮和抑制兩種狀態(tài),當接受的刺激高于一定閾值時,則會進入興奮狀態(tài)并將神經(jīng)沖動由軸突傳出,反之則沒有神經(jīng)沖動。
我們基于生物神經(jīng)元模型可得到多層感知器MLP的基本結(jié)構(gòu),最典型的MLP包括包括三層:輸入層、隱層和輸出層,MLP神經(jīng)網(wǎng)絡(luò)不同層之間是全連接的(全連接的意思就是:上一層的任何一個神經(jīng)元與下一層的所有神經(jīng)元都有連接)。
由此可知,神經(jīng)網(wǎng)絡(luò)主要有三個基本要素:權(quán)重、偏置和激活函數(shù)。
權(quán)重:神經(jīng)元之間的連接強度由權(quán)重表示,權(quán)重的大小表示可能性的大小
偏置:偏置的設(shè)置是為了正確分類樣本,是模型中一個重要的參數(shù),即保證通過輸入算出的輸出值不能隨便激活。
激活函數(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,在實際應用中有比Sigmoid更好的效果;ReLU是近來比較流行的激活函數(shù),當輸入信號小于0時,輸出為0;當輸入信號大于0時,輸出等于輸入;具體采用哪種激活函數(shù)需視具體情況定。
從上面可知下層單個神經(jīng)元的值與上層所有輸入之間的關(guān)系可通過如下方式表示,其它以此類推。
MLP的最經(jīng)典例子就是數(shù)字識別,即我們隨便給出一張上面寫有數(shù)字的圖片并作為輸入,由它最終給出圖片上的數(shù)字到底是幾。
對于一張寫有數(shù)字的圖片,我們可將其分解為由28*28=784個像素點構(gòu)成,每個像素點的值在(0~1)之間,其表示灰度值,值越大該像素點則越亮,越低則越暗,以此表達圖片上的數(shù)字并將這786個像素點作為神經(jīng)網(wǎng)絡(luò)的輸入。
而輸出則由十個神經(jīng)元構(gòu)成,分別表示(0~9)這十個數(shù)字,這十個神經(jīng)元的值也是在(0~1)之間,也表示灰度值,但神經(jīng)元值越大表示從輸入經(jīng)判斷后是該數(shù)字的可能性越大。
隱層的層數(shù)和神經(jīng)元的選擇需根據(jù)具體情況選擇,此例選擇兩層隱層,每層16個神經(jīng)元。那么根據(jù)上面的敘述,根據(jù)權(quán)重、偏置的個數(shù)此神經(jīng)網(wǎng)絡(luò)將會有13002個參數(shù)需要去調(diào)節(jié),而如何調(diào)整這些參數(shù),從而使神經(jīng)網(wǎng)絡(luò)有較好的學習效果則正是下篇更新的神經(jīng)網(wǎng)絡(luò)訓練和學習的內(nèi)容。
通過樓主上面的敘述,該圖像識別問題最終可通過線性方程的方式表示出來,從而來描述本篇通過MLP神經(jīng)網(wǎng)絡(luò)進行數(shù)字識別的案例,并通過建立的問題描述模型來編程實現(xiàn)。
總結(jié)
MLP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)還是挺簡單的,基本的結(jié)構(gòu)和原理是入門學習所必須了解的。神經(jīng)網(wǎng)絡(luò)訓練和學習這塊等樓主有機會再更新,發(fā)現(xiàn)前期給自己挖太多坑都還沒填,主要在于樓主忙于工作,最近正好是2019上海車展,樓主也去轉(zhuǎn)了一波,基本都待在二層的零部件供應商那里,了解下各大供應商在智能出行、電驅(qū)、智能網(wǎng)聯(lián)等方面的系統(tǒng)集成和解決方案,收獲還是很多的,也希望能在下篇跟大家做個分享。
- END -
請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
圖片新聞
最新活動更多
推薦專題
- 項目經(jīng)理(汽車內(nèi)飾&汽車電子) 伯恩光學(惠州)有限公司
- 產(chǎn)品工程師(汽車) 易思維(杭州)科技股份有限公司
- IE工程師(汽車智聯(lián)) 惠州碩貝德無線科技股份有限公司
- 結(jié)構(gòu)工程師-汽車電子事業(yè)部(J10116) 深圳奧尼電子股份有限公司
- 銷售總監(jiān)-汽車電子方向 深圳市智立方自動化設(shè)備股份有限公司
- 銷售經(jīng)理(汽車新能源行業(yè)) 廣州瑞松智能科技股份有限公司
- 高級軟件工程師 廣東省/深圳市
- 自動化高級工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市