CNN(卷積神經(jīng)網(wǎng)絡(luò))、RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))、DNN(深度神經(jīng)網(wǎng)絡(luò))的內(nèi)部網(wǎng)絡(luò)結(jié)構(gòu)的區(qū)別
先說DNN,從結(jié)構(gòu)上來說他和傳統(tǒng)意義上的NN(神經(jīng)網(wǎng)絡(luò))沒什么區(qū)別,但是神經(jīng)網(wǎng)絡(luò)發(fā)展時(shí)遇到了一些瓶頸問題。一開始的神經(jīng)元不能表示異或運(yùn)算,科學(xué)家通過增加網(wǎng)絡(luò)層數(shù),增加隱藏層可以表達(dá)。并發(fā)現(xiàn)神經(jīng)網(wǎng)絡(luò)的層數(shù)直接決定了它對(duì)現(xiàn)實(shí)的表達(dá)能力。但是隨著層數(shù)的增加會(huì)出現(xiàn)局部函數(shù)越來越容易出現(xiàn)局部最優(yōu)解的現(xiàn)象,用數(shù)據(jù)訓(xùn)練深層網(wǎng)絡(luò)有時(shí)候還不如淺層網(wǎng)絡(luò),并會(huì)出現(xiàn)梯度消失的問題。我們經(jīng)常使用sigmoid函數(shù)作為神經(jīng)元的輸入輸出函數(shù),在BP反向傳播梯度時(shí),信號(hào)量為1的傳到下一層就變成0.25了,到最后面幾層基本無法達(dá)到調(diào)節(jié)參數(shù)的作用。值得一提的是,最近提出的高速公路網(wǎng)絡(luò)和深度殘差學(xué)習(xí)避免梯度消失的問題。DNN與NN主要的區(qū)別在于把sigmoid函數(shù)替換成了ReLU,maxout,克服了梯度消失的問題。下圖附有深度網(wǎng)絡(luò)DNN結(jié)構(gòu)圖
本文引用地址:http://www.ex-cimer.com/article/202207/435869.htm深度學(xué)習(xí)的深度沒有固定的定義,2006年Hinton解決了局部最優(yōu)解問題,將隱含層發(fā)展到7層,這達(dá)到了深度學(xué)習(xí)上所說的真正深度。不同問題的解決所需要的隱含層數(shù)自然也是不相同的,一般語音識(shí)別4層就可以,而圖像識(shí)別20層屢見不鮮。但隨著層數(shù)的增加,又出現(xiàn)了參數(shù)爆炸增長的問題。假設(shè)輸入的圖片是1K*1K的圖片,隱含層就有1M個(gè)節(jié)點(diǎn),會(huì)有10^12個(gè)權(quán)重需要調(diào)節(jié),這將容易導(dǎo)致過度擬合和局部最優(yōu)解問題的出現(xiàn)。為了解決上述問題,提出了CNN。
CNN最大的利用了圖像的局部信息。圖像中有固有的局部模式(比如輪廓、邊界,人的眼睛、鼻子、嘴等)可以利用,顯然應(yīng)該將圖像處理中的概念和神經(jīng)網(wǎng)絡(luò)技術(shù)相結(jié)合,對(duì)于CNN來說,并不是所有上下層神經(jīng)元都能直接相連,而是通過“卷積核”作為中介。同一個(gè)卷積核在所有圖像內(nèi)是共享的,圖像通過卷積操作后仍然保留原先的位置關(guān)系。卷積神經(jīng)網(wǎng)絡(luò)隱含層,通過一個(gè)例子簡單說明卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)。假設(shè)m-1=1是輸入層,我們需要識(shí)別一幅彩色圖像,這幅圖像具有四個(gè)通道ARGB(透明度和紅綠藍(lán),對(duì)應(yīng)了四幅相同大小的圖像),假設(shè)卷積核大小為100*100,共使用100個(gè)卷積核w1到w100(從直覺來看,每個(gè)卷積核應(yīng)該學(xué)習(xí)到不同的結(jié)構(gòu)特征)。用w1在ARGB圖像上進(jìn)行卷積操作,可以得到隱含層的第一幅圖像;這幅隱含層圖像左上角第一個(gè)像素是四幅輸入圖像左上角100*100區(qū)域內(nèi)像素的加權(quán)求和,以此類推。同理,算上其他卷積核,隱含層對(duì)應(yīng)100幅“圖像”。每幅圖像對(duì)是對(duì)原始圖像中不同特征的響應(yīng)。按照這樣的結(jié)構(gòu)繼續(xù)傳遞下去。CNN中還有max-pooling等操作進(jìn)一步提高魯棒性。
一個(gè)典型的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),注意到最后一層實(shí)際上是一個(gè)全連接層。在這個(gè)例子里,我們注意到輸入層到隱含層的參數(shù)個(gè)數(shù)瞬間降低到了,這使得我們能夠用已有的訓(xùn)練數(shù)據(jù)得到良好的模型。適用于圖像識(shí)別,正是由于模型限制參數(shù)了個(gè)數(shù)并挖掘了局部結(jié)構(gòu)的這個(gè)特點(diǎn),順著同樣的思路,利用語音語譜結(jié)構(gòu)中的局部信息,CNN照樣能應(yīng)用在語音識(shí)別中。CNN結(jié)構(gòu)圖如下:
全連接的DNN還存在著另一個(gè)問題——無法對(duì)時(shí)間序列上的變化進(jìn)行建模。然而,樣本出現(xiàn)的時(shí)間順序?qū)τ谧匀徽Z言處理、語音識(shí)別、手寫體識(shí)別等應(yīng)用非常重要。對(duì)了適應(yīng)這種需求,就出現(xiàn)了另一種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)——循環(huán)神經(jīng)網(wǎng)絡(luò)RNN。在普通的全連接網(wǎng)絡(luò)或CNN中,每層神經(jīng)元的信號(hào)只能向上一層傳播,樣本的處理在各個(gè)時(shí)刻獨(dú)立,因此又被成為前向神經(jīng)網(wǎng)絡(luò)(Feed-forward Neural Networks)。而在RNN中,神經(jīng)元的輸出可以在下一個(gè)時(shí)間戳直接作用到自身,即第i層神經(jīng)元在m時(shí)刻的輸入,除了(i-1)層神經(jīng)元在該時(shí)刻的輸出外,還包括其自身在(m-1)時(shí)刻的輸出!表示成圖就是這樣的:
我們可以看到在隱含層節(jié)點(diǎn)之間增加了互連。為了分析方便,我們常將RNN在時(shí)間上進(jìn)行展開,得到如圖6所示的結(jié)構(gòu)
RNN可以看成一個(gè)在時(shí)間上傳遞的神經(jīng)網(wǎng)絡(luò),它的深度是時(shí)間的長度!正如我們上面所說,“梯度消失”現(xiàn)象又要出現(xiàn)了,只不過這次發(fā)生在時(shí)間軸上。對(duì)于t時(shí)刻來說,它產(chǎn)生的梯度在時(shí)間軸上向歷史傳播幾層之后就消失了,根本就無法影響太遙遠(yuǎn)的過去。因此,之前說“所有歷史”共同作用只是理想的情況,在實(shí)際中,這種影響也就只能維持若干個(gè)時(shí)間戳。為了解決時(shí)間上的梯度消失,機(jī)器學(xué)習(xí)領(lǐng)域發(fā)展出了長短時(shí)記憶單元。
評(píng)論