淺談深度學(xué)習(xí)基礎(chǔ)(下)

CNN钠龙、RNN和LSTM

卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network吹缔,CNN)

1984年捺信,日本學(xué)者福島基于感受區(qū)域概念提出了神經(jīng)認知機岳瞭。神經(jīng)認知機可以看作是卷積神經(jīng)網(wǎng)絡(luò)的第一個實現(xiàn)網(wǎng)絡(luò)狂票,也是感受區(qū)域概念在人工神經(jīng)網(wǎng)絡(luò)領(lǐng)域的首次應(yīng)用候齿。神經(jīng)認知機將一個視覺模式分解成許多feature,然后進入分層遞階式相連的feature maps進行處理闺属,這樣就可以將視覺系統(tǒng)模型化慌盯,使其能夠在物體有位移或輕微變形的時候,也能完成識別屋剑。

卷積神經(jīng)網(wǎng)絡(luò)LeNet-5示例

我們以用于手寫數(shù)字識別的LeNet-5為例來講卷積神經(jīng)網(wǎng)絡(luò)润匙。

卷積神經(jīng)網(wǎng)絡(luò)由卷積層(Convolutions Layer)、池化層(Pooling Layer)和全連接層構(gòu)成唉匾。全連接層在最后孕讳,前面是若干卷積層和池化層匠楚,每個卷積層后面跟一個池化層,如此重復(fù)厂财。

圖中展示了LeNet-5網(wǎng)絡(luò)的結(jié)構(gòu)芋簿,一共七層,前面四層是卷積層和池化層(池化層又叫子采樣層璃饱,也即Subsample Layer)与斤,后面三層是全連接層,最后一層輸出層是高斯連接層荚恶,也是全連接層撩穿,共有10個節(jié)點,分別代表數(shù)字0到9谒撼,且如果節(jié)點i的值為0食寡,則網(wǎng)絡(luò)識別的結(jié)果是數(shù)字i。采用的是歐式徑向基函數(shù)(ERBF)的網(wǎng)絡(luò)連接方式廓潜。假設(shè)x是上一層的輸入抵皱,y是ERBF的輸出,則ERBF輸出的計算方式是:

理解卷積神經(jīng)網(wǎng)絡(luò)的核心在于理解前面的卷積層和池化層辩蛋。既然我們將卷積神經(jīng)網(wǎng)絡(luò)分為了卷積層呻畸、池化層和全連接層,則隱含了前面的卷積層和池化層并不是全連接的悼院,那它們是怎么連接的呢伤为?

介紹連接方式之前需要先介紹卷積層與池化層的性質(zhì):

卷積層:卷積層由若干張feature map(FM)構(gòu)成。對輸入數(shù)據(jù)應(yīng)用卷積核(可以認為是對特定feature非常敏感的探測器)樱蛤,在輸入數(shù)據(jù)上滾一遍我們的卷積核钮呀,就得到了一張FM昨凡,F(xiàn)M上記錄了卷積核在原圖不同區(qū)域的激活程度(與該卷積核的feature越契合,激活程度越高)蚁署,也即去掉了讀不懂的數(shù)據(jù)便脊,留下了符合一定feature的數(shù)據(jù)。每個卷積核擁有一個feature光戈,也就能產(chǎn)生一張對應(yīng)feature的FM哪痰。

池化層:池化層的價值在于縮減輸入數(shù)據(jù)的規(guī)模,F(xiàn)M上k*k一共k^2個激活值合并成為池化層上的一個激活值久妆,合并的方法有很多種晌杰,比如最大值合并、平均值合并及隨機合并筷弦,需要視情況而定肋演,比如如果要確定『有沒有』的問題抑诸,就要采用最大值合并,把最高的激活值保留下來爹殊。

然后最后一個池化層后面連接到一個或多個全連接層蜕乡,全連接層的輸出就是最后的輸出。訓(xùn)練過程通過改進的反向傳播實現(xiàn)梗夸,在反向傳播的時候需要特別考慮到池化層合并激活值的方法层玲,最大值合并、平均值合并等反症,均需要采用特定的處理方法辛块,并以此來更新卷積核。

我們能人工定義的是卷積核的寬和高铅碍,還有卷積核的個數(shù)憨降。卷積核對什么feature敏感,是先隨機初始化该酗,再經(jīng)過BP算法慢慢訓(xùn)練出來的授药,卷積核的權(quán)重就是卷積神經(jīng)網(wǎng)絡(luò)主要需要學(xué)習(xí)的參數(shù)。


3*3的一個卷積核

卷積神經(jīng)網(wǎng)絡(luò)通過『局部感知野』與『權(quán)值共享』大大減少了連接的個數(shù)呜魄,也即需要訓(xùn)練的參數(shù)的個數(shù)悔叽。

就拿原圖像到第一層卷積層的連接舉例,假設(shè)我們的圖像是1000*1000的爵嗅,則有10^6個隱層神經(jīng)元娇澎,那么它們?nèi)B接的話,也就是每個隱層神經(jīng)元都連接圖像的每個像素點睹晒,就有10^12個連接趟庄,也即10^12個權(quán)值參數(shù)需要訓(xùn)練,這顯然是不值得的伪很。但是對于一個只識別特定feature的卷積核戚啥,需要大到覆蓋整個圖像的所有像素點嗎?通常是不需要的锉试,一個特定feature猫十,尤其是第一層需要提取的feature,通常都相當(dāng)基礎(chǔ)呆盖,只占圖像很小的一部分拖云。所以我們設(shè)置一個較小的局部感受區(qū)域,比如10*10应又,也即每個神經(jīng)元只需要和這10*10的局部圖像相連接宙项,所以10^6個神經(jīng)元也就有10^8個連接。這就叫局部感知野株扛。

那什么叫權(quán)值共享呢尤筐?在上面的局部連接中邑贴,10^6個神經(jīng)元,每個神經(jīng)元都對應(yīng)100個參數(shù)叔磷,所以是10^8個參數(shù)拢驾,那如果每個神經(jīng)元所對應(yīng)的參數(shù)都是相同的,那需要訓(xùn)練的參數(shù)就只有100個了改基。

這后面隱含的道理在于繁疤,這100個參數(shù)就是一個卷積核,而卷積核是提取feature的方式秕狰,與其在圖像上的位置無關(guān)稠腊,圖像一個局部的統(tǒng)計特征與其他局部的統(tǒng)計特征是一樣的,我們用在這個局部抽取feature的卷積核也可以用在圖像上的其它任何地方鸣哀。

而且這100個參數(shù)只是一種卷積核架忌,只能提取一種feature,我們完全可以采用100個卷積核我衬,提取100種feature叹放,而所需要訓(xùn)練的參數(shù)也不過10^4,最開始我們訓(xùn)練10^12個參數(shù)挠羔,還只能提取一種特征井仰。選取100個卷積核,我們就能得到100張FM破加,每張FM可以看做是一張圖像的不同通道俱恶。

接下來我要具體介紹一下利用卷積核卷積生成FM的過程:


3*3卷積核在5*5圖像上卷積的過程

左側(cè)綠色的是5*5的原圖,左側(cè)黃色的是3*3的卷積核覆蓋的區(qū)域范舀,右側(cè)是3*3的FM合是。

原圖就不說了,卷積核的權(quán)重是黃色區(qū)域每個格子右下角乘號后面的數(shù)字锭环,也即卷積核就是我們前面用作示例的那個卷積核:


3*3的一個卷積核

具體的卷積過程聪全,就是將卷積核覆蓋在原圖上,從左上角開始田藐,一次向右移動一個像素荔烧,卷積完一行,整個卷積核向下移動一個像素汽久,再開始卷積。在卷積核覆蓋的區(qū)域范圍內(nèi)踊餐,原圖與卷積核對應(yīng)位置的像素分別做乘法景醇,再全部加和。

至于FM為什么是3*3的怪蔑,因為(5-3)/1 + 1 = 3形帮。原圖5*5,卷積核3*3橄仍,按這樣的方法法卷積(卷積核卷積的滑動步長為1)散劫,得到的feature也就是3*3的稚机。也即這一層隱層的神經(jīng)元的個數(shù)是3*3,不過這只是一張FM获搏,如果10張相同的FM赖条,那神經(jīng)元的個數(shù)就是10倍了。

如果定義了滑動步長為2常熙,那就每次向右移動2個像素了纬乍,一行結(jié)束也是向下移動2個像素,當(dāng)然FM大小的計算方法也要隨之改變了裸卫,也即(5-3)/2 + 1 = 2仿贬,公式為(原圖寬高-卷積核寬高)/滑動步長 + 1

這樣基本的卷積過程就講完了墓贿,接下來講池化過程茧泪。


池化過程

池化過程看起來要簡單的多,就是一個取局部平均值\最大值的過程(根據(jù)具體池化方法決定)聋袋。人們可以計算圖像一個區(qū)域上的某個特定特征的平均值 (或最大值)调炬。這些概要統(tǒng)計特征不僅具有低得多的維度 (相比使用所有提取得到的特征),同時還會改善結(jié)果(不容易過擬合)舱馅。

另外需要提的一點是缰泡,前面說10*10的卷積核需要訓(xùn)練的參數(shù)是100個,嚴格來講是錯誤的代嗤,其實是101個棘钞,因為每個卷積核還有一個可訓(xùn)練偏置。

接下來以LeNet-5為例干毅,從頭捋一遍卷積神經(jīng)網(wǎng)絡(luò)的過程宜猜,重新放一遍LeNet-5的圖:


卷積神經(jīng)網(wǎng)絡(luò)LeNet-5示例

輸入層是32*32像素的圖片,比數(shù)據(jù)集中最大的的字符(最大體積是20*20像素的字符硝逢,位于28*28像素區(qū)域的中心)大很多姨拥。這樣做的原因是能使?jié)撛诘奶卣鞅热邕吘壍亩它c、拐角能夠出現(xiàn)在最高層次的卷積核的接收域的中心渠鸽。

然后第一層C1叫乌,6個卷積核,所以也就6張FM徽缚,卷積核是5*5的憨奸,至于為什么每張FM是28*28的,(32-5)/1 + 1 = 28凿试。那C1一共有多少個需要訓(xùn)練的參數(shù)呢排宰?(5*5+1)*6 = 156個可訓(xùn)練參數(shù)似芝,每個卷積核26個可訓(xùn)練參數(shù),6個卷積核板甘,也就是156個可訓(xùn)練參數(shù)党瓮。那C1與原圖一共有多少個連接呢?(28*28)*6*26 = 122304個連接盐类,28*28的FM寞奸,一共有6張,所以乘6傲醉,這6張FM里的每一個點蝇闭,都是采用了6種卷積核的其中之一卷積出來的,不管是這6種卷積核里的哪種硬毕,都有26個參數(shù)呻引,也即26個連接,所以要乘以26吐咳。當(dāng)然每張FM里面的點用的是同樣的卷積核逻悠,連接數(shù)公式簡記為(FM寬高*FM寬高)*可訓(xùn)練參數(shù)

然后第二層S2韭脊,以2*2的范圍去池化童谒,我們也稱其為一個2*2的池化核。6張28*28的FM被池化成了14*14的圖沪羔,這個算法很簡單饥伊,可以參考上面池化層的動圖去理解。這里的每個池化核有兩個可訓(xùn)練參數(shù)蔫饰,一個負責(zé)與池化核里4個輸入相加的和相乘琅豆,另一個作為可訓(xùn)練偏置加在乘積上,最后得到池化結(jié)果篓吁。6張FM茫因,也對應(yīng)6個池化核,每個池化核2個參數(shù)杖剪,也即12個可訓(xùn)練參數(shù)冻押。那S2層與C1層有多少連接呢?(14*14)*6*5 = 5880個連接盛嘿,這里池化核與卷積核不同洛巢,對于卷積核而言,26個可訓(xùn)練參數(shù)孩擂,也即26個連接狼渊;而池化只有2個可訓(xùn)練參數(shù),但是如果池化核也只有2個連接类垦,那那4個輸入是從哪來的呢狈邑,所以這里2*2的池化核對應(yīng)5個連接。然后6張圖蚤认,每張14*14米苹,每個點5個連接,所以得到5880個連接砰琢。

然后是C3層蘸嘶,C3層同樣通過5*5的卷積核去卷積每張圖14*14的S2,然后得到的每張FM就是10*10的陪汽,算法與C1時相同训唱。它有16種不同的卷積核,所以C3層就對應(yīng)了16張FM挚冤。這里有個比C1層復(fù)雜的多的問題况增,就是C1層只卷積1張圖,而C3層要卷積6張圖训挡。那這16張FM是如何卷積前面S2層的6張圖的呢澳骤?如下圖:


C3層卷積S2層對應(yīng)關(guān)系圖

0-5這6張FM卷積S2中的3張圖,6-11這6張FM卷積S2中連續(xù)的4張圖澜薄,12-14這3張FM卷積S2中不連續(xù)的4張圖为肮,15這張FM卷積所有的6張圖。FM0卷積圖012肤京、FM6卷積圖0123颊艳、FM12卷積圖0134、FM15卷積圖012345忘分。

我們知道一張FM對應(yīng)一個卷積核棋枕,那一個卷積核怎樣同時卷積多張圖呢?我們把多張圖上同一位置的卷積結(jié)果相加饭庞,然后代入激活函數(shù):


雙曲正切激活函數(shù)

我們來想一下卷積多張圖的意義在哪戒悠?我們知道,越往后的卷積核的feature就越高級越抽象舟山,而這個高級feature往往是通過組合低級feature得到的绸狐,比如低級feature可能是折線,而高級feature就可能是一個輪子累盗、一張人臉寒矿。卷積多張圖就是組合低級feature嘗試生成高級feature的過程,這種不對稱的組合連接的方式有利于提取多種組合特征若债。

這里計算可訓(xùn)練參數(shù)和連接數(shù)也比C1層復(fù)雜得多符相,C3層一共(5*5*3+1)*6 + (5*5*4+1)*6 + (5*5*4+1)*3 + (5*5*6+1)*1 = 1516個訓(xùn)練參數(shù),需要注意的是,之前的算法是(5*5+1)*卷積核數(shù)這里不再適用啊终,因為每個卷積核不再只卷積一張圖镜豹,5\*5后面要接著乘以卷積圖的張圖,因為之前只有1張蓝牲,所以就省略了趟脂,這里每個卷積核都卷積多張圖,所以不能省略例衍,而且要分開計算昔期,因為不同的卷積核卷積圖的張數(shù)也分為不同的幾種;至于連接數(shù)佛玄,代之前的公式硼一,一共(10*10)*1516 = 151600個連接。

再后面是S4層梦抢,用16個2*2的池化核將16張10*10的FM池化成16張5*5的圖般贼,一共16\*2 = 32個可訓(xùn)練參數(shù),一共(5*5)*16*5 = 2000個連接惑申。

然后是C5層具伍,我們看到S4層每張圖就已經(jīng)是5*5的了,而我們的卷積核也是5*5的圈驼,所以卷積完了就是一個點人芽。這里用120個卷積核,生成120張FM绩脆,每張FM就一個點萤厅。每張FM都卷積S4層全部16張圖,卷積多張圖的方法也和C3層講的一樣靴迫。

再后面是F6層惕味,F(xiàn)6層是全連接層,有84個單元玉锌,與C5層全連接名挥,有10164個可訓(xùn)練參數(shù)。如同經(jīng)典神經(jīng)網(wǎng)絡(luò)主守,F(xiàn)6層計算輸入向量和權(quán)重限量之間的點積禀倔,再加上一個偏置。然后將其傳遞給Sigmoid函數(shù)產(chǎn)生單元i的一個狀態(tài)参淫。

輸出層也是全連接層救湖,前面提到過它的計算方式,這里重復(fù)一下涎才,一共10個輸出鞋既,10個單元,每個單元有84個輸入,且如果節(jié)點i的值為0邑闺,則網(wǎng)絡(luò)識別的結(jié)果是數(shù)字i跌前。采用的是歐式徑向基函數(shù)(ERBF)的網(wǎng)絡(luò)連接方式。假設(shè)x是上一層的輸入检吆,y是ERBF的輸出舒萎,則ERBF輸出的計算方式是:

其意義是計算每個輸入向量與參數(shù)向量之間的歐式距離程储,輸入離參數(shù)向量越遠蹭沛,ERBF的輸出值就越大,輸出值越小章鲤,也即越匹配越契合摊灭。一個ERBF的輸出可以被理解為衡量輸入模式和ERBF相關(guān)聯(lián)類的一個模型的匹配程度的懲罰項。

CNN主要用來識別位移败徊、縮放及其他形式扭曲不變性的二維圖形帚呼。由于CNN特征檢測層通過訓(xùn)練數(shù)據(jù)進行學(xué)習(xí),在使用CNN時皱蹦,避免了顯式的特征抽取煤杀,而隱式地從訓(xùn)練數(shù)據(jù)中進行學(xué)習(xí);再者沪哺,由于同一FM上的神經(jīng)元權(quán)值相同沈自,所以網(wǎng)絡(luò)可以并行學(xué)習(xí),這也是卷積網(wǎng)絡(luò)相對于神經(jīng)元彼此相連網(wǎng)絡(luò)的一大優(yōu)勢辜妓。卷積神經(jīng)網(wǎng)絡(luò)以其局部權(quán)值共享的特殊結(jié)構(gòu)在語音識別和圖像處理方面有著獨特的優(yōu)越性枯途,其布局更接近于實際的生物神經(jīng)網(wǎng)絡(luò),權(quán)值共享降低了網(wǎng)絡(luò)的復(fù)雜性籍滴,避免了特征提取和分類過程中數(shù)據(jù)重建的復(fù)雜度酪夷。

遞歸神經(jīng)網(wǎng)絡(luò)(RNN)

遞歸神經(jīng)網(wǎng)絡(luò)(RNN),是兩種人工神經(jīng)網(wǎng)絡(luò)的總稱孽惰。一種是時間遞歸神經(jīng)網(wǎng)絡(luò)(recurrent neural network)晚岭,另一種是結(jié)構(gòu)遞歸神經(jīng)網(wǎng)絡(luò)(recursive neural network)。時間遞歸神經(jīng)網(wǎng)絡(luò)的神經(jīng)元間連接構(gòu)成有向圖勋功,而結(jié)構(gòu)遞歸神經(jīng)網(wǎng)絡(luò)利用相似的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)遞歸構(gòu)造更為復(fù)雜的深度網(wǎng)絡(luò)坦报。RNN一般指代時間遞歸神經(jīng)網(wǎng)絡(luò),也叫循環(huán)神經(jīng)網(wǎng)絡(luò)酝润。單純遞歸神經(jīng)網(wǎng)絡(luò)因為無法處理隨著遞歸燎竖,梯度爆炸或消失的問題,難以捕捉長期時間關(guān)聯(lián)要销;而LSTM(長短期記憶神經(jīng)網(wǎng)絡(luò)构回,Long-Short Term Memory)可以很好地解決這個問題。

RNN的目的是用來處理序列數(shù)據(jù),普通的前饋神經(jīng)網(wǎng)絡(luò)纤掸,是從輸入層到隱層再到輸出層脐供,相鄰層的節(jié)點之間是全連接的,然而一層內(nèi)的節(jié)點之間卻是沒有連接的借跪。這種普通的神經(jīng)網(wǎng)絡(luò)對很多問題是無能為力的政己,例如,你要預(yù)測句子中的下一個詞是什么就一般要用到前面的詞掏愁,因為詞與詞之間往往不是相互獨立的歇由。RNN之所以被稱為循環(huán)神經(jīng)網(wǎng)絡(luò),就是因為一個序列當(dāng)前的輸出不僅和當(dāng)前的輸入有關(guān)果港,還和過去的輸出有關(guān)沦泌。RNN會對前面的輸出進行記憶并用在當(dāng)前的輸出計算之中,同時意味著隱層內(nèi)的節(jié)點也不再是無連接的辛掠。

舉一個例子谢谦,填槽問題,有這樣一句話萝衩,『I would like to arrive Taipei on November 2nd』回挽。將這句話作為輸入提供給機票預(yù)訂系統(tǒng),需要填的槽位有三個猩谊,一個是出發(fā)地千劈,一個是目的地,另一個是到達時間预柒,當(dāng)然這句話只能填兩個队塘。

首先我們嘗試用普通前饋神經(jīng)網(wǎng)絡(luò)來解決這個問題。比如有這樣一個神經(jīng)網(wǎng)絡(luò)宜鸯,它有兩個輸出神經(jīng)元憔古,分別對應(yīng)三個槽,一個槽是出發(fā)地淋袖,一個槽是目的地鸿市,一個槽是到達時間;然后我們要訓(xùn)練這個神經(jīng)網(wǎng)絡(luò)即碗,使其在接受『I would like to arrive Taipei on November 2nd』輸入序列時焰情,目的地槽位對應(yīng)輸出神經(jīng)元的激活值在輸入Taipei時達到最大,而到達時間槽位對應(yīng)輸出神經(jīng)元的激活值在輸入November 2nd時達到最大剥懒?

那我們考慮一下内舟,如果將輸入序列這樣修改一下『I would like to leave Taipei on November 2nd』,我們還能把Taipei填到目的地槽位里面嗎初橘?難道我們要先檢索一下句子里的是leave還是arrive验游?要是人家用其他的詞呢充岛?這就是人工學(xué)習(xí)而不是機器學(xué)習(xí)了,都是治標不治本的做法耕蝉。最本質(zhì)的解決方法是要讓神經(jīng)網(wǎng)絡(luò)擁有『記憶』崔梗。

我們不斷重復(fù)使用同樣的網(wǎng)絡(luò)結(jié)構(gòu),將其隱層相連垒在,前面隱層的輸出作為后面隱層輸入的一部分使用蒜魄。

上圖是神經(jīng)單元的展開,如果收起场躯,則結(jié)構(gòu)如下:


一個循環(huán)的神經(jīng)單元

那使用RNN如何解決前面提到的問題呢谈为?在RNN里,當(dāng)前面的詞不同時推盛,對應(yīng)的隱層輸出也就不同峦阁,前面詞的隱層輸出作為輸入的一部分提供給了Taipei對應(yīng)的隱層,進而使得Taipei被填進每個槽位的概率也不同耘成。從而實現(xiàn),當(dāng)前面是arrive時驹闰,將Taipei填進目的地槽瘪菌;當(dāng)前面是leave時,將Taipei填進出發(fā)地槽嘹朗。

下面來講RNN中廣泛使用且效果極為出色的一種類型 —— LSTM(長短期記憶神經(jīng)網(wǎng)絡(luò)师妙,Long-Short Term Memory)。

前面講屹培,普通RNN無法處理隨著遞歸默穴,梯度爆炸或消失的問題,這樣導(dǎo)致普通RNN無法捕捉過長時間的關(guān)聯(lián)褪秀。前面隱層輸出的不同會隨著梯度消失蓄诽,距離越遠,影響就越小媒吗。而LSTM通過特殊的結(jié)構(gòu)解決了這個長期依賴的問題仑氛。

LSTM的結(jié)構(gòu)這部分我主要讀了兩篇資料,一篇是Christopher Olah 的博文闸英,另一篇是李宏毅教授Deep Learning Tutorial里面的對應(yīng)內(nèi)容锯岖。

這兩篇資料的講解,一篇以等價的邏輯結(jié)構(gòu)來講甫何,更通俗出吹;一篇以真實結(jié)構(gòu)來講,更深入辙喂,這里我準備加上自己的理解捶牢,將兩種結(jié)構(gòu)對比起來講赃额。

先說標準RNN的結(jié)構(gòu),所有的RNN都有神經(jīng)網(wǎng)絡(luò)的重復(fù)模塊組成的鏈式結(jié)構(gòu)叫确。對于標準的RNN跳芳,這種重復(fù)模塊有一個非常簡單的結(jié)構(gòu),如一個單一的tanh(雙曲正切)層:


LSTM中也有這樣的鏈式結(jié)構(gòu)竹勉,但重復(fù)模塊卻具有和一般RNN不同的結(jié)構(gòu)飞盆。前面標準RNN只有一個交互層,而LSTM有四個次乓。

為了便于理解吓歇,我們先以LSTM的等價邏輯結(jié)構(gòu)進行講解:


LSTM的等價邏輯結(jié)構(gòu)

如圖所示,LSTM的神經(jīng)元由四部分組成票腰,分別是:輸入門城看、輸出門、遺忘門和記憶細胞杏慰。接受4個輸入测柠,1個輸出。輸入門缘滥、輸出門轰胁、遺忘門各接受一種控制信號輸入。輸入門還額外接受上個神經(jīng)元的輸入朝扼,輸出門額外給出一個到下個神經(jīng)元的輸出赃阀。3種門是用來保護和控制細胞狀態(tài)的。

下圖展示了邏輯結(jié)構(gòu)下的實際計算過程:


首先擎颖,前面講輸入門榛斯、輸出門、遺忘門各接受一種控制信號輸入搂捧,也就是這里圖上的zi驮俗、zozf异旧,這三種信號進來要經(jīng)過的函數(shù)f為激活函數(shù)意述,通常使用Sigmoid函數(shù),我們知道Sigmoid函數(shù)的輸出在0到1之間吮蛹,非常適合作為門的控制信號荤崇,0代表完全舍棄(關(guān)閉),1代表完全保留(開啟)潮针。

關(guān)注圖中門的開啟關(guān)閉是如何起作用的术荤,我們可以發(fā)現(xiàn),假如輸入門接受信號zi過小每篷,導(dǎo)致對應(yīng)Sigmoid函數(shù)的輸出為0瓣戚,則意味著輸入門關(guān)閉端圈,我們可以看到f(zi)與神經(jīng)元的輸入z處理得到的g(z)是相乘的關(guān)系,也即如果輸入門關(guān)閉子库,則該LSTM神經(jīng)元不再接收輸入門的輸入z舱权。同理,如果輸出門關(guān)閉仑嗅,則該LSTM神經(jīng)元輸出門無法產(chǎn)生有效的輸出a宴倍。而對于遺忘門,根據(jù)圖中的公式可知仓技,如果遺忘門關(guān)閉鸵贬,則意味著記憶細胞過去的記憶值c將被忘記,該LSTM神經(jīng)元的輸出完全獨立脖捻,不受過去輸出的影響阔逼。(如果將遺忘門叫做記憶門或許更好理解,記憶門關(guān)閉則完全遺忘地沮。)

LSTM計算過程舉例:


LSTM計算過程舉例

左邊的圖嗜浮,遺忘門那,c' = 3+c诉濒。c是7周伦,c'就得到10了。

理解了LSTM的邏輯結(jié)構(gòu)未荒,接下來我們看一下LSTM的真實結(jié)構(gòu),可以翻上去和標準RNN的結(jié)構(gòu)圖比較一下:


LSTM的真實結(jié)構(gòu)

我們先來解釋一下圖中的各種圖標的含義:


黃色方塊代表一個神經(jīng)網(wǎng)絡(luò)層及志,里面的σ代表Sigmoid激活函數(shù)片排,tanh代表雙曲正切激活函數(shù)。粉色的圈代表一次操作速侈,比如求積求和率寡。每一條黑線傳輸著一整個向量,從一個節(jié)點的輸出到其他節(jié)點的輸入倚搬。合在一起的線表示向量的連接冶共,分開的線表示內(nèi)容被復(fù)制,然后分發(fā)到不同的位置每界。

我們這里準備一部分一部分的將真實結(jié)構(gòu)對應(yīng)到前面的邏輯結(jié)構(gòu)上去捅僵。先是邏輯結(jié)構(gòu)中的記憶細胞:


這里圖中的Ct-1Ct的過程,就是前面邏輯結(jié)構(gòu)中cc'的過程眨层,前面講cc'的過程有兩部分庙楚,一部分是由遺忘門f(zf)決定前面的c是否參與到c'的計算中來,對應(yīng)到真實結(jié)構(gòu)上也就是圖中的ft趴樱,它決定了Ct-1會不會加到C中去馒闷;另一部分就是輸入門的輸入酪捡,在講邏輯結(jié)構(gòu)的過程中,我們知道纳账,輸入門的輸入也由兩部分構(gòu)成逛薇,一部分是信號輸入zi代入Sigmoid函數(shù)的結(jié)果f(zi)決定了是否接受輸入z,另一部分就是處理輸入z得到的g(z)了疏虫。對應(yīng)到上面的圖中永罚,it就是f(zi),負責(zé)決定輸入z要不要被采用议薪,圖中與it相乘的另一部分尤蛮,就可以理解為g(x)了。

接下來是遺忘門和輸入門斯议,在上面已經(jīng)講過了:


遺忘門

輸入門

上面說了产捞,f(zf)就對應(yīng)著ft,看遺忘門圖中的式子哼御,括號里面的自然就是zf了坯临,前面說過f函數(shù)就是Sigmoid函數(shù)就是圖中的σ;然后是輸入門恋昼,前面說看靠,f(zi)就是it,看輸入門圖中右側(cè)的第一個式子液肌,括號里面的自然就是zi了挟炬,下面的式子就是g(z),那對應(yīng)起來g函數(shù)就是tanh了嗦哆,z就是括號里面的內(nèi)容谤祖。

然后是輸出門:


前面講,輸出門接受一個信號zo老速,經(jīng)過處理得到f(zo)粥喜;計算出的c',經(jīng)過h函數(shù)處理橘券,得到h(c')额湘,然后乘起來得到aa = h(c')f(zo)(如果忘了可以往回翻一下邏輯結(jié)構(gòu)圖)旁舰。這對應(yīng)關(guān)系就很明顯了锋华,zo是圖中第一個式子括號里面的那一大堆,ot就是f(zo)鬓梅,計算出的c'就是圖中的Ct供置,這個前面說過了,然后h函數(shù)還是tanh函數(shù)绽快,然后乘起來得到的那個a就是ht芥丧。我覺得我講的真是不能再清楚了:)

LSTM可以通過控制門的開閉天然避免梯度消失紧阔。因為前面提到過,梯度消失的原因在于連乘式的產(chǎn)生续担,計算每層的梯度都需要用到下一層的梯度擅耽,需要一直乘到輸出層,而對于LSTM來說物遇,輸入和記憶是相加的乖仇,也就是在邏輯結(jié)構(gòu)那說的:


這有個什么好處呢,就是只要遺忘門不關(guān)閉(即f(zf)不等于0)询兴,前面的輸出c的影響就永遠不會消失乃沙。

以上,這樣這篇《淺談深度學(xué)習(xí)基礎(chǔ)》也就結(jié)束了诗舰,下一篇可能會是《淺談自然語言處理基礎(chǔ)》警儒,因為我本身就是Chatbot方向的產(chǎn)品經(jīng)理,對NLP也很感興趣眶根。當(dāng)然也可能不是:>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蜀铲,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子属百,更是在濱河造成了極大的恐慌记劝,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件族扰,死亡現(xiàn)場離奇詭異厌丑,居然都是意外死亡,警方通過查閱死者的電腦和手機渔呵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門蹄衷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人厘肮,你說我怎么就攤上這事∧婪” “怎么了类茂?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長托嚣。 經(jīng)常有香客問我巩检,道長,這世上最難降的妖魔是什么示启? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任兢哭,我火速辦了婚禮,結(jié)果婚禮上夫嗓,老公的妹妹穿的比我還像新娘迟螺。我一直安慰自己冲秽,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布矩父。 她就那樣靜靜地躺著锉桑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪窍株。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天,我揣著相機與錄音立由,去河邊找鬼旋讹。 笑死,一個胖子當(dāng)著我的面吹牛冒滩,可吹牛的內(nèi)容都是我干的微驶。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼旦部,長吁一口氣:“原來是場噩夢啊……” “哼祈搜!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起士八,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤容燕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后婚度,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蘸秘,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年蝗茁,在試婚紗的時候發(fā)現(xiàn)自己被綠了醋虏。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡哮翘,死狀恐怖颈嚼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情饭寺,我是刑警寧澤阻课,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站艰匙,受9級特大地震影響限煞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜员凝,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一署驻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦旺上、人聲如沸瓶蚂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽扬跋。三九已至,卻和暖如春凌节,著一層夾襖步出監(jiān)牢的瞬間钦听,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工倍奢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留朴上,地道東北人。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓卒煞,卻偏偏與公主長得像痪宰,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子畔裕,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 五衣撬、Deep Learning的基本思想 假設(shè)我們有一個系統(tǒng)S,它有n層(S1,…Sn)扮饶,它的輸入是I具练,輸出是O,...
    dma_master閱讀 1,648評論 1 2
  • 文/雪中萍 走時未提前定好回程時間和地點甜无,提前五天想起買返程車票扛点,只有硬座,無奈歸心似箭岂丘,一咬牙陵究,硬...
    雪中萍閱讀 463評論 0 1
  • 捷克坐在白雪皚皚的山林中俯視這自己腳下的這片土地。這里是黑龍江哈爾濱東北虎園奥帘,捷克是這群老虎的國王铜邮。午后的陽光照在...
    琉璃mm閱讀 350評論 0 2
  • ————今天是為達康書記演技點贊的小編值班———— 人紅不紅牲距,看看斗圖表情包! 最近無論是刷微信微博钥庇,還是和朋友斗...
    趣讀書吧閱讀 372評論 0 0