深度學(xué)習(xí) - 人工神經(jīng)網(wǎng)絡(luò)的研究的概念
深度學(xué)習(xí)的概念源于人工神經(jīng)網(wǎng)絡(luò)的研究。含多隱層的多層感知器就是一種深度學(xué)習(xí)結(jié)構(gòu)。
深度學(xué)習(xí)通過(guò)組合低層特征形成更加抽象的高層表示屬性類(lèi)別或特征,以發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示。深度學(xué)習(xí)的概念由Hinton等人于2006年提出。基于深信度網(wǎng) - DBN提出非監(jiān)督貪心逐層訓(xùn)練算法,為解決深層結(jié)構(gòu)相關(guān)的優(yōu)化難題帶來(lái)希望,隨后提出多層自動(dòng)編碼器深層結(jié)構(gòu)。
此外Lecun等人提出的卷積神經(jīng)網(wǎng)絡(luò)是第一個(gè)真正多層結(jié)構(gòu)學(xué)習(xí)算法,它利用空間相對(duì)關(guān)系減少參數(shù)數(shù)目以提高訓(xùn)練性能。
深度學(xué)習(xí)作為機(jī)器學(xué)習(xí)研究中的一個(gè)領(lǐng)域,其動(dòng)機(jī)在于建立、模擬人腦進(jìn)行分析學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),它模仿人腦的機(jī)制來(lái)解釋數(shù)據(jù),例如圖像、聲音和文本等。同機(jī)器學(xué)習(xí)方法一樣,深度機(jī)器學(xué)習(xí)方法也有監(jiān)督學(xué)習(xí)與無(wú)監(jiān)督學(xué)習(xí)之分。不同的學(xué)習(xí)框架下建立的學(xué)習(xí)模型很是不同。例如,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural networks,簡(jiǎn)稱CNNs)就是一種深度的監(jiān)督學(xué)習(xí)下的機(jī)器學(xué)習(xí)模型,而深度置信網(wǎng)(Deep BeliefNets,簡(jiǎn)稱DBNs)就是一種無(wú)監(jiān)督學(xué)習(xí)下的機(jī)器學(xué)習(xí)模型。

簡(jiǎn)介
深度學(xué)習(xí)是一類(lèi)模式分析方法的統(tǒng)稱,就具體研究?jī)?nèi)容而言,主要涉及三類(lèi)方法:
- 1基于卷積運(yùn)算的神經(jīng)網(wǎng)絡(luò)系統(tǒng),即卷積神經(jīng)網(wǎng)絡(luò) - CNN。 - 2基于多層神經(jīng)元的自編碼神經(jīng)網(wǎng)絡(luò),包括自編碼 - Auto encoder以及近年來(lái)受到廣泛關(guān)注的稀疏編碼兩類(lèi) - Sparse Coding。 - 3以多層自編碼神經(jīng)網(wǎng)絡(luò)的方式進(jìn)行預(yù)訓(xùn)練,進(jìn)而結(jié)合鑒別信息進(jìn)一步優(yōu)化神經(jīng)網(wǎng)絡(luò)權(quán)值的深度置信網(wǎng)絡(luò) - DBN。
通過(guò)多層處理,逐漸將初始的“低層”特征表示轉(zhuǎn)化為“高層”特征表示后,用“簡(jiǎn)單模型”即可完成復(fù)雜的分類(lèi)等學(xué)習(xí)任務(wù)。由此可將深度學(xué)習(xí)理解為進(jìn)行“特征學(xué)習(xí)”(feature learning)或“表示學(xué)習(xí)”(representation learning)。
以往在機(jī)器學(xué)習(xí)用于現(xiàn)實(shí)任務(wù)時(shí),描述樣本的特征通常需由人類(lèi)專(zhuān)家來(lái)設(shè)計(jì),這成為“特征工程”(feature engineering)。眾所周知,特征的好壞對(duì)泛化性能有至關(guān)重要的影響,人類(lèi)專(zhuān)家設(shè)計(jì)出好特征也并非易事;特征學(xué)習(xí)(表征學(xué)習(xí))則通過(guò)機(jī)器學(xué)習(xí)技術(shù)自身來(lái)產(chǎn)生好特征,這使機(jī)器學(xué)習(xí)向“全自動(dòng)數(shù)據(jù)分析”又前進(jìn)了一步。
近年來(lái),研究人員也逐漸將這幾類(lèi)方法結(jié)合起來(lái),如對(duì)原本是以有監(jiān)督學(xué)習(xí)為基礎(chǔ)的卷積神經(jīng)網(wǎng)絡(luò)結(jié)合自編碼神經(jīng)網(wǎng)絡(luò)進(jìn)行無(wú)監(jiān)督的預(yù)訓(xùn)練,進(jìn)而利用鑒別信息微調(diào)網(wǎng)絡(luò)參數(shù)形成的卷積深度置信網(wǎng)絡(luò)。與傳統(tǒng)的學(xué)習(xí)方法相比,深度學(xué)習(xí)方法預(yù)設(shè)了更多的模型參數(shù),因此模型訓(xùn)練難度更大,根據(jù)統(tǒng)計(jì)學(xué)習(xí)的一般規(guī)律知道,模型參數(shù)越多,需要參與訓(xùn)練的數(shù)據(jù)量也越大。
20世紀(jì)八九十年代由于計(jì)算機(jī)計(jì)算能力有限和相關(guān)技術(shù)的限制,可用于分析的數(shù)據(jù)量太小,深度學(xué)習(xí)在模式分析中并沒(méi)有表現(xiàn)出優(yōu)異的識(shí)別性能。自從2006年,Hinton等提出快速計(jì)算受限玻耳茲曼機(jī) - RBM網(wǎng)絡(luò)權(quán)值及偏差的CD-K算法以后,RBM就成了增加神經(jīng)網(wǎng)絡(luò)深度的有力工具,導(dǎo)致后面使用廣泛的DBN - 由Hinton等開(kāi)發(fā)并已被微軟等公司用于語(yǔ)音識(shí)別中等深度網(wǎng)絡(luò)的出現(xiàn)。與此同時(shí),稀疏編碼等由于能自動(dòng)從數(shù)據(jù)中提取特征也被應(yīng)用于深度學(xué)習(xí)中。基于局部數(shù)據(jù)區(qū)域的卷積神經(jīng)網(wǎng)絡(luò)方法今年來(lái)也被大量研究。
含義
深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一種,而機(jī)器學(xué)習(xí)是實(shí)現(xiàn)人工智能的必經(jīng)路徑。深度學(xué)習(xí)的概念源于人工神經(jīng)網(wǎng)絡(luò)的研究,含多個(gè)隱藏層的多層感知器就是一種深度學(xué)習(xí)結(jié)構(gòu)。深度學(xué)習(xí)通過(guò)組合低層特征形成更加抽象的高層表示屬性類(lèi)別或特征,以發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示。研究深度學(xué)習(xí)的動(dòng)機(jī)在于建立模擬人腦進(jìn)行分析學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),它模仿人腦的機(jī)制來(lái)解釋數(shù)據(jù),例如圖像,聲音和文本等。
基礎(chǔ)概念
從一個(gè)輸入中產(chǎn)生一個(gè)輸出所涉及的計(jì)算可以通過(guò)一個(gè)流向圖(flow graph)來(lái)表示:流向圖是一種能夠表示計(jì)算的圖,在這種圖中每一個(gè)節(jié)點(diǎn)表示一個(gè)基本的計(jì)算以及一個(gè)計(jì)算的值,計(jì)算的結(jié)果被應(yīng)用到這個(gè)節(jié)點(diǎn)的子節(jié)點(diǎn)的值??紤]這樣一個(gè)計(jì)算集合,它可以被允許在每一個(gè)節(jié)點(diǎn)和可能的圖結(jié)構(gòu)中,并定義了一個(gè)函數(shù)族。輸入節(jié)點(diǎn)沒(méi)有父節(jié)點(diǎn),輸出節(jié)點(diǎn)沒(méi)有子節(jié)點(diǎn)。
這種流向圖的一個(gè)特別屬性是深度(depth):從一個(gè)輸入到一個(gè)輸出的最長(zhǎng)路徑的長(zhǎng)度。
傳統(tǒng)的前饋神經(jīng)網(wǎng)絡(luò)能夠被看作擁有等于層數(shù)的深度(比如對(duì)于輸出層為隱層數(shù)加1)。SVMs有深度2(一個(gè)對(duì)應(yīng)于核輸出或者特征空間,另一個(gè)對(duì)應(yīng)于所產(chǎn)生輸出的線性混合)。
人工智能研究的方向之一,是以所謂 “專(zhuān)家系統(tǒng)” 為代表的,用大量“如果-就” (If – Then) 規(guī)則定義的,自上而下的思路。人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network),標(biāo)志著另外一種自下而上的思路。神經(jīng)網(wǎng)絡(luò)沒(méi)有一個(gè)嚴(yán)格的正式定義。它的基本特點(diǎn),是試圖模仿大腦的神經(jīng)元之間傳遞,處理信息的模式。
特點(diǎn)
區(qū)別于傳統(tǒng)的淺層學(xué)習(xí),深度學(xué)習(xí)的不同在于:
- 1強(qiáng)調(diào)了模型結(jié)構(gòu)的深度,通常有5層、6層,甚至10多層的隱層節(jié)點(diǎn);
- 2明確了特征學(xué)習(xí)的重要性。也就是說(shuō),通過(guò)逐層特征變換,將樣本在原空間的特征表示變換到一個(gè)新特征空間,從而使分類(lèi)或預(yù)測(cè)更容易。與人工規(guī)則構(gòu)造特征的方法相比,利用大數(shù)據(jù)來(lái)學(xué)習(xí)特征,更能夠刻畫(huà)數(shù)據(jù)豐富的內(nèi)在信息。
通過(guò)設(shè)計(jì)建立適量的神經(jīng)元計(jì)算節(jié)點(diǎn)和多層運(yùn)算層次結(jié)構(gòu),選擇合適的輸人層和輸出層,通過(guò)網(wǎng)絡(luò)的學(xué)習(xí)和調(diào)優(yōu),建立起從輸入到輸出的函數(shù)關(guān)系,雖然不能100%找到輸入與輸出的函數(shù)關(guān)系,但是可以盡可能的逼近現(xiàn)實(shí)的關(guān)聯(lián)關(guān)系。使用訓(xùn)練成功的網(wǎng)絡(luò)模型,就可以實(shí)現(xiàn)我們對(duì)復(fù)雜事務(wù)處理的自動(dòng)化要求。
深度學(xué)習(xí)典型
典型的深度學(xué)習(xí)模型有卷積神經(jīng)網(wǎng)絡(luò) - ?convolutional?neural?network、DBN和堆棧自編碼網(wǎng)絡(luò) - stacked?auto-encoder?network模型等,下面對(duì)這些模型進(jìn)行描述。?
卷積神經(jīng)網(wǎng)絡(luò)模型
在無(wú)監(jiān)督預(yù)訓(xùn)練出現(xiàn)之前,訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)通常非常困難,而其中一個(gè)特例是卷積神經(jīng)網(wǎng)絡(luò)。卷積神經(jīng)網(wǎng)絡(luò)受視覺(jué)系統(tǒng)的結(jié)構(gòu)啟發(fā)而產(chǎn)生。第一個(gè)卷積神經(jīng)網(wǎng)絡(luò)計(jì)算模型是在Fukushima - D的神經(jīng)認(rèn)知機(jī)中提出的,基于神經(jīng)元之間的局部連接和分層組織圖像轉(zhuǎn)換,將有相同參數(shù)的神經(jīng)元應(yīng)用于前一層神經(jīng)網(wǎng)絡(luò)的不同位置,得到一種平移不變神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)形式。后來(lái),Le?Cun等人在該思想的基礎(chǔ)上,用誤差梯度設(shè)計(jì)并訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò),在一些模式識(shí)別任務(wù)上得到優(yōu)越的性能。至今,基于卷積神經(jīng)網(wǎng)絡(luò)的模式識(shí)別系統(tǒng)是最好的實(shí)現(xiàn)系統(tǒng)之一,尤其在手寫(xiě)體字符識(shí)別任務(wù)上表現(xiàn)出非凡的性能。
深度信任網(wǎng)絡(luò)模型
DBN可以解釋為貝葉斯概率生成模型,由多層隨機(jī)隱變量組成,上面的兩層具有無(wú)向?qū)ΨQ連接,下面的層得到來(lái)自上一層的自頂向下的有向連接,最底層單元的狀態(tài)為可見(jiàn)輸入數(shù)據(jù)向量。DBN由若2F結(jié)構(gòu)單元堆棧組成,結(jié)構(gòu)單元通常為RBM(RestIlcted?Boltzmann?Machine,受限玻爾茲曼機(jī))。堆棧中每個(gè)RBM單元的可視層神經(jīng)元數(shù)量等于前一RBM單元的隱層神經(jīng)元數(shù)量。根據(jù)深度學(xué)習(xí)機(jī)制,采用輸入樣例訓(xùn)練第一層RBM單元,并利用其輸出訓(xùn)練第二層RBM模型,將RBM模型進(jìn)行堆棧通過(guò)增加層來(lái)改善模型性能。在無(wú)監(jiān)督預(yù)訓(xùn)練過(guò)程中,DBN編碼輸入到頂層RBM后,解碼頂層的狀態(tài)到最底層的單元,實(shí)現(xiàn)輸入的重構(gòu)。RBM作為DBN的結(jié)構(gòu)單元,與每一層DBN共享參數(shù)。
堆棧自編碼網(wǎng)絡(luò)模型
堆棧自編碼網(wǎng)絡(luò)的結(jié)構(gòu)與DBN類(lèi)似,由若干結(jié)構(gòu)單元堆棧組成,不同之處在于其結(jié)構(gòu)單元為自編碼模型 - ?auto-en-coder而不是RBM。自編碼模型是一個(gè)兩層的神經(jīng)網(wǎng)絡(luò),第一層稱為編碼層,第二層稱為解碼層。
深度學(xué)習(xí)訓(xùn)練過(guò)程
2006年,Hinton提出了在非監(jiān)督數(shù)據(jù)上建立多層神經(jīng)網(wǎng)絡(luò)的一個(gè)有效方法,具體分為兩步:首先逐層構(gòu)建單層神經(jīng)元,這樣每次都是訓(xùn)練一個(gè)單層網(wǎng)絡(luò);當(dāng)所有層訓(xùn)練完后,使用wake-sleep算法進(jìn)行調(diào)優(yōu)。?
將除最頂層的其他層間的權(quán)重變?yōu)殡p向的,這樣最頂層仍然是一個(gè)單層神經(jīng)網(wǎng)絡(luò),而其他層則變?yōu)榱藞D模型。向上的權(quán)重用于“認(rèn)知”,向下的權(quán)重用于“生成”。然后使用wake-sleep算法調(diào)整所有的權(quán)重。讓認(rèn)知和生成達(dá)成一致,也就是保證生成的最頂層表示能夠盡可能正確的復(fù)原底層的節(jié)點(diǎn)。比如頂層的一個(gè)節(jié)點(diǎn)表示人臉,那么所有人臉的圖像應(yīng)該激活這個(gè)節(jié)點(diǎn),并且這個(gè)結(jié)果向下生成的圖像應(yīng)該能夠表現(xiàn)為一個(gè)大概的人臉圖像。wake-sleep算法分為醒 - ?wake和睡 - sleep兩個(gè)部分。
wake階段:認(rèn)知過(guò)程,通過(guò)外界的特征和向上的權(quán)重產(chǎn)生每一層的抽象表示,并且使用梯度下降修改層間的下行權(quán)重。
sleep階段:生成過(guò)程,通過(guò)頂層表示和向下權(quán)重,生成底層的狀態(tài),同時(shí)修改層間向上的權(quán)重。
自下上升的非監(jiān)督學(xué)習(xí)
就是從底層開(kāi)始,一層一層地往頂層訓(xùn)練。采用無(wú)標(biāo)定數(shù)據(jù)(有標(biāo)定數(shù)據(jù)也可)分層訓(xùn)練各層參數(shù),這一步可以看作是一個(gè)無(wú)監(jiān)督訓(xùn)練過(guò)程,這也是和傳統(tǒng)神經(jīng)網(wǎng)絡(luò)區(qū)別最大的部分,可以看作是特征學(xué)習(xí)過(guò)程。具體的,先用無(wú)標(biāo)定數(shù)據(jù)訓(xùn)練第一層,訓(xùn)練時(shí)先學(xué)習(xí)第一層的參數(shù),這層可以看作是得到一個(gè)使得輸出和輸入差別最小的三層神經(jīng)網(wǎng)絡(luò)的隱層,由于模型容量的限制以及稀疏性約束,使得得到的模型能夠?qū)W習(xí)到數(shù)據(jù)本身的結(jié)構(gòu),從而得到比輸入更具有表示能力的特征;在學(xué)習(xí)得到n-l層后,將n-l層的輸出作為第n層的輸入,訓(xùn)練第n層,由此分別得到各層的參數(shù)。
自頂向下的監(jiān)督學(xué)習(xí)
就是通過(guò)帶標(biāo)簽的數(shù)據(jù)去訓(xùn)練,誤差自頂向下傳輸,對(duì)網(wǎng)絡(luò)進(jìn)行微調(diào)?;诘谝徊降玫降母鲗訁?shù)進(jìn)一步優(yōu)調(diào)整個(gè)多層模型的參數(shù),這一步是一個(gè)有監(jiān)督訓(xùn)練過(guò)程。第一步類(lèi)似神經(jīng)網(wǎng)絡(luò)的隨機(jī)初始化初值過(guò)程,由于第一步不是隨機(jī)初始化,而是通過(guò)學(xué)習(xí)輸入數(shù)據(jù)的結(jié)構(gòu)得到的,因而這個(gè)初值更接近全局最優(yōu),從而能夠取得更好的效果。所以深度學(xué)習(xí)的良好效果在很大程度上歸功于第一步的特征學(xué)習(xí)的過(guò)程。
成功應(yīng)用
1、計(jì)算機(jī)視覺(jué)
ImageNet Classification with Deep Convolutional Neural Networks, Alex Krizhevsky, Ilya Sutskever, Geoffrey E Hinton, NIPS 2012.
Learning Hierarchical Features for Scene Labeling, Clement Farabet, Camille Couprie, Laurent Najman and Yann LeCun, IEEE Transactions on Pattern Analysis and Machine Intelligence, 2013.
Learning Convolutional Feature Hierarchies for Visual Recognition, Koray Kavukcuoglu, Pierre Sermanet, Y-Lan Boureau, Karol Gregor, Micha?l Mathieu and Yann LeCun, Advances in Neural Information Processing Systems - NIPS 2010, 23, 2010.
2、語(yǔ)音識(shí)別
微軟研究人員通過(guò)與hintion合作,首先將RBM和DBN引入到語(yǔ)音識(shí)別聲學(xué)模型訓(xùn)練中,并且在大詞匯量語(yǔ)音識(shí)別系統(tǒng)中獲得巨大成功,使得語(yǔ)音識(shí)別的錯(cuò)誤率相對(duì)減低30%。但是,DNN還沒(méi)有有效的并行快速算法,很多研究機(jī)構(gòu)都是在利用大規(guī)模數(shù)據(jù)語(yǔ)料通過(guò)GPU平臺(tái)提高DNN聲學(xué)模型的訓(xùn)練效率。
在國(guó)際上,IBM、google等公司都快速進(jìn)行了DNN語(yǔ)音識(shí)別的研究,并且速度飛快。
國(guó)內(nèi)方面,阿里巴巴,科大訊飛、百度、中科院自動(dòng)化所等公司或研究單位,也在進(jìn)行深度學(xué)習(xí)在語(yǔ)音識(shí)別上的研究。
3、自然語(yǔ)言處理等其他領(lǐng)域
很多機(jī)構(gòu)在開(kāi)展研究,2013年Tomas Mikolov,Kai Chen,Greg Corrado,Jeffrey Dean發(fā)表論文Efficient Estimation of Word Representations in Vector Space建立word2vector模型,與傳統(tǒng)的詞袋模型(bag of words)相比,word2vector能夠更好地表達(dá)語(yǔ)法信息。深度學(xué)習(xí)在自然語(yǔ)言處理等領(lǐng)域主要應(yīng)用于機(jī)器翻譯以及語(yǔ)義挖掘等方面。
