小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

深度神經(jīng)網(wǎng)絡(luò)(DNN)模型與前向傳播算法

 昵稱59761374 2018-09-17

    深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks, 以下簡(jiǎn)稱DNN)是深度學(xué)習(xí)的基礎(chǔ),而要理解DNN,首先我們要理解DNN模型,下面我們就對(duì)DNN的模型與前向傳播算法做一個(gè)總結(jié)。

1. 從感知機(jī)到神經(jīng)網(wǎng)絡(luò)

    在感知機(jī)原理小結(jié)中,我們介紹過(guò)感知機(jī)的模型,它是一個(gè)有若干輸入和一個(gè)輸出的模型,如下圖:

    輸出和輸入之間學(xué)習(xí)到一個(gè)線性關(guān)系,得到中間輸出結(jié)果:

z=i=1mwixi+b

    接著是一個(gè)神經(jīng)元激活函數(shù):

sign(z)={?1z<01z0

    從而得到我們想要的輸出結(jié)果1或者-1。

    這個(gè)模型只能用于二元分類,且無(wú)法學(xué)習(xí)比較復(fù)雜的非線性模型,因此在工業(yè)界無(wú)法使用。

    而神經(jīng)網(wǎng)絡(luò)則在感知機(jī)的模型上做了擴(kuò)展,總結(jié)下主要有三點(diǎn):

    1)加入了隱藏層,隱藏層可以有多層,增強(qiáng)模型的表達(dá)能力,如下圖實(shí)例,當(dāng)然增加了這么多隱藏層模型的復(fù)雜度也增加了好多。

    2)輸出層的神經(jīng)元也可以不止一個(gè)輸出,可以有多個(gè)輸出,這樣模型可以靈活的應(yīng)用于分類回歸,以及其他的機(jī)器學(xué)習(xí)領(lǐng)域比如降維和聚類等。多個(gè)神經(jīng)元輸出的輸出層對(duì)應(yīng)的一個(gè)實(shí)例如下圖,輸出層現(xiàn)在有4個(gè)神經(jīng)元了。

    3) 對(duì)激活函數(shù)做擴(kuò)展,感知機(jī)的激活函數(shù)是sign(z),雖然簡(jiǎn)單但是處理能力有限,因此神經(jīng)網(wǎng)絡(luò)中一般使用的其他的激活函數(shù),比如我們?cè)谶壿嫽貧w里面使用過(guò)的Sigmoid函數(shù),即:

f(z)=11+e?z

    還有后來(lái)出現(xiàn)的tanx, softmax,和ReLU等。通過(guò)使用不同的激活函數(shù),神經(jīng)網(wǎng)絡(luò)的表達(dá)能力進(jìn)一步增強(qiáng)。對(duì)于各種常用的激活函數(shù),我們?cè)诤竺嬖賹iT講。

2. DNN的基本結(jié)構(gòu)

    上一節(jié)我們了解了神經(jīng)網(wǎng)絡(luò)基于感知機(jī)的擴(kuò)展,而DNN可以理解為有很多隱藏層的神經(jīng)網(wǎng)絡(luò)。這個(gè)很多其實(shí)也沒有什么度量標(biāo)準(zhǔn), 多層神經(jīng)網(wǎng)絡(luò)和深度神經(jīng)網(wǎng)絡(luò)DNN其實(shí)也是指的一個(gè)東西,當(dāng)然,DNN有時(shí)也叫做多層感知機(jī)(Multi-Layer perceptron,MLP), 名字實(shí)在是多。后面我們講到的神經(jīng)網(wǎng)絡(luò)都默認(rèn)為DNN。

    從DNN按不同層的位置劃分,DNN內(nèi)部的神經(jīng)網(wǎng)絡(luò)層可以分為三類,輸入層,隱藏層和輸出層,如下圖示例,一般來(lái)說(shuō)第一層是輸入層,最后一層是輸出層,而中間的層數(shù)都是隱藏層。

    層與層之間是全連接的,也就是說(shuō),第i層的任意一個(gè)神經(jīng)元一定與第i+1層的任意一個(gè)神經(jīng)元相連。雖然DNN看起來(lái)很復(fù)雜,但是從小的局部模型來(lái)說(shuō),還是和感知機(jī)一樣,即一個(gè)線性關(guān)系z=wixi+b加上一個(gè)激活函數(shù)σ(z)。

    由于DNN層數(shù)多,則我們的線性關(guān)系系數(shù)w和偏倚b的數(shù)量也就是很多了。具體的參數(shù)在DNN是如何定義的呢?

    首先我們來(lái)看看線性關(guān)系系數(shù)w的定義。以下圖一個(gè)三層的DNN為例,第二層的第4個(gè)神經(jīng)元到第三層的第2個(gè)神經(jīng)元的線性系數(shù)定義為w243。上標(biāo)3代表線性系數(shù)w所在的層數(shù),而下標(biāo)對(duì)應(yīng)的是輸出的第三層索引2和輸入的第二層索引4。你也許會(huì)問(wèn),為什么不是w423, 而是w243呢?這主要是為了便于模型用于矩陣表示運(yùn)算,如果是w423而每次進(jìn)行矩陣運(yùn)算是wTx+b,需要進(jìn)行轉(zhuǎn)置。將輸出的索引放在前面的話,則線性運(yùn)算不用轉(zhuǎn)置,即直接為wx+b??偨Y(jié)下,第l?1層的第k個(gè)神經(jīng)元到第l層的第j個(gè)神經(jīng)元的線性系數(shù)定義為wjkl。注意,輸入層是沒有w參數(shù)的。

     再來(lái)看看偏倚b的定義。還是以這個(gè)三層的DNN為例,第二層的第三個(gè)神經(jīng)元對(duì)應(yīng)的偏倚定義為b32。其中,上標(biāo)2代表所在的層數(shù),下標(biāo)3代表偏倚所在的神經(jīng)元的索引。同樣的道理,第三個(gè)的第一個(gè)神經(jīng)元的偏倚應(yīng)該表示為b13。同樣的,輸入層是沒有偏倚參數(shù)b的。

3. DNN前向傳播算法數(shù)學(xué)原理

    在上一節(jié),我們已經(jīng)介紹了DNN各層線性關(guān)系系數(shù)w,偏倚b的定義。假設(shè)我們選擇的激活函數(shù)是σ(z),隱藏層和輸出層的輸出值為a,則對(duì)于下圖的三層DNN,利用和感知機(jī)一樣的思路,我們可以利用上一層的輸出計(jì)算下一層的輸出,也就是所謂的DNN前向傳播算法。

    對(duì)于第二層的的輸出a12,a22,a32,我們有:

a12=σ(z12)=σ(w112x1+w122x2+w132x3+b12)
a22=σ(z22)=σ(w212x1+w222x2+w232x3+b22)
a32=σ(z32)=σ(w312x1+w322x2+w332x3+b32)

    對(duì)于第三層的的輸出a13,我們有:

a13=σ(z13)=σ(w113a12+w123a22+w133a32+b13)

    將上面的例子一般化,假設(shè)第l?1層共有m個(gè)神經(jīng)元,則對(duì)于第l層的第j個(gè)神經(jīng)元的輸出ajl,我們有:

ajl=σ(zjl)=σ(k=1mwjklakl?1+bjl)

    其中,如果l=2,則對(duì)于的ak1即為輸入層的xk。

    從上面可以看出,使用代數(shù)法一個(gè)個(gè)的表示輸出比較復(fù)雜,而如果使用矩陣法則比較的簡(jiǎn)潔。假設(shè)第l?1層共有m個(gè)神經(jīng)元,而第l層共有n個(gè)神經(jīng)元,則第l層的線性系數(shù)w組成了一個(gè)n×m的矩陣Wl, 第l層的偏倚b組成了一個(gè)n×1的向量bl , 第l?1層的的輸出a組成了一個(gè)m×1的向量al?1,第l層的的未激活前線性輸出z組成了一個(gè)n×1的向量zl, 第l層的的輸出a組成了一個(gè)n×1的向量al。則用矩陣法表示,第l層的輸出為:

al=σ(zl)=σ(Wlal?1+bl)
 

    這個(gè)表示方法簡(jiǎn)潔漂亮,后面我們的討論都會(huì)基于上面的這個(gè)矩陣法表示來(lái)。

4. DNN前向傳播算法

    有了上一節(jié)的數(shù)學(xué)推導(dǎo),DNN的前向傳播算法也就不難了。所謂的DNN的前向傳播算法也就是利用我們的若干個(gè)權(quán)重系數(shù)矩陣W,偏倚向量b來(lái)和輸入值向量x進(jìn)行一系列線性運(yùn)算和激活運(yùn)算,從輸入層開始,一層層的向后計(jì)算,一直到運(yùn)算到輸出層,得到輸出結(jié)果為值。

    輸入: 總層數(shù)L,所有隱藏層和輸出層對(duì)應(yīng)的矩陣W,偏倚向量b,輸入值向量x

    輸出:輸出層的輸出aL

    1) 初始化a1=x

    2)  for l=2 to L, 計(jì)算:

al=σ(zl)=σ(Wlal?1+bl)

    最后的結(jié)果即為輸出aL。

5. DNN前向傳播算法小結(jié)

    單獨(dú)看DNN前向傳播算法,似乎沒有什么大用處,而且這一大堆的矩陣W,偏倚向量b對(duì)應(yīng)的參數(shù)怎么獲得呢?怎么得到最優(yōu)的矩陣W,偏倚向量b呢?這個(gè)我們?cè)谥vDNN的反向傳播算法時(shí)再講。而理解反向傳播算法的前提就是理解DNN的模型與前向傳播算法。這也是我們這一篇先講的原因。

 

(歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明出處。歡迎溝通交流: liujianping-ok@163.com) 

參考資料:

1) Neural Networks and Deep Learning by By Michael Nielsen

2) Deep Learning, book by Ian Goodfellow, Yoshua Bengio, and Aaron Courville

3) UFLDL Tutorial

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多