這篇文章主要是為了對(duì)深度學(xué)習(xí)(DeepLearning)有個(gè)初步了解,算是一個(gè)科普文吧,文章中去除了復(fù)雜的公式和圖表,主要內(nèi)容包括深度學(xué)習(xí)概念、國(guó)內(nèi)外研究現(xiàn)狀、深度學(xué)習(xí)模型結(jié)構(gòu)、深度學(xué)習(xí)訓(xùn)練算法、深度學(xué)習(xí)的優(yōu)點(diǎn)、深度學(xué)習(xí)已有的應(yīng)用、深度學(xué)習(xí)存在的問(wèn)題及未來(lái)研究方向、深度學(xué)習(xí)開(kāi)源軟件。
一、 深度學(xué)習(xí)概念
深度學(xué)習(xí)(Deep Learning, DL)由Hinton等人于2006年提出,是機(jī)器學(xué)習(xí)(MachineLearning, ML)的一個(gè)新領(lǐng)域。
深度學(xué)習(xí)被引入機(jī)器學(xué)習(xí)使其更接近于最初的目標(biāo)----人工智能(AI,Artificial Intelligence)。深度學(xué)習(xí)是學(xué)習(xí)樣本數(shù)據(jù)的內(nèi)在規(guī)律和表示層次,這些學(xué)習(xí)過(guò)程中獲得的信息對(duì)諸如文字、圖像和聲音等數(shù)據(jù)的解釋有很大的幫助。它的最終目標(biāo)是讓機(jī)器能夠像人一樣具有分析學(xué)習(xí)能力,能夠識(shí)別文字、圖像和聲音等數(shù)據(jù)。
深度學(xué)習(xí)是一個(gè)復(fù)雜的機(jī)器學(xué)習(xí)算法,在語(yǔ)言和圖像識(shí)別方面取得的效果,遠(yuǎn)遠(yuǎn)超過(guò)先前相關(guān)技術(shù)。它在搜索技術(shù)、數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)、機(jī)器翻譯、自然語(yǔ)言處理、多媒體學(xué)習(xí)、語(yǔ)音、推薦和個(gè)性化技術(shù),以及其它相關(guān)領(lǐng)域都取得了很多成果。深度學(xué)習(xí)使機(jī)器模仿視聽(tīng)和思考等人類(lèi)的活動(dòng),解決了很多復(fù)雜的模式識(shí)別難題,使得人工智能相關(guān)技術(shù)取得了很大進(jìn)步。
2006年,機(jī)器學(xué)習(xí)大師、多倫多大學(xué)教授Geoffrey Hinton及其學(xué)生Ruslan發(fā)表在世界頂級(jí)學(xué)術(shù)期刊《科學(xué)》上的一篇論文引發(fā)了深度學(xué)習(xí)在研究領(lǐng)域和應(yīng)用領(lǐng)域的發(fā)展熱潮。這篇文獻(xiàn)提出了兩個(gè)主要觀(guān)點(diǎn):(1)、多層人工神經(jīng)網(wǎng)絡(luò)模型有很強(qiáng)的特征學(xué)習(xí)能力,深度學(xué)習(xí)模型學(xué)習(xí)得到的特征數(shù)據(jù)對(duì)原數(shù)據(jù)有更本質(zhì)的代表性,這將大大便于分類(lèi)和可視化問(wèn)題;(2)、對(duì)于深度神經(jīng)網(wǎng)絡(luò)很難訓(xùn)練達(dá)到最優(yōu)的問(wèn)題,可以采用逐層訓(xùn)練方法解決。將上層訓(xùn)練好的結(jié)果作為下層訓(xùn)練過(guò)程中的初始化參數(shù)。在這一文獻(xiàn)中深度模型的訓(xùn)練過(guò)程中逐層初始化采用無(wú)監(jiān)督學(xué)習(xí)方式。
2010年,深度學(xué)習(xí)項(xiàng)目首次獲得來(lái)自美國(guó)國(guó)防部門(mén)DARPA計(jì)劃的資助,參與方有美國(guó)NEC研究院、紐約大學(xué)和斯坦福大學(xué)。自2011年起,谷歌和微軟研究院的語(yǔ)音識(shí)別方向研究專(zhuān)家先后采用深度神經(jīng)網(wǎng)絡(luò)技術(shù)將語(yǔ)音識(shí)別的錯(cuò)誤率降低20%-30%,這是長(zhǎng)期以來(lái)語(yǔ)音識(shí)別研究領(lǐng)域取得的重大突破。2012年,深度神經(jīng)網(wǎng)絡(luò)在圖像識(shí)別應(yīng)用方面也獲得重大進(jìn)展,在ImageNet評(píng)測(cè)問(wèn)題中將原來(lái)的錯(cuò)誤率降低了9%。同年,制藥公司將深度神經(jīng)網(wǎng)絡(luò)應(yīng)用于藥物活性預(yù)測(cè)問(wèn)題取得世界范圍內(nèi)最好結(jié)果。2012年6月,Andrew NG帶領(lǐng)的科學(xué)家們?cè)诠雀枭衩氐腦實(shí)驗(yàn)室創(chuàng)建了一個(gè)有16000個(gè)處理器的大規(guī)模神經(jīng)網(wǎng)絡(luò),包含數(shù)十億個(gè)網(wǎng)絡(luò)節(jié)點(diǎn),讓這個(gè)神經(jīng)網(wǎng)絡(luò)處理大量隨機(jī)選擇的視頻片段。經(jīng)過(guò)充分的訓(xùn)練以后,機(jī)器系統(tǒng)開(kāi)始學(xué)會(huì)自動(dòng)識(shí)別貓的圖像。這是深度學(xué)習(xí)領(lǐng)域最著名的案例之一,引起各界極大的關(guān)注。
深度學(xué)習(xí)本質(zhì)上是構(gòu)建含有多隱層的機(jī)器學(xué)習(xí)架構(gòu)模型,通過(guò)大規(guī)模數(shù)據(jù)進(jìn)行訓(xùn)練,得到大量更具代表性的特征信息。從而對(duì)樣本進(jìn)行分類(lèi)和預(yù)測(cè),提高分類(lèi)和預(yù)測(cè)的精度。這個(gè)過(guò)程是通過(guò)深度學(xué)習(xí)模型的手段達(dá)到特征學(xué)習(xí)的目的。深度學(xué)習(xí)模型和傳統(tǒng)淺層學(xué)習(xí)模型的區(qū)別在于:(1)、深度學(xué)習(xí)模型結(jié)構(gòu)含有更多的層次,包含隱層節(jié)點(diǎn)的層數(shù)通常在5層以上,有時(shí)甚至包含多達(dá)10層以上的隱藏節(jié)點(diǎn);(2)、明確強(qiáng)調(diào)了特征學(xué)習(xí)對(duì)于深度模型的重要性,即通過(guò)逐層特征提取,將數(shù)據(jù)樣本在原空間的特征變換到一個(gè)新的特征空間來(lái)表示初始數(shù)據(jù),這使得分類(lèi)或預(yù)測(cè)問(wèn)題更加容易實(shí)現(xiàn)。和人工設(shè)計(jì)的特征提取方法相比,利用深度模型學(xué)習(xí)得到的數(shù)據(jù)特征對(duì)大數(shù)據(jù)的豐富內(nèi)在信息更有代表性。
在統(tǒng)計(jì)機(jī)器學(xué)習(xí)領(lǐng)域,值得關(guān)注的問(wèn)題是如何對(duì)輸入樣本進(jìn)行特征空間的選擇。例如對(duì)行人檢測(cè)問(wèn)題,需要尋找表現(xiàn)人體不同特點(diǎn)的特征向量。一般來(lái)說(shuō),當(dāng)輸入空間中的原始數(shù)據(jù)不能被直接分開(kāi)時(shí),則將其映射到一個(gè)線(xiàn)性可分的間接特征空間。而此間接空間通常可由3種方式獲得:定義核函數(shù)映射到高維線(xiàn)性可分空間,如支持向量機(jī)(support vector machine,SVM)、手工編碼或自動(dòng)學(xué)習(xí)。前2種方式對(duì)專(zhuān)業(yè)知識(shí)要求很高,且耗費(fèi)大量的計(jì)算資源,不適合高維輸入空間。而第3種方式利用帶多層非線(xiàn)性處理能力的深度學(xué)習(xí)結(jié)構(gòu)進(jìn)行自動(dòng)學(xué)習(xí),經(jīng)實(shí)際驗(yàn)證被普遍認(rèn)為具有重要意義與價(jià)值。深度學(xué)習(xí)結(jié)構(gòu)相對(duì)于淺層學(xué)習(xí)結(jié)構(gòu)[如SVM、人工神經(jīng)網(wǎng)絡(luò)(artificial neural networks,ANN),能夠用更少的參數(shù)逼近高度非線(xiàn)性函數(shù)。
深度學(xué)習(xí)是機(jī)器學(xué)習(xí)領(lǐng)域一個(gè)新的研究方向,近年來(lái)在語(yǔ)音識(shí)別、計(jì)算機(jī)視覺(jué)等多類(lèi)應(yīng)用中取得突破性的進(jìn)展。其動(dòng)機(jī)在于建立模型模擬人類(lèi)大腦的神經(jīng)連接結(jié)構(gòu),在處理圖像、聲音和文本這些信號(hào)時(shí),通過(guò)多個(gè)變換階段分層對(duì)數(shù)據(jù)特征進(jìn)行描述,進(jìn)而給出數(shù)據(jù)的解釋。以圖像數(shù)據(jù)為例,靈長(zhǎng)類(lèi)的視覺(jué)系統(tǒng)中對(duì)這類(lèi)信號(hào)的處理依次為:首先檢測(cè)邊緣、初始形狀、然后再逐步形成更復(fù)雜的視覺(jué)形狀,同樣地,深度學(xué)習(xí)通過(guò)組合低層特征形成更加抽象的高層表示、屬性類(lèi)別或特征,給出數(shù)據(jù)的分層特征表示。
深度學(xué)習(xí)之所以被稱(chēng)為“深度”,是相對(duì)支持向量機(jī)(supportvector machine, SVM)、提升方法(boosting)、最大熵方法等“淺層學(xué)習(xí)”方法而言的,深度學(xué)習(xí)所學(xué)得的模型中,非線(xiàn)性操作的層級(jí)數(shù)更多。淺層學(xué)習(xí)依靠人工經(jīng)驗(yàn)抽取樣本特征,網(wǎng)絡(luò)模型學(xué)習(xí)后獲得的是沒(méi)有層次結(jié)構(gòu)的單層特征;而深度學(xué)習(xí)通過(guò)對(duì)原始信號(hào)進(jìn)行逐層特征變換,將樣本在原空間的特征表示變換到新的特征空間,自動(dòng)地學(xué)習(xí)得到層次化的特征表示,從而更有利于分類(lèi)或特征的可視化。深度學(xué)習(xí)理論的另外一個(gè)理論動(dòng)機(jī)是:如果一個(gè)函數(shù)可用k層結(jié)構(gòu)以簡(jiǎn)潔的形式表達(dá),那么用k-1層的結(jié)構(gòu)表達(dá)則可能需要指數(shù)級(jí)數(shù)量的參數(shù)(相對(duì)于輸入信號(hào)),且泛化能力不足。
深度學(xué)習(xí)算法打破了傳統(tǒng)神經(jīng)網(wǎng)絡(luò)對(duì)層數(shù)的限制,可根據(jù)設(shè)計(jì)者需要選擇網(wǎng)絡(luò)層數(shù)。它的訓(xùn)練方法與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)相比有很大區(qū)別,傳統(tǒng)神經(jīng)網(wǎng)絡(luò)隨機(jī)設(shè)定參數(shù)初始值,采用BP算法利用梯度下降算法訓(xùn)練網(wǎng)絡(luò),直至收斂。但深度結(jié)構(gòu)訓(xùn)練很困難,傳統(tǒng)對(duì)淺層有效的方法對(duì)于深度結(jié)構(gòu)并無(wú)太大作用,隨機(jī)初始化權(quán)值極易使目標(biāo)函數(shù)收斂到局部極小值,且由于層數(shù)較多,殘差向前傳播會(huì)丟失嚴(yán)重,導(dǎo)致梯度擴(kuò)散,因此深度學(xué)習(xí)過(guò)程中采用貪婪無(wú)監(jiān)督逐層訓(xùn)練方法。即在一個(gè)深度學(xué)習(xí)設(shè)計(jì)中,每層被分開(kāi)對(duì)待并以一種貪婪方式進(jìn)行訓(xùn)練,當(dāng)前一層訓(xùn)練完后,新的一層將前一層的輸出作為輸入并編碼以用于訓(xùn)練;最后每層參數(shù)訓(xùn)練完后,在整個(gè)網(wǎng)絡(luò)中利用有監(jiān)督學(xué)習(xí)進(jìn)行參數(shù)微調(diào)。
深度學(xué)習(xí)的概念最早由多倫多大學(xué)的G. E.Hinton等于2006年提出,基于樣本數(shù)據(jù)通過(guò)一定的訓(xùn)練方法得到包含多個(gè)層級(jí)的深度網(wǎng)絡(luò)結(jié)構(gòu)的機(jī)器學(xué)習(xí)過(guò)程。傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)隨機(jī)初始化網(wǎng)絡(luò)中的權(quán)值,導(dǎo)致網(wǎng)絡(luò)很容易收斂到局部最小值,為解決這一問(wèn)題,Hinton提出使用無(wú)監(jiān)督預(yù)訓(xùn)練方法優(yōu)化網(wǎng)絡(luò)權(quán)值的初值,再進(jìn)行權(quán)值微調(diào)的方法,拉開(kāi)了深度學(xué)習(xí)的序幕。
深度學(xué)習(xí)所得到的深度網(wǎng)絡(luò)結(jié)構(gòu)包含大量的單一元素(神經(jīng)元),每個(gè)神經(jīng)元與大量其他神經(jīng)元相連接,神經(jīng)元間的連接強(qiáng)度(權(quán)值)在學(xué)習(xí)過(guò)程中修改并決定網(wǎng)絡(luò)的功能。通過(guò)深度學(xué)習(xí)得到的深度網(wǎng)絡(luò)結(jié)構(gòu)符合神經(jīng)網(wǎng)絡(luò)的特征,因此深度網(wǎng)絡(luò)就是深層次的神經(jīng)網(wǎng)絡(luò),即深度神經(jīng)網(wǎng)絡(luò)(deep neural networks, DNN)。
深度學(xué)習(xí)的概念起源于人工神經(jīng)網(wǎng)絡(luò)的研究,有多個(gè)隱層的多層感知器是深度學(xué)習(xí)模型的一個(gè)很好的范例。對(duì)神經(jīng)網(wǎng)絡(luò)而言,深度指的是網(wǎng)絡(luò)學(xué)習(xí)得到的函數(shù)中非線(xiàn)性運(yùn)算組合水平的數(shù)量。當(dāng)前神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法多是針對(duì)較低水平的網(wǎng)絡(luò)結(jié)構(gòu),將這種網(wǎng)絡(luò)稱(chēng)為淺結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò),如一個(gè)輸入層、一個(gè)隱層和一個(gè)輸出層的神經(jīng)網(wǎng)絡(luò);與此相反,將非線(xiàn)性運(yùn)算組合水平較高的網(wǎng)絡(luò)稱(chēng)為深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò),如一個(gè)輸入層、三個(gè)隱層和一個(gè)輸出層的神經(jīng)網(wǎng)絡(luò)。
深度學(xué)習(xí)的基本思想:假設(shè)有系統(tǒng)S,它有n層(S1,…,Sn),輸入為I,輸出為O,可形象的表示為:I=》S1=》S2=》… =》Sn=》O。為了使輸出O盡可能的接近輸入I,可以通過(guò)調(diào)整系統(tǒng)中的參數(shù),這樣就可以得到輸入I的一系列層次特征S1,S2,…,Sn。對(duì)于堆疊的多個(gè)層,其中一層的輸出作為其下一層的輸入,以實(shí)現(xiàn)對(duì)輸入數(shù)據(jù)的分級(jí)表達(dá),這就是深度學(xué)習(xí)的基本思想。
二、 國(guó)內(nèi)外研究現(xiàn)狀
深度學(xué)習(xí)極大地促進(jìn)了機(jī)器學(xué)習(xí)的發(fā)展,受到世界各國(guó)相關(guān)領(lǐng)域研究人員和高科技公司的重視,語(yǔ)音、圖像和自然語(yǔ)言處理是深度學(xué)習(xí)算法應(yīng)用最廣泛的三個(gè)主要研究領(lǐng)域:
1、深度學(xué)習(xí)在語(yǔ)音識(shí)別領(lǐng)域研究現(xiàn)狀
長(zhǎng)期以來(lái),語(yǔ)音識(shí)別系統(tǒng)大多是采用混合高斯模型(GMM)來(lái)描述每個(gè)建模單元的統(tǒng)計(jì)概率模型。由于這種模型估計(jì)簡(jiǎn)單,方便使用大規(guī)模數(shù)據(jù)對(duì)其訓(xùn)練,該模型有較好的區(qū)分度訓(xùn)練算法保證了該模型能夠被很好的訓(xùn)練。在很長(zhǎng)時(shí)間內(nèi)占據(jù)了語(yǔ)音識(shí)別應(yīng)用領(lǐng)域主導(dǎo)性地位。但是這種混合高斯模型實(shí)質(zhì)上是一種淺層學(xué)習(xí)網(wǎng)絡(luò)建模,特征的狀態(tài)空間分布不能夠被充分描述。而且,使用混合高斯模型建模方式數(shù)據(jù)的特征維數(shù)通常只有幾十維,這使得特征之間的相關(guān)性不能被充分描述。最后混合高斯模型建模實(shí)質(zhì)上是一種似然概率建模方式,即使一些模式分類(lèi)之間的區(qū)分性能夠通過(guò)區(qū)分度訓(xùn)練模擬得到,但是效果有限。
從2009年開(kāi)始,微軟亞洲研究院的語(yǔ)音識(shí)別專(zhuān)家們和深度學(xué)習(xí)領(lǐng)軍人物Hinton取得合作。2011年微軟公司推出了基于深度神經(jīng)網(wǎng)絡(luò)的語(yǔ)音識(shí)別系統(tǒng),這一成果將語(yǔ)音識(shí)別領(lǐng)域已有的技術(shù)框架完全改變。采用深度神經(jīng)網(wǎng)絡(luò)后,樣本數(shù)據(jù)特征間相關(guān)性信息得以充分表示,將連續(xù)的特征信息結(jié)合構(gòu)成高維特征,通過(guò)高維特征樣本對(duì)深度神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練。由于深度神經(jīng)網(wǎng)絡(luò)采用了模擬人腦神經(jīng)架構(gòu),通過(guò)逐層地進(jìn)行數(shù)據(jù)特征提取,最終得到適合進(jìn)行模式分類(lèi)處理的理想特征。深度神經(jīng)網(wǎng)絡(luò)建模技術(shù),在實(shí)際線(xiàn)上應(yīng)用時(shí),能夠很好地和傳統(tǒng)語(yǔ)音識(shí)別技術(shù)結(jié)合,語(yǔ)音識(shí)別系統(tǒng)識(shí)別率大幅提升。
國(guó)際上,谷歌也使用深層神經(jīng)網(wǎng)絡(luò)對(duì)聲音進(jìn)行建模,是最早在深度神經(jīng)網(wǎng)絡(luò)的工業(yè)化應(yīng)用領(lǐng)域取得突破的企業(yè)之一。但谷歌的產(chǎn)品中使用的深度神經(jīng)網(wǎng)絡(luò)架構(gòu)只有4、5層,與之相比百度使用的深度神經(jīng)網(wǎng)絡(luò)架構(gòu)多達(dá)9層,正是這種結(jié)構(gòu)上的差別使深度神經(jīng)網(wǎng)絡(luò)在線(xiàn)學(xué)習(xí)的計(jì)算難題得以更好的解決。這使得百度的線(xiàn)上產(chǎn)品能夠采用更加復(fù)雜的神經(jīng)網(wǎng)絡(luò)模型。這種結(jié)構(gòu)差異的核心其實(shí)是百度更好地解決了深度神經(jīng)網(wǎng)絡(luò)在線(xiàn)計(jì)算的技術(shù)難題,因此百度線(xiàn)上產(chǎn)品可以采用更復(fù)雜的網(wǎng)絡(luò)模型。這對(duì)將來(lái)拓展大規(guī)模語(yǔ)料數(shù)據(jù)對(duì)深度神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練有更大的幫助。
2、深度學(xué)習(xí)在圖像識(shí)別領(lǐng)域研究現(xiàn)狀
對(duì)于圖像的處理是深度學(xué)習(xí)算法最早嘗試應(yīng)用的領(lǐng)域。早在1989年,加拿大多倫多大學(xué)教授Yann LeCun就和他的同事們一起提出了卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks)。卷積神經(jīng)網(wǎng)絡(luò)也稱(chēng)為CNN,它是一種包含卷積層的深度神經(jīng)網(wǎng)絡(luò)模型。通常一個(gè)卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)包含兩個(gè)可以通過(guò)訓(xùn)練產(chǎn)生的非線(xiàn)性卷積層,兩個(gè)固定的子采樣層和一個(gè)全連接層,隱藏層的數(shù)量一般至少在5個(gè)以上。CNN的架構(gòu)設(shè)計(jì)是受到生物學(xué)家Hubel和Wiesel的動(dòng)物視覺(jué)模型啟發(fā)而發(fā)明的,尤其是模擬動(dòng)物視覺(jué)皮層V1層和V2層中簡(jiǎn)單細(xì)胞(Simple Cell)和復(fù)雜細(xì)胞(Complex Cell)在視覺(jué)系統(tǒng)的功能。起初卷積神經(jīng)網(wǎng)絡(luò)在小規(guī)模的應(yīng)用問(wèn)題上取得了當(dāng)時(shí)世界最好成果。但在很長(zhǎng)一段時(shí)間里一直沒(méi)有取得重大突破。主要原因是由于卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用在大尺寸圖像上一直不能取得理想結(jié)果,比如對(duì)于像素?cái)?shù)很大的自然圖像內(nèi)容的理解,這使得它沒(méi)有引起計(jì)算機(jī)視覺(jué)研究領(lǐng)域足夠的重視。直到2012年10月,Hinton教授以及他的兩個(gè)學(xué)生采用更深的卷積神經(jīng)網(wǎng)絡(luò)模型在著名的ImageNet問(wèn)題上取得了世界最好成果,使得對(duì)于圖像識(shí)別的研究工作前進(jìn)了一大步。Hinton構(gòu)建的深度神經(jīng)網(wǎng)絡(luò)模型是使用原始的自然圖像訓(xùn)練的,沒(méi)有使用任何人工特征提取方法。
自卷積神經(jīng)網(wǎng)絡(luò)提出以來(lái),在圖像識(shí)別問(wèn)題上并沒(méi)有取得質(zhì)的提升和突破,直到2012年Hinton構(gòu)建的深度神經(jīng)網(wǎng)絡(luò)才取得驚人成果。這主要是因?yàn)閷?duì)算法的改進(jìn),在網(wǎng)絡(luò)的訓(xùn)練中引入了權(quán)重衰減的概念,有效的減小權(quán)重幅度,防止網(wǎng)絡(luò)過(guò)擬合。更關(guān)鍵的是計(jì)算機(jī)計(jì)算能力的提升,GPU加速技術(shù)的發(fā)展,這使得在訓(xùn)練過(guò)程中可以產(chǎn)生更多的訓(xùn)練數(shù)據(jù),使網(wǎng)絡(luò)能夠更好的擬合訓(xùn)練樣本。2012年國(guó)內(nèi)互聯(lián)網(wǎng)巨頭百度公司將相關(guān)最新技術(shù)成功應(yīng)用到人臉識(shí)別和自然圖像識(shí)別問(wèn)題,并推出了相應(yīng)的產(chǎn)品?,F(xiàn)在深度學(xué)習(xí)網(wǎng)絡(luò)模型已能夠理解和識(shí)別一般的自然圖像。深度學(xué)習(xí)模型不僅大幅提高了圖像識(shí)別的精度,同時(shí)也避免了需要消耗大量的時(shí)間進(jìn)行人工特征提取的工作,使得在線(xiàn)運(yùn)算效率大大提升。深度學(xué)習(xí)將有可能取代以往人工和機(jī)器學(xué)習(xí)相結(jié)合的方式成為主流圖像識(shí)別技術(shù)。
3、深度學(xué)習(xí)在自然語(yǔ)言處理領(lǐng)域研究現(xiàn)狀
自然語(yǔ)言處理(NLP)問(wèn)題是深度學(xué)習(xí)在除了語(yǔ)音和圖像處理之外的另一個(gè)重要應(yīng)用領(lǐng)域。數(shù)十年以來(lái),自然語(yǔ)言處理的主流方法是基于統(tǒng)計(jì)的模型,人工神經(jīng)網(wǎng)絡(luò)也是基于統(tǒng)計(jì)方法模型之一,但在自然語(yǔ)言處理領(lǐng)域卻一直沒(méi)有被重視。語(yǔ)言建模是最早采用神經(jīng)網(wǎng)絡(luò)進(jìn)行自然語(yǔ)言處理的問(wèn)題。美國(guó)的NEC研究院最早將深度學(xué)習(xí)引入到自然語(yǔ)言處理研究工作中,其研究人員從2008年起采用將詞匯映射到一維矢量空間方法和多層一維卷積結(jié)構(gòu)去解決詞性標(biāo)注、分詞、命名實(shí)體識(shí)別和語(yǔ)義角色標(biāo)注四個(gè)典型的自然語(yǔ)言處理問(wèn)題。他們構(gòu)建了同一個(gè)網(wǎng)絡(luò)模型用于解決四個(gè)不同問(wèn)題,都取得了相當(dāng)精確的結(jié)果??傮w而言,深度學(xué)習(xí)在自然語(yǔ)言處理問(wèn)題上取得的成果和在圖像語(yǔ)音識(shí)別方面還有相當(dāng)?shù)牟罹?,仍有待深入探索?/p>
由于深度學(xué)習(xí)能夠很好地解決一些復(fù)雜問(wèn)題,近年來(lái)許多研究人員對(duì)其進(jìn)行了深人研究,出現(xiàn)了許多有關(guān)深度學(xué)習(xí)研究的新進(jìn)展。下面分別從初始化方法、網(wǎng)絡(luò)層數(shù)和激活函數(shù)的選擇、模型結(jié)構(gòu)兩個(gè)個(gè)方面對(duì)近幾年深度學(xué)習(xí)研究的新進(jìn)展進(jìn)行介紹。
1、 初始化方法、網(wǎng)絡(luò)層數(shù)和激活函數(shù)的選擇
研究人員試圖搞清網(wǎng)絡(luò)初始值的設(shè)定與學(xué)習(xí)結(jié)果之間的關(guān)系。Erhan等人在軌跡可視化研究中指出即使從相近的值開(kāi)始訓(xùn)練深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò),不同的初始值也會(huì)學(xué)習(xí)到不同的局部極值,同時(shí)發(fā)現(xiàn)用無(wú)監(jiān)督預(yù)訓(xùn)練初始化模型的參數(shù)學(xué)習(xí)得到的極值與隨機(jī)初始化學(xué)習(xí)得到的極值差異比較大,用無(wú)監(jiān)督預(yù)訓(xùn)練初始化模型的參數(shù)學(xué)習(xí)得到的模型具有更好的泛化誤差。Bengio與Krueger等人指出用特定的方法設(shè)定訓(xùn)練樣例的初始分布和排列順序可以產(chǎn)生更好的訓(xùn)練結(jié)果,用特定的方法初始化參數(shù),使其與均勻采樣得到的參數(shù)不同,會(huì)對(duì)梯度下降算法訓(xùn)練的結(jié)果產(chǎn)生很大的影響。Glorot等人指出通過(guò)設(shè)定一組初始權(quán)值使得每一層深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)的Jacobian矩陣的奇異值接近1,在很大程度上減小了監(jiān)督深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)和有預(yù)訓(xùn)練過(guò)程設(shè)定初值的深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)之間的學(xué)習(xí)結(jié)果差異。另外,用于深度學(xué)習(xí)的學(xué)習(xí)算法通常包含許多超參數(shù),一些常用的超參數(shù),尤其適用于基于反向傳播的學(xué)習(xí)算法和基于梯度的優(yōu)化算法。
選擇不同的網(wǎng)絡(luò)隱層數(shù)和不同的非線(xiàn)性激活函數(shù)會(huì)對(duì)學(xué)習(xí)結(jié)果產(chǎn)生不同的影響。Glorot等人研究了隱層非線(xiàn)性映射關(guān)系的選擇和網(wǎng)絡(luò)的深度相互影響的問(wèn)題,討論了隨機(jī)初始化的標(biāo)準(zhǔn)梯度下降算法用于深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)得到不好的學(xué)習(xí)性能的原因。Glorot等人觀(guān)察不同非線(xiàn)性激活函數(shù)對(duì)學(xué)習(xí)結(jié)果的影響,得到邏輯斯蒂S型激活單元的均值會(huì)驅(qū)使頂層和隱層進(jìn)入飽和,因而邏輯斯蒂S型激活單元不適合用隨機(jī)初始化梯度算法學(xué)習(xí)深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò);并據(jù)此提出了標(biāo)準(zhǔn)梯度下降算法的一種新的初始化方案來(lái)得到更快的收斂速度。Bengio等人從理論上說(shuō)明深度學(xué)習(xí)結(jié)構(gòu)的表示能力隨著神經(jīng)網(wǎng)絡(luò)深度的增加以指數(shù)的形式增加,但是這種增加的額外表示能力會(huì)引起相應(yīng)局部極值數(shù)量的增加,使得在其中尋找最優(yōu)值變得困難。
2、 模型結(jié)構(gòu)
(1)、DBN的結(jié)構(gòu)及其變種:采用二值可見(jiàn)單元和隱單元RBM作為結(jié)構(gòu)單元的DBN,在MNIST等數(shù)據(jù)集上表現(xiàn)出很好的性能。近幾年,具有連續(xù)值單元的RBM,如mcRBM、mPoT模型和spike—and-slab RBM等已經(jīng)成功應(yīng)用。Spike—and—slab RBM中spike表示以0為中心的離散概率分布,slab表示在連續(xù)域上的稠密均勻分布,可以用吉布斯采樣對(duì)spike—and—slab RBM進(jìn)行有效推斷,得到優(yōu)越的學(xué)習(xí)性能。
(2)、和--積網(wǎng)絡(luò);深度學(xué)習(xí)最主要的困難是配分函數(shù)的學(xué)習(xí),如何選擇深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)使得配分函數(shù)更容易計(jì)算? Poon等人提出一種新的深度模型結(jié)構(gòu)----和--積網(wǎng)絡(luò)(sum—product network,SPN),引入多層隱單元表示配分函數(shù),使得配分函數(shù)更容易計(jì)算。SPN是有根節(jié)點(diǎn)的有向無(wú)環(huán)圖,圖中的葉節(jié)點(diǎn)為變量,中間節(jié)點(diǎn)執(zhí)行和運(yùn)算與積運(yùn)算,連接節(jié)點(diǎn)的邊帶有權(quán)值,它們?cè)贑altech-101和Olivetti兩個(gè)數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)證明了SPN的性能優(yōu)于DBN和最近鄰方法。
?。?)、基于rectified單元的學(xué)習(xí):Glorot與Mesnil等人用降噪自編碼模型來(lái)處理高維輸入數(shù)據(jù)。與通常的S型和正切非線(xiàn)性隱單元相比,該自編碼模型使用rectified單元,使隱單元產(chǎn)生更加稀疏的表示。對(duì)于高維稀疏數(shù)據(jù),Dauphin等人采用抽樣重構(gòu)算法,訓(xùn)練過(guò)程只需要計(jì)算隨機(jī)選擇的很小的樣本子集的重構(gòu)和重構(gòu)誤差,在很大程度上提高了學(xué)習(xí)速度,實(shí)驗(yàn)結(jié)果顯示提速了20倍。Glorot等人提出在深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)中,在圖像分類(lèi)和情感分類(lèi)問(wèn)題中用rectified非線(xiàn)性神經(jīng)元代替雙曲正切或S型神經(jīng)元,指出rectified神經(jīng)元網(wǎng)絡(luò)在零點(diǎn)產(chǎn)生與雙曲正切神經(jīng)元網(wǎng)絡(luò)相當(dāng)或者有更好的性能,能夠產(chǎn)生有真正零點(diǎn)的稀疏表示,非常適合本質(zhì)稀疏數(shù)據(jù)的建模,在理解訓(xùn)練純粹深度監(jiān)督神經(jīng)網(wǎng)絡(luò)的困難,搞清使用或不使用無(wú)監(jiān)督預(yù)訓(xùn)練學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)造成的性能差異方面,可以看做新的里程碑;Glorot等人還提出用增加L1正則化項(xiàng)來(lái)促進(jìn)模型稀疏性,使用無(wú)窮大的激活函數(shù)防止算法運(yùn)行過(guò)程中可能引起的數(shù)值問(wèn)題。在此之前,Nair等人提出在RBM環(huán)境中rectifed神經(jīng)元產(chǎn)生的效果比邏輯斯蒂S型激活單元好,他們用無(wú)限數(shù)量的權(quán)值相同但是負(fù)偏差變大的一組單元替換二值單元,生成用于RBM的更好的一類(lèi)隱單元,將RBM泛化,可以用噪聲r(shí)ectified線(xiàn)性單元(rectified linear units)有效近似這些S型單元。用這些單元組成的RBM在NORB數(shù)據(jù)集上進(jìn)行目標(biāo)識(shí)別以及在數(shù)據(jù)集上進(jìn)行已標(biāo)記人臉實(shí)際驗(yàn)證,得到比二值單元更好的性能,并且可以更好地解決大規(guī)模像素強(qiáng)度值變化很大的問(wèn)題。
?。?)、卷積神經(jīng)網(wǎng)絡(luò):研究了用生成式子抽樣單元組成的卷積神經(jīng)網(wǎng)絡(luò),在MNIST數(shù)字識(shí)別任務(wù)和Cahech一101目標(biāo)分類(lèi)基準(zhǔn)任務(wù)上進(jìn)行實(shí)驗(yàn),顯示出非常好的學(xué)習(xí)性能。Huang等人提出一種新的卷積學(xué)習(xí)模型----局部卷積RBM,利用對(duì)象類(lèi)中的總體結(jié)構(gòu)學(xué)習(xí)特征,不假定圖像具有平穩(wěn)特征,在實(shí)際人臉數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),得到性能很好的實(shí)驗(yàn)結(jié)果。
三、 深度學(xué)習(xí)模型結(jié)構(gòu)
深度神經(jīng)網(wǎng)絡(luò)是由多個(gè)單層非線(xiàn)性網(wǎng)絡(luò)疊加而成的,常見(jiàn)的單層網(wǎng)絡(luò)按照編碼解碼情況分為3類(lèi):只包含編碼器部分、只包含解碼器部分、既有編碼器部分也有解碼器部分。編碼器提供從輸入到隱含特征空間的自底向上的映射,解碼器以重建結(jié)果盡可能接近原始輸入為目標(biāo)將隱含特征映射到輸入空間。
人的視覺(jué)系統(tǒng)對(duì)信息的處理是分級(jí)的。從低級(jí)的提取邊緣特征到形狀(或者目標(biāo)等),再到更高層的目標(biāo)、目標(biāo)的行為等,即底層特征組合成了高層特征,由低到高的特征表示越來(lái)越抽象。深度學(xué)習(xí)借鑒的這個(gè)過(guò)程就是建模的過(guò)程。
深度神經(jīng)網(wǎng)絡(luò)可以分為3類(lèi),前饋深度網(wǎng)絡(luò)(feed-forwarddeep networks, FFDN),由多個(gè)編碼器層疊加而成,如多層感知機(jī)(multi-layer perceptrons, MLP)、卷積神經(jīng)網(wǎng)絡(luò)(convolutionalneural networks, CNN)等。反饋深度網(wǎng)絡(luò)(feed-back deep networks, FBDN),由多個(gè)解碼器層疊加而成,如反卷積網(wǎng)絡(luò)(deconvolutionalnetworks, DN)、層次稀疏編碼網(wǎng)絡(luò)(hierarchical sparse coding, HSC)等。雙向深度網(wǎng)絡(luò)(bi-directionaldeep networks, BDDN),通過(guò)疊加多個(gè)編碼器層和解碼器層構(gòu)成(每層可能是單獨(dú)的編碼過(guò)程或解碼過(guò)程,也可能既包含編碼過(guò)程也包含解碼過(guò)程),如深度玻爾茲曼機(jī)(deep Boltzmann machines, DBM)、深度信念網(wǎng)絡(luò)(deep beliefnetworks, DBN)、棧式自編碼器(stacked auto-encoders, SAE)等。
1、 前潰深度網(wǎng)絡(luò)
前饋神經(jīng)網(wǎng)絡(luò)是最初的人工神經(jīng)網(wǎng)絡(luò)模型之一。在這種網(wǎng)絡(luò)中,信息只沿一個(gè)方向流動(dòng),從輸入單元通過(guò)一個(gè)或多個(gè)隱層到達(dá)輸出單元,在網(wǎng)絡(luò)中沒(méi)有封閉環(huán)路。典型的前饋神經(jīng)網(wǎng)絡(luò)有多層感知機(jī)和卷積神經(jīng)網(wǎng)絡(luò)等。F. Rosenblatt提出的感知機(jī)是最簡(jiǎn)單的單層前向人工神經(jīng)網(wǎng)絡(luò),但隨后M. Minsky等證明單層感知機(jī)無(wú)法解決線(xiàn)性不可分問(wèn)題(如異或操作),這一結(jié)論將人工神經(jīng)網(wǎng)絡(luò)研究領(lǐng)域引入到一個(gè)低潮期,直到研究人員認(rèn)識(shí)到多層感知機(jī)可解決線(xiàn)性不可分問(wèn)題,以及反向傳播算法與神經(jīng)網(wǎng)絡(luò)結(jié)合的研究,使得神經(jīng)網(wǎng)絡(luò)的研究重新開(kāi)始成為熱點(diǎn)。但是由于傳統(tǒng)的反向傳播算法,具有收斂速度慢、需要大量帶標(biāo)簽的訓(xùn)練數(shù)據(jù)、容易陷入局部最優(yōu)等缺點(diǎn),多層感知機(jī)的效果并不是十分理想。1984年日本學(xué)者K. Fukushima等基于感受野概念,提出的神經(jīng)認(rèn)知機(jī)可看作卷積神經(jīng)網(wǎng)絡(luò)的一種特例。Y. Lecun等提出的卷積神經(jīng)網(wǎng)絡(luò)是神經(jīng)認(rèn)知機(jī)的推廣形式。卷積神經(jīng)網(wǎng)絡(luò)是由多個(gè)單層卷積神經(jīng)網(wǎng)絡(luò)組成的可訓(xùn)練的多層網(wǎng)絡(luò)結(jié)構(gòu)。每個(gè)單層卷積神經(jīng)網(wǎng)絡(luò)包括卷積、非線(xiàn)性變換和下采樣3個(gè)階段,其中下采樣階段不是每層都必需的。每層的輸入和輸出為一組向量構(gòu)成的特征圖(feature map)(第一層的原始輸入信號(hào)可以看作一個(gè)具有高稀疏度的高維特征圖)。例如,輸入部分是一張彩色圖像,每個(gè)特征圖對(duì)應(yīng)的則是一個(gè)包含輸入圖像彩色通道的二維數(shù)組(對(duì)于音頻輸入,特征圖對(duì)應(yīng)的是一維向量;對(duì)于視頻或立體影像,對(duì)應(yīng)的是三維數(shù)組);對(duì)應(yīng)的輸出部分,每個(gè)特征圖對(duì)應(yīng)的是表示從輸入圖片所有位置上提取的特定特征。
?。?)、單層卷積神經(jīng)網(wǎng)絡(luò):卷積階段,通過(guò)提取信號(hào)的不同特征實(shí)現(xiàn)輸入信號(hào)進(jìn)行特定模式的觀(guān)測(cè)。其觀(guān)測(cè)模式也稱(chēng)為卷積核,其定義源于由D. H. Hubel等基于對(duì)貓視覺(jué)皮層細(xì)胞研究提出的局部感受野概念。每個(gè)卷積核檢測(cè)輸入特征圖上所有位置上的特定特征,實(shí)現(xiàn)同一個(gè)輸入特征圖上的權(quán)值共享。為了提取輸入特征圖上不同的特征,使用不同的卷積核進(jìn)行卷積操作。卷積階段的輸入是由n1個(gè)n2*n3大小的二維特征圖構(gòu)成的三維數(shù)組。每個(gè)特征圖記為xi,該階段的輸出y,也是個(gè)三維數(shù)組,由m1個(gè)m2*m3大小的特征圖構(gòu)成。在卷積階段,連接輸入特征圖xi和輸出特征圖yj的權(quán)值記為wij,即可訓(xùn)練的卷積核(局部感受野),卷積核的大小為k2*k3,輸出特征圖為yj。
非線(xiàn)性階段,對(duì)卷積階段得到的特征按照一定的原則進(jìn)行篩選,篩選原則通常采用非線(xiàn)性變換的方式,以避免線(xiàn)性模型表達(dá)能力不夠的問(wèn)題。非線(xiàn)性階段將卷積階段提取的特征作為輸入,進(jìn)行非線(xiàn)性映射R=h(y)。傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)中非線(xiàn)性操作采用sigmoid、tanh 或softsign等飽和非線(xiàn)性(saturating nonlinearities)函數(shù),近幾年的卷積神經(jīng)網(wǎng)絡(luò)中多采用不飽和非線(xiàn)性(non-saturating nonlinearity)函數(shù)ReLU(rectifiedlinear units)。在訓(xùn)練梯度下降時(shí),ReLU比傳統(tǒng)的飽和非線(xiàn)性函數(shù)有更快的收斂速度,因此在訓(xùn)練整個(gè)網(wǎng)絡(luò)時(shí),訓(xùn)練速度也比傳統(tǒng)的方法快很多。
下采樣階段,對(duì)每個(gè)特征圖進(jìn)行獨(dú)立操作,通常采用平均池化(average pooling)或者最大池化(max pooling)的操作。平均池化依據(jù)定義的鄰域窗口計(jì)算特定范圍內(nèi)像素的均值PA,鄰域窗口平移步長(zhǎng)大于1(小于等于池化窗口的大小);最大池化則將均值PA替換為最值PM輸出到下個(gè)階段。池化操作后,輸出特征圖的分辨率降低,但能較好地保持高分辨率特征圖描述的特征。一些卷積神經(jīng)網(wǎng)絡(luò)完全去掉下采樣階段,通過(guò)在卷積階段設(shè)置卷積核窗口滑動(dòng)步長(zhǎng)大于1達(dá)到降低分辨率的目的。
?。?)、卷積神經(jīng)網(wǎng)絡(luò):將單層的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行多次堆疊,前一層的輸出作為后一層的輸入,便構(gòu)成卷積神經(jīng)網(wǎng)絡(luò)。其中每2個(gè)節(jié)點(diǎn)間的連線(xiàn),代表輸入節(jié)點(diǎn)經(jīng)過(guò)卷積、非線(xiàn)性變換、下采樣3個(gè)階段變?yōu)檩敵龉?jié)點(diǎn),一般最后一層的輸出特征圖后接一個(gè)全連接層和分類(lèi)器。為了減少數(shù)據(jù)的過(guò)擬合,最近的一些卷積神經(jīng)網(wǎng)絡(luò),在全連接層引入“Dropout”或“DropConnect”的方法,即在訓(xùn)練過(guò)程中以一定概率P將隱含層節(jié)點(diǎn)的輸出值(對(duì)于“DropConnect”為輸入權(quán)值)清0,而用反向傳播算法更新權(quán)值時(shí),不再更新與該節(jié)點(diǎn)相連的權(quán)值。但是這2種方法都會(huì)降低訓(xùn)練速度。在訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)時(shí),最常用的方法是采用反向傳播法則以及有監(jiān)督的訓(xùn)練方式。網(wǎng)絡(luò)中信號(hào)是前向傳播的,即從輸入特征向輸出特征的方向傳播,第1層的輸入X,經(jīng)過(guò)多個(gè)卷積神經(jīng)網(wǎng)絡(luò)層,變成最后一層輸出的特征圖O。將輸出特征圖O與期望的標(biāo)簽T進(jìn)行比較,生成誤差項(xiàng)E。通過(guò)遍歷網(wǎng)絡(luò)的反向路徑,將誤差逐層傳遞到每個(gè)節(jié)點(diǎn),根據(jù)權(quán)值更新公式,更新相應(yīng)的卷積核權(quán)值wij。在訓(xùn)練過(guò)程中,網(wǎng)絡(luò)中權(quán)值的初值通常隨機(jī)初始化(也可通過(guò)無(wú)監(jiān)督的方式進(jìn)行預(yù)訓(xùn)練),網(wǎng)絡(luò)誤差隨迭代次數(shù)的增加而減少,并且這一過(guò)程收斂于一個(gè)穩(wěn)定的權(quán)值集合,額外的訓(xùn)練次數(shù)呈現(xiàn)出較小的影響。
?。?)、卷積神經(jīng)網(wǎng)絡(luò)的特點(diǎn):卷積神經(jīng)網(wǎng)絡(luò)的特點(diǎn)在于,采用原始信號(hào)(一般為圖像)直接作為網(wǎng)絡(luò)的輸入,避免了傳統(tǒng)識(shí)別算法中復(fù)雜的特征提取和圖像重建過(guò)程。局部感受野方法獲取的觀(guān)測(cè)特征與平移、縮放和旋轉(zhuǎn)無(wú)關(guān)。卷積階段利用權(quán)值共享結(jié)構(gòu)減少了權(quán)值的數(shù)量進(jìn)而降低了網(wǎng)絡(luò)模型的復(fù)雜度,這一點(diǎn)在輸入特征圖是高分辨率圖像時(shí)表現(xiàn)得更為明顯。同時(shí),下采樣階段利用圖像局部相關(guān)性的原理對(duì)特征圖進(jìn)行子抽樣,在保留有用結(jié)構(gòu)信息的同時(shí)有效地減少數(shù)據(jù)處理量。
CNN(convolutional neuralnetworks)是一種有監(jiān)督深度的模型架構(gòu),尤其適合二維數(shù)據(jù)結(jié)構(gòu)。目前研究與應(yīng)用都較廣泛,在行人檢測(cè)、人臉識(shí)別、信號(hào)處理等領(lǐng)域均有新的成果與進(jìn)展。它是帶有卷積結(jié)構(gòu)的深度神經(jīng)網(wǎng)絡(luò),也是首個(gè)真正意義上成功訓(xùn)練多層網(wǎng)絡(luò)的識(shí)別算法。CNN與傳統(tǒng)ANN 算法的主要區(qū)別在于權(quán)值共享以及非全連接。權(quán)值共享能夠避免算法過(guò)擬合,通過(guò)拓?fù)浣Y(jié)構(gòu)建立層與層間非全連接空間關(guān)系來(lái)降低訓(xùn)練參數(shù)的數(shù)目,同時(shí)也是CNN的基本思想。CNN的實(shí)質(zhì)是學(xué)習(xí)多個(gè)能夠提取輸入數(shù)據(jù)特征的濾波器,通過(guò)這些濾波器與輸入數(shù)據(jù)進(jìn)行逐層卷積及池化,逐級(jí)提取隱藏在數(shù)據(jù)中拓?fù)浣Y(jié)構(gòu)特征。隨網(wǎng)絡(luò)結(jié)構(gòu)層層深入,提取的特征也逐漸變得抽象,最終獲得輸入數(shù)據(jù)的平移、旋轉(zhuǎn)及縮放不變性的特征表示。較傳統(tǒng)神經(jīng)網(wǎng)絡(luò)來(lái)說(shuō),CNN將特征提取與分類(lèi)過(guò)程同時(shí)進(jìn)行,避免了兩者在算法匹配上的難點(diǎn)。
CNN主要由卷積層與下采樣層交替重復(fù)出現(xiàn)構(gòu)建網(wǎng)絡(luò)結(jié)構(gòu),卷積層用來(lái)提取輸入神經(jīng)元數(shù)據(jù)的局部特征,下采樣層用來(lái)對(duì)其上一層提取的數(shù)據(jù)進(jìn)行縮放映射以減少訓(xùn)練數(shù)據(jù)量,也使提取的特征具有縮放不變性。一般來(lái)說(shuō),可以選擇不同尺度的卷積核來(lái)提取多尺度特征,使提取的特征具有旋轉(zhuǎn)、平移不變性。輸入圖像與可學(xué)習(xí)的核進(jìn)行卷積,卷積后的數(shù)據(jù)經(jīng)過(guò)激活函數(shù)得到一個(gè)特征圖。卷積層的特征圖可以由多個(gè)輸入圖組合獲得,但對(duì)于同一幅輸入圖其卷積核參數(shù)是一致的,這也是權(quán)值共享的意義所在。卷積核的初始值并非隨機(jī)設(shè)置,而是通過(guò)訓(xùn)練或者按照一定標(biāo)準(zhǔn)預(yù)先給定,如仿照生物視覺(jué)特征用Gabor 濾波器進(jìn)行預(yù)處理。下采樣層通過(guò)降低網(wǎng)絡(luò)空間分辨率來(lái)增強(qiáng)縮放不變性。
CNN的輸出層一般采用線(xiàn)性全連接,目前最常用的就是Softmax 分類(lèi)方法。CNN的參數(shù)訓(xùn)練過(guò)程與傳統(tǒng)的人工神經(jīng)網(wǎng)絡(luò)類(lèi)似,采用反向傳播算法,包括前向傳播與反向傳播2個(gè)重要階段。
CNN實(shí)際應(yīng)用中會(huì)遇到諸多問(wèn)題,如網(wǎng)絡(luò)權(quán)值的預(yù)學(xué)習(xí)問(wèn)題,收斂條件以及非全連接規(guī)則等,這些均需要實(shí)際應(yīng)用中進(jìn)一步解決與優(yōu)化。
卷積神經(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的神經(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),LeCun等人在該思想的基礎(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)出非凡的性能。LeCun的卷積神經(jīng)網(wǎng)絡(luò)由卷積層和子抽樣層兩種類(lèi)型的神經(jīng)網(wǎng)絡(luò)層組成。每一層有一個(gè)拓?fù)鋱D結(jié)構(gòu),即在接收域內(nèi),每個(gè)神經(jīng)元與輸入圖像中某個(gè)位置對(duì)應(yīng)的固定二維位置編碼信息關(guān)聯(lián)。在每層的各個(gè)位置分布著許多不同的神經(jīng)元,每個(gè)神經(jīng)元有一組輸入權(quán)值,這些權(quán)值與前一層神經(jīng)網(wǎng)絡(luò)矩形塊中的神經(jīng)元關(guān)聯(lián);同一組權(quán)值和不同輸入矩形塊與不同位置的神經(jīng)元關(guān)聯(lián)。卷積神經(jīng)網(wǎng)絡(luò)是多層的感知器神經(jīng)網(wǎng)絡(luò),每層由多個(gè)二維平面塊組成,每個(gè)平面塊由多個(gè)獨(dú)立神經(jīng)元組成。為了使網(wǎng)絡(luò)對(duì)平移、旋轉(zhuǎn)、比例縮放以及其他形式的變換具有不變性,對(duì)網(wǎng)絡(luò)的結(jié)構(gòu)進(jìn)行一些約束限制:(1)、特征提?。好恳粋€(gè)神經(jīng)元從上一層的局部接收域得到輸入,迫使其提取局部特征。(2)、特征映射:網(wǎng)絡(luò)的每一個(gè)計(jì)算層由多個(gè)特征映射組成,每個(gè)特征映射都以二維平面的形式存在,平面中的神經(jīng)元在約束下共享相同的權(quán)值集。(3)、子抽樣:該計(jì)算層跟隨在卷積層后,實(shí)現(xiàn)局部平均和子抽樣,使特征映射的輸出對(duì)平移等變換的敏感度下降。卷積神經(jīng)網(wǎng)絡(luò)通過(guò)使用接收域的局部連接,限制了網(wǎng)絡(luò)結(jié)構(gòu)。卷積神經(jīng)網(wǎng)絡(luò)的另一個(gè)特點(diǎn)是權(quán)值共享,但是由于同一隱層的神經(jīng)元共享同一權(quán)值集,大大減少了自由參數(shù)的數(shù)量。卷積神經(jīng)網(wǎng)絡(luò)本質(zhì)上實(shí)現(xiàn)一種輸入到輸出的映射關(guān)系,能夠?qū)W習(xí)大量輸入與輸出之間的映射關(guān)系,不需要任何輸入和輸出之間的精確數(shù)學(xué)表達(dá)式,只要用已知的模式對(duì)卷積神經(jīng)網(wǎng)絡(luò)加以訓(xùn)練,就可以使網(wǎng)絡(luò)具有輸入輸出之間的映射能力。卷積神經(jīng)網(wǎng)絡(luò)執(zhí)行的是有監(jiān)督訓(xùn)練,在開(kāi)始訓(xùn)練前,用一些不同的小隨機(jī)數(shù)對(duì)網(wǎng)絡(luò)的所有權(quán)值進(jìn)行初始化。
卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練分為兩個(gè)階段:(1)、向前傳播階段:從樣本集中抽取一個(gè)樣本(X,Yp),將x輸入給網(wǎng)絡(luò),信息從輸入層經(jīng)過(guò)逐級(jí)變換傳送到輸出層,計(jì)算相應(yīng)的實(shí)際輸出Op;(2)、向后傳播階段:也稱(chēng)為誤差傳播階段。計(jì)算實(shí)際輸出Op與理想輸出Yp的差異。并按最小化誤差的方法調(diào)整權(quán)值矩陣。
卷積神經(jīng)網(wǎng)絡(luò)的特征檢測(cè)層通過(guò)訓(xùn)練數(shù)據(jù)來(lái)進(jìn)行學(xué)習(xí),避免了顯式的特征提取,而是隱式地從訓(xùn)練數(shù)據(jù)中學(xué)習(xí)特征,而且同一特征映射面上的神經(jīng)元權(quán)值相同,網(wǎng)絡(luò)可以并行學(xué)習(xí),這也是卷積神經(jīng)網(wǎng)絡(luò)相對(duì)于其他神經(jīng)網(wǎng)絡(luò)的一個(gè)優(yōu)勢(shì)。權(quán)值共享降低了網(wǎng)絡(luò)的復(fù)雜性,特別是多維向量的圖像可以直接輸入網(wǎng)絡(luò)這一特點(diǎn)避免了特征提取和分類(lèi)過(guò)程中數(shù)據(jù)重建的復(fù)雜度。
卷積神經(jīng)網(wǎng)絡(luò)的成功依賴(lài)于兩個(gè)假設(shè):(1)、每個(gè)神經(jīng)元有非常少的輸入,這有助于將梯度在盡可能多的層中進(jìn)行傳播;(2)、分層局部連接結(jié)構(gòu)是非常強(qiáng)的先驗(yàn)結(jié)構(gòu),特別適合計(jì)算機(jī)視覺(jué)任務(wù),如果整個(gè)網(wǎng)絡(luò)的參數(shù)處于合適的區(qū)域,基于梯度的優(yōu)化算法能得到很好的學(xué)習(xí)效果。卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)更接近實(shí)際的生物神經(jīng)網(wǎng)絡(luò),在語(yǔ)音識(shí)別和圖像處理方面具有獨(dú)特的優(yōu)越性,尤其是在視覺(jué)圖像處理領(lǐng)域進(jìn)行的實(shí)驗(yàn),得到了很好的結(jié)果。
2、 反饋深度網(wǎng)絡(luò)
與前饋網(wǎng)絡(luò)不同,反饋網(wǎng)絡(luò)并不是對(duì)輸入信號(hào)進(jìn)行編碼,而是通過(guò)解反卷積或?qū)W習(xí)數(shù)據(jù)集的基,對(duì)輸入信號(hào)進(jìn)行反解。前饋網(wǎng)絡(luò)是對(duì)輸入信號(hào)進(jìn)行編碼的過(guò)程,而反饋網(wǎng)絡(luò)則是對(duì)輸入信號(hào)解碼的過(guò)程。典型的反饋深度網(wǎng)絡(luò)有反卷積網(wǎng)絡(luò)、層次稀疏編碼網(wǎng)絡(luò)等。以反卷積網(wǎng)絡(luò)為例,M. D. Zeiler等提出的反卷積網(wǎng)絡(luò)模型和Y. LeCun等提出的卷積神經(jīng)網(wǎng)絡(luò)思想類(lèi)似,但在實(shí)際的結(jié)構(gòu)構(gòu)件和實(shí)現(xiàn)方法上有所不同。卷積神經(jīng)網(wǎng)絡(luò)是一種自底向上的方法,該方法的每層輸入信號(hào)經(jīng)過(guò)卷積、非線(xiàn)性變換和下采樣3個(gè)階段處理,進(jìn)而得到多層信息。相比之下,反卷積網(wǎng)絡(luò)模型的每層信息是自頂向下的,組合通過(guò)濾波器組學(xué)習(xí)得到的卷積特征來(lái)重構(gòu)輸入信號(hào)。層次稀疏編碼網(wǎng)絡(luò)和反卷積網(wǎng)絡(luò)非常相似,只是在反卷積網(wǎng)絡(luò)中對(duì)圖像的分解采用矩陣卷積的形式,而在稀疏編碼中采用矩陣乘積的方式。
?。?)、單層反卷積網(wǎng)絡(luò):反卷積網(wǎng)絡(luò)是通過(guò)先驗(yàn)學(xué)習(xí),對(duì)信號(hào)進(jìn)行稀疏分解和重構(gòu)的正則化方法。
?。?)、反卷積網(wǎng)絡(luò):?jiǎn)螌臃淳矸e網(wǎng)絡(luò)進(jìn)行多層疊加,可得到反卷積網(wǎng)絡(luò)。多層模型中,在學(xué)習(xí)濾波器組的同時(shí)進(jìn)行特征圖的推導(dǎo),第L層的特征圖和濾波器是由第L-1層的特征圖通過(guò)反卷積計(jì)算分解獲得。反卷積網(wǎng)絡(luò)訓(xùn)練時(shí),使用一組不同的信號(hào)y,求解C(y),進(jìn)行濾波器組f和特征圖z的迭代交替優(yōu)化。訓(xùn)練從第1層開(kāi)始,采用貪心算法,逐層向上進(jìn)行優(yōu)化,各層間的優(yōu)化是獨(dú)立的。
?。?)、反卷積網(wǎng)絡(luò)的特點(diǎn):反卷積網(wǎng)絡(luò)的特點(diǎn)在于,通過(guò)求解最優(yōu)化輸入信號(hào)分解問(wèn)題計(jì)算特征,而不是利用編碼器進(jìn)行近似,這樣能使隱層的特征更加精準(zhǔn),更有利于信號(hào)的分類(lèi)或重建。
自動(dòng)編碼器:對(duì)于一個(gè)給定的神經(jīng)網(wǎng)絡(luò),假設(shè)其輸出等于輸入(理想狀態(tài)下),然后通過(guò)訓(xùn)練調(diào)整其參數(shù)得到每一層的權(quán)重,這樣就可以得到輸入的幾種不同的表示,這些表示就是特征。當(dāng)在原有特征的基礎(chǔ)上加入這些通過(guò)自動(dòng)學(xué)習(xí)得到的特征時(shí),可以大大提高精確度,這就是自動(dòng)編碼(AutoEncoder)。如果再繼續(xù)加上一些約束條件的話(huà),就可以得到新的深度學(xué)習(xí)方法。比如在自動(dòng)編碼的基礎(chǔ)上加上稀疏性限制,就可得到稀疏自動(dòng)編碼器(Sparse AutoEncoder)。
稀疏自動(dòng)編碼器:與CNN不同,深度自動(dòng)編碼器是一種無(wú)監(jiān)督的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)架構(gòu)。此類(lèi)架構(gòu)的基本結(jié)構(gòu)單元為自動(dòng)編碼器,它通過(guò)對(duì)輸入特征X按照一定規(guī)則及訓(xùn)練算法進(jìn)行編碼,將其原始特征利用低維向量重新表示。自動(dòng)編碼器通過(guò)構(gòu)建類(lèi)似傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的層次結(jié)構(gòu),并假設(shè)輸出Y與輸入X相等,反復(fù)訓(xùn)練調(diào)整參數(shù)得到網(wǎng)絡(luò)參數(shù)值。上述自編碼器若僅要求X≈Y,且對(duì)隱藏神經(jīng)元進(jìn)行稀疏約束,從而使大部分節(jié)點(diǎn)值為0或接近0的無(wú)效值,便得到稀疏自動(dòng)編碼算法。一般情況下,隱含層的神經(jīng)元數(shù)應(yīng)少于輸入X的個(gè)數(shù),因?yàn)榇藭r(shí)才能保證這個(gè)網(wǎng)絡(luò)結(jié)構(gòu)的價(jià)值。正如主成分分析(principal component analysis,PCA)算法,通過(guò)降低空間維數(shù)去除冗余,利用更少的特征來(lái)盡可能完整的描述數(shù)據(jù)信息。實(shí)際應(yīng)用中將學(xué)習(xí)得到的多種隱層特征(隱層數(shù)通常多個(gè))與原始特征共同使用,可以明顯提高算法的識(shí)別精度。
自動(dòng)編碼器參數(shù)訓(xùn)練方法有很多,幾乎可以采用任何連續(xù)化訓(xùn)練方法來(lái)訓(xùn)練參數(shù)。但由于其模型結(jié)構(gòu)不偏向生成型,無(wú)法通過(guò)聯(lián)合概率等定量形式確定模型合理性。稀疏性約束在深度學(xué)習(xí)算法優(yōu)化中的地位越來(lái)越重要,主要與深度學(xué)習(xí)特點(diǎn)有關(guān)。大量的訓(xùn)練參數(shù)使訓(xùn)練過(guò)程復(fù)雜,且訓(xùn)練輸出的維數(shù)遠(yuǎn)比輸入的維數(shù)高,會(huì)產(chǎn)生許多冗余數(shù)據(jù)信息。加入稀疏性限制,會(huì)使學(xué)習(xí)到的特征更加有價(jià)值,同時(shí)這也符合人腦神經(jīng)元響應(yīng)稀疏性特點(diǎn)。
3、 雙向深度網(wǎng)絡(luò)
雙向網(wǎng)絡(luò)由多個(gè)編碼器層和解碼器層疊加形成,每層可能是單獨(dú)的編碼過(guò)程或解碼過(guò)程,也可能同時(shí)包含編碼過(guò)程和解碼過(guò)程。雙向網(wǎng)絡(luò)的結(jié)構(gòu)結(jié)合了編碼器和解碼器2類(lèi)單層網(wǎng)絡(luò)結(jié)構(gòu),雙向網(wǎng)絡(luò)的學(xué)習(xí)則結(jié)合了前饋網(wǎng)絡(luò)和反饋網(wǎng)絡(luò)的訓(xùn)練方法,通常包括單層網(wǎng)絡(luò)的預(yù)訓(xùn)練和逐層反向迭代誤差2個(gè)部分,單層網(wǎng)絡(luò)的預(yù)訓(xùn)練多采用貪心算法:每層使用輸入信號(hào)IL與權(quán)值w計(jì)算生成信號(hào)IL+1傳遞到下一層,信號(hào)IL+1再與相同的權(quán)值w計(jì)算生成重構(gòu)信號(hào)I‘L 映射回輸入層,通過(guò)不斷縮小IL與I’L間的誤差,訓(xùn)練每層網(wǎng)絡(luò)。網(wǎng)絡(luò)結(jié)構(gòu)中各層網(wǎng)絡(luò)結(jié)構(gòu)都經(jīng)過(guò)預(yù)訓(xùn)練之后,再通過(guò)反向迭代誤差對(duì)整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行權(quán)值微調(diào)。其中單層網(wǎng)絡(luò)的預(yù)訓(xùn)練是對(duì)輸入信號(hào)編碼和解碼的重建過(guò)程,這與反饋網(wǎng)絡(luò)訓(xùn)練方法類(lèi)似;而基于反向迭代誤差的權(quán)值微調(diào)與前饋網(wǎng)絡(luò)訓(xùn)練方法類(lèi)似。典型的雙向深度網(wǎng)絡(luò)有深度玻爾茲曼機(jī)、深度信念網(wǎng)絡(luò)、棧式自編碼器等。以深度玻爾茲曼機(jī)為例,深度玻爾茲曼機(jī)由R. Salakhutdinov等提出,它由多層受限玻爾茲曼機(jī)(restricted Boltzmann machine, RBM )疊加構(gòu)成。
(1)、受限玻爾茲曼機(jī):玻爾茲曼機(jī)(Boltzmann machine, BM)是一種隨機(jī)的遞歸神經(jīng)網(wǎng)絡(luò),由G. E.Hinton等提出,是能通過(guò)學(xué)習(xí)數(shù)據(jù)固有內(nèi)在表示、解決復(fù)雜學(xué)習(xí)問(wèn)題的最早的人工神經(jīng)網(wǎng)絡(luò)之一。玻爾茲曼機(jī)由二值神經(jīng)元構(gòu)成,每個(gè)神經(jīng)元只取0或1兩種狀態(tài),狀態(tài)1代表該神經(jīng)元處于激活狀態(tài),0表示該神經(jīng)元處于抑制狀態(tài)。然而,即使使用模擬退火算法,這個(gè)網(wǎng)絡(luò)的學(xué)習(xí)過(guò)程也十分慢。Hinton等提出的受限玻爾茲曼機(jī)去掉了玻爾茲曼機(jī)同層之間的連接,從而大大提高了學(xué)習(xí)效率。受限玻爾茲曼機(jī)分為可見(jiàn)層v以及隱層h,可見(jiàn)層和隱層的節(jié)點(diǎn)通過(guò)權(quán)值w相連接,2層節(jié)點(diǎn)之間是全連接,同層節(jié)點(diǎn)間互不相連。
受限玻爾茲曼機(jī)一種典型的訓(xùn)練方法:首先隨機(jī)初始化可見(jiàn)層,然后在可見(jiàn)層與隱層之間交替進(jìn)行吉布斯采樣:用條件分布概率P(h|v)計(jì)算隱層;再根據(jù)隱層節(jié)點(diǎn),同樣用條件分布概率P(v|h)來(lái)計(jì)算可見(jiàn)層;重復(fù)這一采樣過(guò)程直到可見(jiàn)層和隱層達(dá)到平穩(wěn)分布。而Hinton提出了一種快速算法,稱(chēng)作對(duì)比離差(contrastive divergence, CD)學(xué)習(xí)算法。這種算法使用訓(xùn)練數(shù)據(jù)初始化可見(jiàn)層,只需迭代k次上述采樣過(guò)程(即每次迭代包括從可見(jiàn)層更新隱層,以及從隱層更新可見(jiàn)層),就可獲得對(duì)模型的估計(jì)。
?。?)、深度玻爾茲曼機(jī):將多個(gè)受限玻爾茲曼機(jī)堆疊,前一層的輸出作為后一層的輸入,便構(gòu)成了深度玻爾茲曼機(jī)。網(wǎng)絡(luò)中所有節(jié)點(diǎn)間的連線(xiàn)都是雙向的。深度玻爾茲曼機(jī)訓(xùn)練分為2個(gè)階段:預(yù)訓(xùn)練階段和微調(diào)階段。在預(yù)訓(xùn)練階段,采用無(wú)監(jiān)督的逐層貪心訓(xùn)練方法來(lái)訓(xùn)練網(wǎng)絡(luò)每層的參數(shù),即先訓(xùn)練網(wǎng)絡(luò)的第1個(gè)隱含層,然后接著訓(xùn)練第2,3,…個(gè)隱含層,最后用這些訓(xùn)練好的網(wǎng)絡(luò)參數(shù)值作為整體網(wǎng)絡(luò)參數(shù)的初始值。預(yù)訓(xùn)練之后,將訓(xùn)練好的每層受限玻爾茲曼機(jī)疊加形成深度玻爾茲曼機(jī),利用有監(jiān)督的學(xué)習(xí)對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練(一般采用反向傳播算法)。由于深度玻爾茲曼機(jī)隨機(jī)初始化權(quán)值以及微調(diào)階段采用有監(jiān)督的學(xué)習(xí)方法,這些都容易使網(wǎng)絡(luò)陷入局部最小值。而采用無(wú)監(jiān)督預(yù)訓(xùn)練的方法,有利于避免陷入局部最小值問(wèn)題。
受限玻爾茲曼機(jī)(RBM,RestrictBoltzmann Machine):假設(shè)有一個(gè)二部圖(二分圖),一層是可視層v(即輸入層),一層是隱層h,每層內(nèi)的節(jié)點(diǎn)之間設(shè)有連接。在已知v時(shí),全部的隱藏節(jié)點(diǎn)之間都是條件獨(dú)立的(因?yàn)檫@個(gè)模型是二部圖),即p(h|v) = p(h1|v1) … p(hn|v)。同樣的,在已知隱層h的情況下,可視節(jié)點(diǎn)又都是條件獨(dú)立的,又因?yàn)槿康膆和v滿(mǎn)足玻爾茲曼分布,所以當(dāng)輸入v的時(shí)候,通過(guò)p(h|v)可得到隱層h,得到h之后,通過(guò)p(v|h)又可以重構(gòu)可視層v。通過(guò)調(diào)整參數(shù),使得從隱層計(jì)算得到的可視層與原來(lái)的可視層有相同的分布。這樣的話(huà),得到的隱層就是可視層的另外一種表達(dá),即可視層的特征表示。若增加隱層的層數(shù),可得到深度玻爾茲曼機(jī)(DBM,Deep Boltzmann Machine)。若在靠近可視層v的部分使用貝葉斯信念網(wǎng),遠(yuǎn)離可視層的部分使用RBM,那么就可以得到一個(gè)深度信念網(wǎng)絡(luò)(DBNs,Deep Belief Nets)。
受限玻爾茲曼機(jī)模型是玻爾茲曼機(jī)(BM,BoltzmannMachine)模型的一種特殊形式,其特殊性就在于同層內(nèi)的節(jié)點(diǎn)沒(méi)有連接,是以二部圖的形式存在。
由于受限玻爾茲曼機(jī)是一種隨機(jī)網(wǎng)絡(luò),而隨機(jī)神經(jīng)網(wǎng)絡(luò)又是根植于統(tǒng)計(jì)力學(xué)的,所以受統(tǒng)計(jì)力學(xué)能量泛函的啟發(fā)引入了能量函數(shù)。在隨機(jī)神經(jīng)網(wǎng)絡(luò)中,能量函數(shù)是用來(lái)描述整個(gè)系統(tǒng)狀態(tài)的測(cè)度。網(wǎng)絡(luò)越有序或概率分布越集中,網(wǎng)絡(luò)的能量就越小;反之,網(wǎng)絡(luò)越無(wú)序或概率分布不集中,那么網(wǎng)絡(luò)的能量就越大。所以當(dāng)網(wǎng)絡(luò)最穩(wěn)定時(shí),能量函數(shù)的值最小。
深度信念神經(jīng)網(wǎng)絡(luò):深度結(jié)構(gòu)的訓(xùn)練大致有無(wú)監(jiān)督的訓(xùn)練和有監(jiān)督的訓(xùn)練兩種,而且兩者擁有不一樣的模型架構(gòu)。比如卷積神經(jīng)網(wǎng)絡(luò)就是一種有監(jiān)督下的深度結(jié)構(gòu)學(xué)習(xí)模型(即需要大量有標(biāo)簽的訓(xùn)練樣本),但深度信念網(wǎng)絡(luò)是一種無(wú)監(jiān)督和有監(jiān)督混合下的深度結(jié)構(gòu)學(xué)習(xí)模型(即需要一部分無(wú)標(biāo)簽的訓(xùn)練樣本和一部分有標(biāo)簽的樣本)。
一個(gè)典型的深度信念網(wǎng)絡(luò)可看成多個(gè)受限玻爾茲曼機(jī)的累加,而DBNs則是一個(gè)復(fù)雜度較高的有向無(wú)環(huán)圖。
深度信念網(wǎng)絡(luò)在訓(xùn)練的過(guò)程中,所需要學(xué)習(xí)的即是聯(lián)合概率分布。在機(jī)器學(xué)習(xí)領(lǐng)域中,其所表示的就是對(duì)象的生成模型。如果想要全局優(yōu)化具有多隱層的深度信念網(wǎng)絡(luò)是比較困難的。這個(gè)時(shí)候,可以運(yùn)用貪婪算法,即逐層進(jìn)行優(yōu)化,每次只訓(xùn)練相鄰兩層的模型參數(shù),通過(guò)逐層學(xué)習(xí)來(lái)獲得全局的網(wǎng)絡(luò)參數(shù)。這種訓(xùn)練方法(非監(jiān)督逐層貪婪訓(xùn)練)已經(jīng)被Hinton證明是有效的,并稱(chēng)其為相對(duì)收斂(contrastive divergence)。
深度信任網(wǎng)絡(luò)模型:DBN可以解釋為貝葉斯概率生成模型,由多層隨機(jī)隱變量組成,上面的兩層具有無(wú)向?qū)ΨQ(chēng)連接,下面的層得到來(lái)自上一層的自頂向下的有向連接,最底層單元的狀態(tài)為可見(jiàn)輸入數(shù)據(jù)向量。DBN由若干結(jié)構(gòu)單元堆棧組成,結(jié)構(gòu)單元通常為RBM。堆棧中每個(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)。作為DBN的結(jié)構(gòu)單元,RBM與每一層DBN共享參數(shù)。
RBM是一種特殊形式的玻爾茲曼機(jī)(Boltzmannmachine,BM),變量之間的圖模型連接形式有限制,只有可見(jiàn)層節(jié)點(diǎn)與隱層節(jié)點(diǎn)之間有連接權(quán)值,而可見(jiàn)層節(jié)點(diǎn)與可見(jiàn)層節(jié)點(diǎn)及隱層節(jié)點(diǎn)與隱層節(jié)點(diǎn)之間無(wú)連接。BM是基于能量的無(wú)向圖概率模型。
BM的典型訓(xùn)練算法有變分近似法、隨機(jī)近似法(stochastic approximation procedure,SAP)、對(duì)比散度算法(contrastivedivergence,CD)、持續(xù)對(duì)比散度算法(persistent contrastive divergence,PCD)、快速持續(xù)對(duì)比散度算法(fastpersistent contrastive divergence,FPCD)和回火MCMC算法等。
堆棧自編碼網(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ò),第一層稱(chēng)為編碼層,第二層稱(chēng)為解碼層。
堆棧自編碼網(wǎng)絡(luò)的結(jié)構(gòu)單元除了自編碼模型之外,還可以使用自編碼模型的一些變形,如降噪自編碼模型和收縮自編碼模型等。降噪自編碼模型避免了一般的自編碼模型可能會(huì)學(xué)習(xí)得到無(wú)編碼功能的恒等函數(shù)和需要樣本的個(gè)數(shù)大于樣本的維數(shù)的限制,嘗試通過(guò)最小化降噪重構(gòu)誤差,從含隨機(jī)噪聲的數(shù)據(jù)中重構(gòu)真實(shí)的原始輸入。降噪自編碼模型使用由少量樣本組成的微批次樣本執(zhí)行隨機(jī)梯度下降算法,這樣可以充分利用圖處理單元(graphical processing unit,GPU)的矩陣到矩陣快速運(yùn)算使得算法能夠更快地收斂。
收縮自編碼模型的訓(xùn)練目標(biāo)函數(shù)是重構(gòu)誤差和收縮罰項(xiàng)(contraction penalty)的總和,通過(guò)最小化該目標(biāo)函數(shù)使已學(xué)習(xí)到的表示C(x)盡量對(duì)輸入x保持不變。為了避免出現(xiàn)平凡解,編碼器權(quán)值趨于零而解碼器權(quán)值趨于無(wú)窮,并且收縮自編碼模型采用固定的權(quán)值,令解碼器權(quán)值為編碼器權(quán)值的置換陣。與其他自編碼模型相比,收縮自編碼模型趨于找到盡量少的幾個(gè)特征值,特征值的數(shù)量對(duì)應(yīng)局部秩和局部維數(shù)。收縮自編碼模型可以利用隱單元建立復(fù)雜非線(xiàn)性流形模型。
MKMs:受SVM算法中核函數(shù)的啟發(fā),在深度模型結(jié)構(gòu)中加入核函數(shù),構(gòu)建一種基于核函數(shù)的深度學(xué)習(xí)模型。MKMs深度模型,如同深度信念網(wǎng)絡(luò)(deep belief network,DBNs),反復(fù)迭代核PCA 來(lái)逼近高階非線(xiàn)性函數(shù),每一層核PCA 的輸出作為下一層核PCA 的輸入。作者模擬大型神經(jīng)網(wǎng)絡(luò)計(jì)算方法創(chuàng)建核函數(shù)族,并將其應(yīng)用在訓(xùn)練多層深度學(xué)習(xí)模型中。L層MKMs深度模型的訓(xùn)練過(guò)程如下:
?。?)、去除輸入特征中無(wú)信息含量的特征;
(2)、重復(fù)L次:A、計(jì)算有非線(xiàn)性核產(chǎn)生特征的主成分;B、去除無(wú)信息含量的主成分特征;
(3)、采用Mahalanobis距離進(jìn)行最近鄰分類(lèi)。
在參數(shù)訓(xùn)練階段,采用核主成分分析法(kernelprincipal component analysis,KPCA)進(jìn)行逐層貪婪無(wú)監(jiān)督學(xué)習(xí),并提取第k層數(shù)據(jù)特征中的前nk 主成分,此時(shí)第k+1層便獲得第k層的低維空間特征。為進(jìn)一步降低每層特征的維數(shù),采用有監(jiān)督的訓(xùn)練機(jī)制進(jìn)行二次篩選:首先,根據(jù)離散化特征點(diǎn)邊緣直方圖,估計(jì)它與類(lèi)標(biāo)簽之間的互信息,將nk 主成分進(jìn)行排序;其次,對(duì)于不同的k 和w 采用KNN 聚類(lèi)方法,每次選取排序最靠前的w驗(yàn)證集上的特征并計(jì)算其錯(cuò)誤率,最終選擇錯(cuò)誤率最低的w個(gè)特征。該模型由于特征選取階段無(wú)法并行計(jì)算,導(dǎo)致交叉驗(yàn)證階段需耗費(fèi)大量時(shí)間。據(jù)此,提出了一種改進(jìn)方法,通過(guò)在隱藏層采用有監(jiān)督的核偏最小二乘法(kernel partial least squares,KPLS)來(lái)優(yōu)化此問(wèn)題。
DeSTIN:目前較成熟的深度學(xué)習(xí)模型大多建立在空間層次結(jié)構(gòu)上,很少對(duì)時(shí)效性(temporal)有所體現(xiàn)。相關(guān)研究表明,人類(lèi)大腦的運(yùn)行模式是將感受到的模式與記憶存儲(chǔ)的模式進(jìn)行匹配,并對(duì)下一時(shí)刻的模式進(jìn)行預(yù)測(cè),反復(fù)進(jìn)行上述步驟,這個(gè)過(guò)程包含了時(shí)空信息。因此在深度結(jié)構(gòu)中將時(shí)效性考慮在內(nèi),會(huì)更接近人腦的工作模式。DeSTIN便是基于這種理念被提出的。DeSTIN 是一種基于貝葉斯推理理論、動(dòng)態(tài)進(jìn)行模式分類(lèi)的深度學(xué)習(xí)架構(gòu),它是一種區(qū)分性的層次網(wǎng)絡(luò)結(jié)構(gòu)。在該深度模型中,數(shù)據(jù)間的時(shí)空相關(guān)性通過(guò)無(wú)監(jiān)督方式來(lái)學(xué)習(xí)。網(wǎng)絡(luò)的每一層的每個(gè)節(jié)點(diǎn)結(jié)構(gòu)一致,且包含多個(gè)聚類(lèi)中心,通過(guò)聚類(lèi)和動(dòng)態(tài)建模來(lái)模擬輸入。每個(gè)節(jié)點(diǎn)通過(guò)貝葉斯信念推理輸出該節(jié)點(diǎn)信念值,根據(jù)信念值提取整個(gè)DeSTIN網(wǎng)絡(luò)的模式特征,最后一層網(wǎng)絡(luò)輸出特征可以輸入分類(lèi)器如SVM中進(jìn)行模式分類(lèi)。
DeSTIN 模型的每一個(gè)節(jié)點(diǎn)都用來(lái)學(xué)習(xí)一個(gè)模式時(shí)序,底層節(jié)點(diǎn)通過(guò)對(duì)輸入數(shù)據(jù)的時(shí)間與空間特征進(jìn)行提取,改變其信念值,輸入到下一層。由于每一個(gè)節(jié)點(diǎn)結(jié)構(gòu)相同,訓(xùn)練時(shí)可采樣并行計(jì)算,節(jié)約運(yùn)算資源。該模型最重要的步驟就是信念值更新算法。信念值更新算法同時(shí)考慮了數(shù)據(jù)的時(shí)間與空間特征。目前將時(shí)效性考慮在內(nèi)的深度學(xué)習(xí)架構(gòu)雖然不是很成熟,但也逐漸應(yīng)用在不同領(lǐng)域,也是深度學(xué)習(xí)模型未來(lái)發(fā)展的一個(gè)新方向。
四、 深度學(xué)習(xí)訓(xùn)練算法
實(shí)驗(yàn)結(jié)果表明,對(duì)深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)采用隨機(jī)初始化的方法,基于梯度的優(yōu)化使訓(xùn)練結(jié)果陷入局部極值,而找不到全局最優(yōu)值,并且隨著網(wǎng)絡(luò)結(jié)構(gòu)層次的加深,更難以得到好的泛化性能,使得深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)在隨機(jī)初始化后得到的學(xué)習(xí)結(jié)果甚至不如只有一個(gè)或兩個(gè)隱層的淺結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)得到的學(xué)習(xí)結(jié)果好。由于隨機(jī)初始化深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)的參數(shù)得到的訓(xùn)練結(jié)果和泛化性能都很不理想,在2006年以前,深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)在機(jī)器學(xué)習(xí)領(lǐng)域文獻(xiàn)中并沒(méi)有進(jìn)行過(guò)多討論。通過(guò)實(shí)驗(yàn)研究發(fā)現(xiàn),用無(wú)監(jiān)督學(xué)習(xí)算法對(duì)深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)進(jìn)行逐層預(yù)訓(xùn)練,能夠得到較好的學(xué)習(xí)結(jié)果。最初的實(shí)驗(yàn)對(duì)每層采用RBM生成模型,后來(lái)的實(shí)驗(yàn)采用自編碼模型來(lái)訓(xùn)練每一層,兩種模型得到相似的實(shí)驗(yàn)結(jié)果。一些實(shí)驗(yàn)和研究結(jié)果證明了無(wú)監(jiān)督預(yù)訓(xùn)練相比隨機(jī)初始化具有很大的優(yōu)勢(shì),無(wú)監(jiān)督預(yù)訓(xùn)練不僅初始化網(wǎng)絡(luò)得到好的初始參數(shù)值,而且可以提取關(guān)于輸入分布的有用信息,有助于網(wǎng)絡(luò)找到更好的全局最優(yōu)解。對(duì)深度學(xué)習(xí)來(lái)說(shuō),無(wú)監(jiān)督學(xué)習(xí)和半監(jiān)督學(xué)習(xí)是成功的學(xué)習(xí)算法的關(guān)鍵組成部分,主要原因包括以下幾個(gè)方面:
?。?)、與半監(jiān)督學(xué)習(xí)類(lèi)似,深度學(xué)習(xí)中缺少有類(lèi)標(biāo)簽的樣本,并且樣例大多無(wú)類(lèi)標(biāo)簽;
?。?)、逐層的無(wú)監(jiān)督學(xué)習(xí)利用結(jié)構(gòu)層上的可用信息進(jìn)行學(xué)習(xí),避免了監(jiān)督學(xué)習(xí)梯度傳播的問(wèn)題,可減少對(duì)監(jiān)督準(zhǔn)則函數(shù)梯度給出的不可靠更新方向的依賴(lài);
?。?)、無(wú)監(jiān)督學(xué)習(xí)使得監(jiān)督學(xué)習(xí)的參數(shù)進(jìn)入一個(gè)合適的預(yù)置區(qū)域內(nèi),在此區(qū)域內(nèi)進(jìn)行梯度下降能夠得到很好的解;
?。?)、在利用深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)構(gòu)造一個(gè)監(jiān)督分類(lèi)器時(shí),無(wú)監(jiān)督學(xué)習(xí)可看做學(xué)習(xí)先驗(yàn)信息,使得深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)訓(xùn)練結(jié)果的參數(shù)在大多情況下都具有意義;
?。?)、在深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)的每一層采用無(wú)監(jiān)督學(xué)習(xí)將一個(gè)問(wèn)題分解成若干與多重表示水平提取有關(guān)的子問(wèn)題,是一種常用的可行方法,可提取輸入分布較高水平表示的重要特征信息。
基于上述思想,Hinton等人在2006年引入了DBN并給出了一種訓(xùn)練該網(wǎng)絡(luò)的貪婪逐層預(yù)訓(xùn)練算法。貪婪逐層無(wú)監(jiān)督預(yù)訓(xùn)練學(xué)習(xí)的基本思想為:首先采用無(wú)監(jiān)督學(xué)習(xí)算法對(duì)深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)的較低層進(jìn)行訓(xùn)練,生成第一層深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)的初始參數(shù)值;然后將第一層的輸出作為另外一層的輸入,同樣采用無(wú)監(jiān)督學(xué)習(xí)算法對(duì)該層參數(shù)進(jìn)行初始化。在對(duì)多層進(jìn)行初始化后,用監(jiān)督學(xué)習(xí)算法對(duì)整個(gè)深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)進(jìn)行微調(diào),得到的學(xué)習(xí)性能具有很大程度的提高。
以堆棧自編碼網(wǎng)絡(luò)為例,深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程如下:
?。?)、將第一層作為一個(gè)自編碼模型,采用無(wú)監(jiān)督訓(xùn)練,使原始輸入的重建誤差最??;
?。?)、將自編碼模型的隱單元輸出作為另一層的輸入;
?。?)、按步驟(2)迭代初始化每一層的參數(shù);
?。?)、采用最后一個(gè)隱層的輸出作為輸入施加于一個(gè)有監(jiān)督的層(通常為輸出層),并初始化該層的參數(shù);
?。?)、根據(jù)監(jiān)督準(zhǔn)則調(diào)整深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)的所有參數(shù),堆棧所有自編碼模型組成堆棧自編碼網(wǎng)絡(luò)。
基本的無(wú)監(jiān)督學(xué)習(xí)方法在2006年被Hinton等人提出用于訓(xùn)練深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò),該方法的學(xué)習(xí)步驟如下:
?。?)、令h0(x)=x為可觀(guān)察的原始輸入x的最低階表示;
?。?)、對(duì)l=1,。..,L,訓(xùn)練無(wú)監(jiān)督學(xué)習(xí)模型,將可觀(guān)察數(shù)據(jù)看做l-1階上表示的訓(xùn)練樣例hl-1(x),訓(xùn)練后產(chǎn)生下一階的表示hl(x)=Rl(hl-1(x))。
隨后出現(xiàn)了一些該算法的變形拓展,最常見(jiàn)的是有監(jiān)督的微調(diào)方法,該方法的學(xué)習(xí)步驟如下所示:
(1)、初始化監(jiān)督預(yù)測(cè)器:a、用參數(shù)表示函數(shù)hL(x);b、將hL(x)作為輸入得到線(xiàn)性或非線(xiàn)性預(yù)測(cè)器;
?。?)、基于已標(biāo)記訓(xùn)練樣本對(duì)(x,y)采用監(jiān)督訓(xùn)練準(zhǔn)則微調(diào)監(jiān)督預(yù)測(cè)器,在表示階段和預(yù)測(cè)器階段優(yōu)化參數(shù)。
深度學(xué)習(xí)的訓(xùn)練過(guò)程:
1、自下向上的非監(jiān)督學(xué)習(xí):采用無(wú)標(biāo)簽數(shù)據(jù)分層訓(xùn)練各層參數(shù),這是一個(gè)無(wú)監(jiān)督訓(xùn)練的過(guò)程(也是一個(gè)特征學(xué)習(xí)的過(guò)程),是和傳統(tǒng)神經(jīng)網(wǎng)絡(luò)區(qū)別最大的部分。具體是:用無(wú)標(biāo)簽數(shù)據(jù)去訓(xùn)練第一層,這樣就可以學(xué)習(xí)到第一層的參數(shù),在學(xué)習(xí)得到第n-1層后,再將第n-1層的輸出作為第n層的輸入,訓(xùn)練第n層,進(jìn)而分別得到各層的參數(shù)。這稱(chēng)為網(wǎng)絡(luò)的預(yù)訓(xùn)練。
2、自頂向下的監(jiān)督學(xué)習(xí):在預(yù)訓(xùn)練后,采用有標(biāo)簽的數(shù)據(jù)來(lái)對(duì)網(wǎng)絡(luò)進(jìn)行區(qū)分性訓(xùn)練,此時(shí)誤差自頂向下傳輸。預(yù)訓(xùn)練類(lèi)似傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的隨機(jī)初始化,但由于深度學(xué)習(xí)的第一步不是隨機(jī)初始化而是通過(guò)學(xué)習(xí)無(wú)標(biāo)簽數(shù)據(jù)得到的,因此這個(gè)初值比較接近全局最優(yōu),所以深度學(xué)習(xí)效果好很多程序上歸功于第一步的特征學(xué)習(xí)過(guò)程。
使用到的學(xué)習(xí)算法包括:
?。?)、深度費(fèi)希爾映射方法:Wong等人提出一種新的特征提取方法----正則化深度費(fèi)希爾映射(regularized deep Fisher mapping,RDFM)方法,學(xué)習(xí)從樣本空間到特征空間的顯式映射,根據(jù)Fisher準(zhǔn)則用深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)提高特征的區(qū)分度。深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)具有深度非局部學(xué)習(xí)結(jié)構(gòu),從更少的樣本中學(xué)習(xí)變化很大的數(shù)據(jù)集中的特征,顯示出比核方法更強(qiáng)的特征識(shí)別能力,同時(shí)RDFM方法的學(xué)習(xí)過(guò)程由于引入正則化因子,解決了學(xué)習(xí)能力過(guò)強(qiáng)帶來(lái)的過(guò)擬合問(wèn)題。在各種類(lèi)型的數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),得到的結(jié)果說(shuō)明了在深度學(xué)習(xí)微調(diào)階段運(yùn)用無(wú)監(jiān)督正則化的必要性。
?。?)、非線(xiàn)性變換方法:Raiko等人提出了一種非線(xiàn)性變換方法,該變換方法使得多層感知器(multi—layer perceptron,MLP)網(wǎng)絡(luò)的每個(gè)隱神經(jīng)元的輸出具有零輸出和平均值上的零斜率,使學(xué)習(xí)MLP變得更容易。將學(xué)習(xí)整個(gè)輸入輸出映射函數(shù)的線(xiàn)性部分和非線(xiàn)性部分盡可能分開(kāi),用shortcut權(quán)值(shortcut weight)建立線(xiàn)性映射模型,令Fisher信息陣接近對(duì)角陣,使得標(biāo)準(zhǔn)梯度接近自然梯度。通過(guò)實(shí)驗(yàn)證明非線(xiàn)性變換方法的有效性,該變換使得基本隨機(jī)梯度學(xué)習(xí)與當(dāng)前的學(xué)習(xí)算法在速度上不相上下,并有助于找到泛化性能更好的分類(lèi)器。用這種非線(xiàn)性變換方法實(shí)現(xiàn)的深度無(wú)監(jiān)督自編碼模型進(jìn)行圖像分類(lèi)和學(xué)習(xí)圖像的低維表示的實(shí)驗(yàn),說(shuō)明這些變換有助于學(xué)習(xí)深度至少達(dá)到五個(gè)隱層的深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò),證明了變換的有效性,提高了基本隨機(jī)梯度學(xué)習(xí)算法的速度,有助于找到泛化性更好的分類(lèi)器。
?。?)、稀疏編碼對(duì)稱(chēng)機(jī)算法:Ranzato等人提出一種新的有效的無(wú)監(jiān)督學(xué)習(xí)算法----稀疏編碼對(duì)稱(chēng)機(jī)(sparse encoding symmetric machine,SESM),能夠在無(wú)須歸一化的情況下有效產(chǎn)生稀疏表示。SESM的損失函數(shù)是重構(gòu)誤差和稀疏罰函數(shù)的加權(quán)總和,基于該損失函數(shù)比較和選擇不同的無(wú)監(jiān)督學(xué)習(xí)機(jī),提出一種相關(guān)的迭代在線(xiàn)學(xué)習(xí)算法,并在理論和實(shí)驗(yàn)上將SESM與RBM和PCA進(jìn)行比較,在手寫(xiě)體數(shù)字識(shí)別MNIST數(shù)據(jù)集和實(shí)際圖像數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),表明該方法的優(yōu)越性。
?。?)、遷移學(xué)習(xí)算法:在許多常見(jiàn)學(xué)習(xí)場(chǎng)景中訓(xùn)練和測(cè)試數(shù)據(jù)集中的類(lèi)標(biāo)簽不同,必須保證訓(xùn)練和測(cè)試數(shù)據(jù)集中的相似性進(jìn)行遷移學(xué)習(xí)。Mesnil等人研究了用于無(wú)監(jiān)督遷移學(xué)習(xí)場(chǎng)景中學(xué)習(xí)表示的不同種類(lèi)模型結(jié)構(gòu),將多個(gè)不同結(jié)構(gòu)的層堆棧使用無(wú)監(jiān)督學(xué)習(xí)算法用于五個(gè)學(xué)習(xí)任務(wù),并研究了用于少量已標(biāo)記訓(xùn)練樣本的簡(jiǎn)單線(xiàn)性分類(lèi)器堆棧深度結(jié)構(gòu)學(xué)習(xí)算法。Bengio等人研究了無(wú)監(jiān)督遷移學(xué)習(xí)問(wèn)題,討論了無(wú)監(jiān)督預(yù)訓(xùn)練有用的原因,如何在遷移學(xué)習(xí)場(chǎng)景中利用無(wú)監(jiān)督預(yù)訓(xùn)練,以及在什么情況下需要注意從不同數(shù)據(jù)分布得到的樣例上的預(yù)測(cè)問(wèn)題。
?。?)、自然語(yǔ)言解析算法:Collobert基于深度遞歸卷積圖變換網(wǎng)絡(luò)(graphtransformer network,GTN)提出一種快速可擴(kuò)展的判別算法用于自然語(yǔ)言解析,將文法解析樹(shù)分解到堆棧層中,只用極少的基本文本特征,得到的性能與現(xiàn)有的判別解析器和標(biāo)準(zhǔn)解析器的性能相似,而在速度上有了很大提升。
?。?)、學(xué)習(xí)率自適應(yīng)方法:學(xué)習(xí)率自適應(yīng)方法可用于提高深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)訓(xùn)練的收斂性并且去除超參數(shù)中的學(xué)習(xí)率參數(shù),其中包括全局學(xué)習(xí)率、層次學(xué)習(xí)率、神經(jīng)元學(xué)習(xí)率和參數(shù)學(xué)習(xí)率等。最近研究人員提出了一些新的學(xué)習(xí)率自適應(yīng)方法,如Duchi等人提出的自適應(yīng)梯度方法和Schaul等人提出的學(xué)習(xí)率自適應(yīng)方法;Hinton提出了收縮學(xué)習(xí)率方法使得平均權(quán)值更新在權(quán)值大小的1/1000數(shù)量級(jí)上;LeRoux等人提出自然梯度的對(duì)角低秩在線(xiàn)近似方法,并說(shuō)明該算法在一些學(xué)習(xí)場(chǎng)景中能加速訓(xùn)練過(guò)程。
五、 深度學(xué)習(xí)的優(yōu)點(diǎn)
深度學(xué)習(xí)與淺學(xué)習(xí)相比具有許多優(yōu)點(diǎn):
1、 在網(wǎng)絡(luò)表達(dá)復(fù)雜目標(biāo)函數(shù)的能力方面,淺結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)有時(shí)無(wú)法很好地實(shí)現(xiàn)高變函數(shù)等復(fù)雜高維函數(shù)的表示,而用深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)能夠較好地表征。
2、 在網(wǎng)絡(luò)結(jié)構(gòu)的計(jì)算復(fù)雜度方面,當(dāng)用深度為k的網(wǎng)絡(luò)結(jié)構(gòu)能夠緊湊地表達(dá)某一函數(shù)時(shí),在采用深度小于k的網(wǎng)絡(luò)結(jié)構(gòu)表達(dá)該函數(shù)時(shí),可能需要增加指數(shù)級(jí)規(guī)模數(shù)量的計(jì)算因子,大大增加了計(jì)算的復(fù)雜度。另外,需要利用訓(xùn)練樣本對(duì)計(jì)算因子中的參數(shù)值進(jìn)行調(diào)整,當(dāng)一個(gè)網(wǎng)絡(luò)結(jié)構(gòu)的訓(xùn)練樣本數(shù)量有限而計(jì)算因子數(shù)量增加時(shí),其泛化能力會(huì)變得很差。
3、 在仿生學(xué)角度方面,深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)是對(duì)人類(lèi)大腦皮層的最好模擬。與大腦皮層一樣,深度學(xué)習(xí)對(duì)輸入數(shù)據(jù)的處理是分層進(jìn)行的,用每一層神經(jīng)網(wǎng)絡(luò)提取原始數(shù)據(jù)不同水平的特征。
4、 在信息共享方面,深度學(xué)習(xí)獲得的多重水平的提取特征可以在類(lèi)似的不同任務(wù)中重復(fù)使用,相當(dāng)于對(duì)任務(wù)求解提供了一些無(wú)監(jiān)督的數(shù)據(jù),可以獲得更多的有用信息。
5、 深度學(xué)習(xí)比淺學(xué)習(xí)具有更強(qiáng)的表示能力,而由于深度的增加使得非凸目標(biāo)函數(shù)產(chǎn)生的局部最優(yōu)解是造成學(xué)習(xí)困難的主要因素。反向傳播基于局部梯度下降,從一些隨機(jī)初始點(diǎn)開(kāi)始運(yùn)行,通常陷入局部極值,并隨著網(wǎng)絡(luò)深度的增加而惡化,不能很好地求解深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)問(wèn)題。2006年,Hinton等人提出的用于深度信任網(wǎng)絡(luò)(deep belief network,DBN)的無(wú)監(jiān)督學(xué)習(xí)算法,解決了深度學(xué)習(xí)模型優(yōu)化困難的問(wèn)題。求解DBN方法的核心是貪婪逐層預(yù)訓(xùn)練算法,在與網(wǎng)絡(luò)大小和深度呈線(xiàn)性的時(shí)間復(fù)雜度上優(yōu)化DBN的權(quán)值,將求解的問(wèn)題分解成為若干更簡(jiǎn)單的子問(wèn)題進(jìn)行求解。
6、 深度學(xué)習(xí)方法試圖找到數(shù)據(jù)的內(nèi)部結(jié)構(gòu),發(fā)現(xiàn)變量之間的真正關(guān)系形式。大量研究表明,數(shù)據(jù)表示的方式對(duì)訓(xùn)練學(xué)習(xí)的成功產(chǎn)生很大的影響,好的表示能夠消除輸入數(shù)據(jù)中與學(xué)習(xí)任務(wù)無(wú)關(guān)因素的改變對(duì)學(xué)習(xí)性能的影響,同時(shí)保留對(duì)學(xué)習(xí)任務(wù)有用的信息。深度學(xué)習(xí)中數(shù)據(jù)的表示有局部表示(local representation)、分布表示(distributed representation),和稀疏分布表示(sparsedistributed representation) 三種表示形式。學(xué)習(xí)輸入層、隱層和輸出層的單元均取值0或1。舉個(gè)簡(jiǎn)單的例子,整數(shù)i∈{1,2,。..,N}的局部表示為向量R(i),該向量有N位,由1個(gè)1和N-1個(gè)0組成,即Rj(i)=1i=j。分布表示中的輸入模式由一組特征表示,這些特征可能存在相互包含關(guān)系,并且在統(tǒng)計(jì)意義上相互獨(dú)立。對(duì)于例子中相同整數(shù)的分布表示有l(wèi)og2N位的向量,這種表示更為緊湊,在解決降維和局部泛化限制方面起到幫助作用。稀疏分布表示介于完全局部表示和非稀疏分布表示之間,稀疏性的意思為表示向量中的許多單元取值為0。對(duì)于特定的任務(wù)需要選擇合適的表示形式才能對(duì)學(xué)習(xí)性能起到改進(jìn)的作用。當(dāng)表示一個(gè)特定的輸入分布時(shí),一些結(jié)構(gòu)是不可能的,因?yàn)樗鼈儾幌嗳?。例如在語(yǔ)言建槨中,運(yùn)用局部表示可以直接用詞匯表中的索引編碼詞的特性,而在句法特征、形態(tài)學(xué)特征和語(yǔ)義特征提取中,運(yùn)用分布表示可以通過(guò)連接一個(gè)向量指示器來(lái)表示一個(gè)詞。分布表示由于其具有的優(yōu)點(diǎn),常常用于深度學(xué)習(xí)中表示數(shù)據(jù)的結(jié)構(gòu)。由于聚類(lèi)簇之間在本質(zhì)上互相不存在包含關(guān)系,因此聚類(lèi)算法不專(zhuān)門(mén)建立分布表示,而獨(dú)立成分分析(independent component analysis,ICA)和主成分分析(principalcomponent analysis,PCA)通常用來(lái)構(gòu)造數(shù)據(jù)的分布表示。
六、 深度學(xué)習(xí)已有的應(yīng)用
深度學(xué)習(xí)架構(gòu)由多層非線(xiàn)性運(yùn)算單元組成,每個(gè)較低層的輸出作為更高層的輸入,可以從大量輸入數(shù)據(jù)中學(xué)習(xí)有效的特征表示,學(xué)習(xí)到的高階表示中包含輸入數(shù)據(jù)的許多結(jié)構(gòu)信息,是一種從數(shù)據(jù)中提取表示的好方法,能夠用于分類(lèi)、回歸和信息檢索等特定問(wèn)題中。
深度學(xué)習(xí)目前在很多領(lǐng)域都優(yōu)于過(guò)去的方法。如語(yǔ)音和音頻識(shí)別、圖像分類(lèi)及識(shí)別、人臉識(shí)別、視頻分類(lèi)、行為識(shí)別、圖像超分辨率重建、紋理識(shí)別、行人檢測(cè)、場(chǎng)景標(biāo)記、門(mén)牌識(shí)別、手寫(xiě)體字符識(shí)別、圖像檢索、人體運(yùn)行行為識(shí)別等。
1、 深度學(xué)習(xí)在語(yǔ)音識(shí)別、合成及機(jī)器翻譯中的應(yīng)用
微軟研究人員使用深度信念網(wǎng)絡(luò)對(duì)數(shù)以千計(jì)的senones(一種比音素小很多的建模單元)直接建模,提出了第1個(gè)成功應(yīng)用于大詞匯量語(yǔ)音識(shí)別系統(tǒng)的上下文相關(guān)的深層神經(jīng)網(wǎng)絡(luò)--隱馬爾可夫混合模型(CD-DNN-HMM),比之前最領(lǐng)先的基于常規(guī)CD-GMM-HMM的大詞匯量語(yǔ)音識(shí)別系統(tǒng)相對(duì)誤差率減少16%以上。隨后又在含有300h語(yǔ)音訓(xùn)練數(shù)據(jù)的Switchboard標(biāo)準(zhǔn)數(shù)據(jù)集上對(duì)CD-DNN-HMM模型進(jìn)行評(píng)測(cè)?;鶞?zhǔn)測(cè)試字詞錯(cuò)誤率為18.5%,與之前最領(lǐng)先的常規(guī)系統(tǒng)相比,相對(duì)錯(cuò)誤率減少了33%。
H. Zen等提出一種基于多層感知機(jī)的語(yǔ)音合成模型。該模型先將輸入文本轉(zhuǎn)換為一個(gè)輸入特征序列,輸入特征序列的每幀分別經(jīng)過(guò)多層感知機(jī)映射到各自的輸出特征,然后采用算法,生成語(yǔ)音參數(shù),最后經(jīng)過(guò)聲紋合成生成語(yǔ)音。訓(xùn)練數(shù)據(jù)包含由一名女性專(zhuān)業(yè)演講者以美國(guó)英語(yǔ)錄制的3.3萬(wàn)段語(yǔ)音素材,其合成結(jié)果的主觀(guān)評(píng)價(jià)和客觀(guān)評(píng)價(jià)均優(yōu)于基于HMM方法的模型。
K. Cho等提出一種基于循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrentneural network, RNN)的向量化定長(zhǎng)表示模型(RNNenc模型),應(yīng)用于機(jī)器翻譯。該模型包含2個(gè)RNN,一個(gè)RNN用于將一組源語(yǔ)言符號(hào)序列編碼為一組固定長(zhǎng)度的向量,另一個(gè)RNN將該向量解碼為一組目標(biāo)語(yǔ)言的符號(hào)序列。在該模型的基礎(chǔ)上,D. Bahdanau等克服了固定長(zhǎng)度的缺點(diǎn)(固定長(zhǎng)度是其效果提升的瓶頸),提出了RNNsearch的模型。該模型在翻譯每個(gè)單詞時(shí),根據(jù)該單詞在源文本中最相關(guān)信息的位置以及已翻譯出的其他單詞,預(yù)測(cè)對(duì)應(yīng)于該單詞的目標(biāo)單詞。該模型包含一個(gè)雙向RNN作為編碼器,以及一個(gè)用于單詞翻譯的解碼器。在進(jìn)行目標(biāo)單詞位置預(yù)測(cè)時(shí),使用一個(gè)多層感知機(jī)模型進(jìn)行位置對(duì)齊。采用BLEU評(píng)價(jià)指標(biāo),RNNsearch模型在ACL2014機(jī)器翻譯研討會(huì)(ACL WMT 2014)提供的英/法雙語(yǔ)并行語(yǔ)料庫(kù)上的翻譯結(jié)果評(píng)分均高于RNNenc模型的評(píng)分,略低于傳統(tǒng)的基于短語(yǔ)的翻譯系統(tǒng)Moses(本身包含具有4.18 億個(gè)單詞的多語(yǔ)言語(yǔ)料庫(kù))。另外,在剔除包含未知詞匯語(yǔ)句的測(cè)試預(yù)料庫(kù)上,RNNsearch的評(píng)分甚至超過(guò)了Moses。
2、 深度學(xué)習(xí)在圖像分類(lèi)及識(shí)別中的應(yīng)用
(1)、深度學(xué)習(xí)在大規(guī)模圖像數(shù)據(jù)集中的應(yīng)用:
A. Krizhevsky等首次將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于ImageNet大規(guī)模視覺(jué)識(shí)別挑戰(zhàn)賽(ImageNetlargescale visual recognition challenge, ILSVRC)中,所訓(xùn)練的深度卷積神經(jīng)網(wǎng)絡(luò)在ILSVRC—2012挑戰(zhàn)賽中,取得了圖像分類(lèi)和目標(biāo)定位任務(wù)的第一。其中,圖像分類(lèi)任務(wù)中,前5選項(xiàng)錯(cuò)誤率為15.3%,遠(yuǎn)低于第2名的26.2%的錯(cuò)誤率;在目標(biāo)定位任務(wù)中,前5選項(xiàng)錯(cuò)誤率34%,也遠(yuǎn)低于第2名的50%。在ILSVRC—2013比賽中,M. D. Zeiler等采用卷積神經(jīng)網(wǎng)絡(luò)的方法,對(duì)A. Krizhevsky的方法進(jìn)行了改進(jìn),并在每個(gè)卷積層上附加一個(gè)反卷積層用于中間層特征的可視化,取得了圖像分類(lèi)任務(wù)的第一名。其前5 選項(xiàng)錯(cuò)誤率為11.7%,如果采用ILSVRC—2011 數(shù)據(jù)進(jìn)行預(yù)訓(xùn)練,錯(cuò)誤率則降低到11.2%。在目標(biāo)定位任務(wù)中,P. Sermanet等采用卷積神經(jīng)網(wǎng)絡(luò)結(jié)合多尺度滑動(dòng)窗口的方法,可同時(shí)進(jìn)行圖像分類(lèi)、定位和檢測(cè),是比賽中唯一一個(gè)同時(shí)參加所有任務(wù)的隊(duì)伍。多目標(biāo)檢測(cè)任務(wù)中,獲勝隊(duì)伍的方法在特征提取階段沒(méi)有使用深度學(xué)習(xí)模型,只在分類(lèi)時(shí)采用卷積網(wǎng)絡(luò)分類(lèi)器進(jìn)行重打分。在ILSVRC—2014比賽中,幾乎所有的參賽隊(duì)伍都采用了卷積神經(jīng)網(wǎng)絡(luò)及其變形方法。其中GoogLeNet小組采用卷積神經(jīng)網(wǎng)絡(luò)結(jié)合Hebbian理論提出的多尺度的模型,以6.7%的分類(lèi)錯(cuò)誤,取得圖形分類(lèi)“指定數(shù)據(jù)”組的第一名;CASIAWS小組采用弱監(jiān)督定位和卷積神經(jīng)網(wǎng)絡(luò)結(jié)合的方法,取得圖形分類(lèi)“額外數(shù)據(jù)”組的第一名,其分類(lèi)錯(cuò)誤率為11%。
在目標(biāo)定位任務(wù)中,VGG小組在深度學(xué)習(xí)框架Caffe的基礎(chǔ)上,采用3個(gè)結(jié)構(gòu)不同的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行平均評(píng)估,以26%的定位錯(cuò)誤率取得“指定數(shù)據(jù)”組的第一名;Adobe 組選用額外的2000類(lèi)ImageNet數(shù)據(jù)訓(xùn)練分類(lèi)器,采用卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)進(jìn)行分類(lèi)和定位,以30%的錯(cuò)誤率,取得了“額外數(shù)據(jù)”組的第一名。
在多目標(biāo)檢測(cè)任務(wù)中,NUS小組采用改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)----網(wǎng)中網(wǎng)(networkin network, NIN)與多種其他方法融合的模型,以37%的平均準(zhǔn)確率(mean average precision, mAP)取得“提供數(shù)據(jù)”組的第一名;GoogLeNet以44%的平均準(zhǔn)確率取得“額外數(shù)據(jù)”組的第一名。
從深度學(xué)習(xí)首次應(yīng)用于ILSVRC挑戰(zhàn)賽并取得突出的成績(jī),到2014年挑戰(zhàn)賽中幾乎所有參賽隊(duì)伍都采用深度學(xué)習(xí)方法,并將分類(lèi)識(shí)錯(cuò)率降低到6.7%,可看出深度學(xué)習(xí)方法相比于傳統(tǒng)的手工提取特征的方法在圖像識(shí)別領(lǐng)域具有巨大優(yōu)勢(shì)。
(2)、深度學(xué)習(xí)在人臉識(shí)別中的應(yīng)用:
基于卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)方法,香港中文大學(xué)的DeepID項(xiàng)目以及Facebook的DeepFace項(xiàng)目在戶(hù)外人臉識(shí)別(labeledfaces in the wild, LFW)數(shù)據(jù)庫(kù)上的人臉識(shí)別正確率分別達(dá)97.45%和97.35%,只比人類(lèi)識(shí)別97.5%的正確率略低一點(diǎn)點(diǎn)。DeepID項(xiàng)目采用4層卷積神經(jīng)網(wǎng)絡(luò)(不含輸入層和輸出層)結(jié)構(gòu),DeepFace采用5層卷積神經(jīng)網(wǎng)絡(luò)(不含輸入層和輸出層,其中后3層沒(méi)有采用權(quán)值共享以獲得不同的局部統(tǒng)計(jì)特征)結(jié)構(gòu),之后,采用基于卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)方法。香港中文大學(xué)的DeepID2項(xiàng)目將識(shí)別率提高到了99.15%,超過(guò)目前所有領(lǐng)先的深度學(xué)習(xí)和非深度學(xué)習(xí)算法在LFW 數(shù)據(jù)庫(kù)上的識(shí)別率以及人類(lèi)在該數(shù)據(jù)庫(kù)的識(shí)別率。DeepID2項(xiàng)目采用和DeepID項(xiàng)目類(lèi)似的深度結(jié)構(gòu),包含4個(gè)卷積層,其中第3層采用2*2鄰域的局部權(quán)值共享,第4層沒(méi)有采用權(quán)值共享,且輸出層與第3、4層都全連接。
?。?)、深度學(xué)習(xí)在手寫(xiě)體字符識(shí)別中的應(yīng)用:
Bengio等人運(yùn)用統(tǒng)計(jì)學(xué)習(xí)理論和大量的實(shí)驗(yàn)工作證明了深度學(xué)習(xí)算法非常具有潛力,說(shuō)明數(shù)據(jù)中間層表示可以被來(lái)自不同分布而相關(guān)的任務(wù)和樣例共享,產(chǎn)生更好的學(xué)習(xí)效果,并且在有62個(gè)類(lèi)別的大規(guī)模手寫(xiě)體字符識(shí)別場(chǎng)景上進(jìn)行實(shí)驗(yàn),用多任務(wù)場(chǎng)景和擾動(dòng)樣例來(lái)得到分布外樣例,并得到非常好的實(shí)驗(yàn)結(jié)果。Lee等人對(duì)RBM進(jìn)行拓展,學(xué)習(xí)到的模型使其具有稀疏性,可用于有效地學(xué)習(xí)數(shù)字字符和自然圖像特征。Hinton等人關(guān)于深度學(xué)習(xí)的研究說(shuō)明了如何訓(xùn)練深度s型神經(jīng)網(wǎng)絡(luò)來(lái)產(chǎn)生對(duì)手寫(xiě)體數(shù)字文本有用的表示,用到的主要思想是貪婪逐層預(yù)訓(xùn)練RBM之后再進(jìn)行微調(diào)。
3、 深度學(xué)習(xí)在行人檢測(cè)中的應(yīng)用
將CNN應(yīng)用到行人檢測(cè)中,提出一種聯(lián)合深度神經(jīng)網(wǎng)絡(luò)模型(unified deep net,UDN)。輸入層有3個(gè)通道,均為對(duì)YUV空間進(jìn)行相關(guān)變換得到,實(shí)驗(yàn)結(jié)果表明在此實(shí)驗(yàn)平臺(tái)前提下,此輸入方式較灰色像素輸入方式正確率提高8%。第一層卷積采用64個(gè)不同卷積核,初始化采用Gabor濾波器,第二層卷積采用不同尺度的卷積核,提取人體的不同部位的具體特征,訓(xùn)練過(guò)程作者采用聯(lián)合訓(xùn)練方法。最終實(shí)驗(yàn)結(jié)果在Caltech及ETH 數(shù)據(jù)集上錯(cuò)失率較傳統(tǒng)的人體檢測(cè)HOG-SVM算法均有明顯下降,在Caltech庫(kù)上較目前最好的算法錯(cuò)失率降低9%。
4、 深度學(xué)習(xí)在視頻分類(lèi)及行為識(shí)別中的應(yīng)用
A. Karpathy等基于卷積神經(jīng)網(wǎng)絡(luò)提供了一種應(yīng)用于大規(guī)模視頻分類(lèi)上的經(jīng)驗(yàn)評(píng)估模型,將Sports-1M數(shù)據(jù)集的100萬(wàn)段YouTube視頻數(shù)據(jù)分為487類(lèi)。該模型使用4種時(shí)空信息融合方法用于卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,融合方法包括單幀(single frame)、不相鄰兩幀(late fusion)、相鄰多幀(early fusion)以及多階段相鄰多幀(slow fusion);此外提出了一種多分辨率的網(wǎng)絡(luò)結(jié)構(gòu),大大提升了神經(jīng)網(wǎng)絡(luò)應(yīng)用于大規(guī)模數(shù)據(jù)時(shí)的訓(xùn)練速度。該模型在Sports-1M上的分類(lèi)準(zhǔn)確率達(dá)63.9%,相比于基于人工特征的方法(55.3%),有很大提升。此外,該模型表現(xiàn)出較好的泛化能力,單獨(dú)使用slow fusion融合方法所得模型在UCF-101動(dòng)作識(shí)別數(shù)據(jù)集上的識(shí)別率為65.4%,而該數(shù)據(jù)集的基準(zhǔn)識(shí)別率為43.9%。
S. Ji等提出一個(gè)三維卷積神經(jīng)網(wǎng)絡(luò)模型用于行為識(shí)別。該模型通過(guò)在空間和時(shí)序上運(yùn)用三維卷積提取特征,從而獲得多個(gè)相鄰幀間的運(yùn)動(dòng)信息。該模型基于輸入幀生成多個(gè)特征圖通道,將所有通道的信息結(jié)合獲得最后的特征表示。該三維卷積神經(jīng)網(wǎng)絡(luò)模型在TRECVID數(shù)據(jù)上優(yōu)于其他方法,表明該方法對(duì)于真實(shí)環(huán)境數(shù)據(jù)有較好的效果;該模型在KTH數(shù)據(jù)上的表現(xiàn),遜于其他方法,原因是為了簡(jiǎn)化計(jì)算而縮小了輸入數(shù)據(jù)的分辨率。
M. Baccouche等提出一種時(shí)序的深度學(xué)習(xí)模型,可在沒(méi)有任何先驗(yàn)知識(shí)的前提下,學(xué)習(xí)分類(lèi)人體行為。模型的第一步,是將卷積神經(jīng)網(wǎng)絡(luò)拓展到三維,自動(dòng)學(xué)習(xí)時(shí)空特征。接下來(lái)使用RNN方法訓(xùn)練分類(lèi)每個(gè)序列。該模型在KTH上的測(cè)試結(jié)果優(yōu)于其他已知深度模型,KTH1和KTH2上的精度分別為94.39%和92.17%。
七、 深度學(xué)習(xí)存在的問(wèn)題及未來(lái)研究方向
1、 深度學(xué)習(xí)目前存在的問(wèn)題:
?。?)、理論問(wèn)題:深度學(xué)習(xí)在理論方面存在的困難主要有兩個(gè),第一個(gè)是關(guān)于統(tǒng)計(jì)學(xué)習(xí),另一個(gè)和計(jì)算量相關(guān)。相對(duì)淺層學(xué)習(xí)模型來(lái)說(shuō),深度學(xué)習(xí)模型對(duì)非線(xiàn)性函數(shù)的表示能力更好。根據(jù)通用的神經(jīng)網(wǎng)絡(luò)逼近理論,對(duì)任何一個(gè)非線(xiàn)性函數(shù)來(lái)說(shuō),都可以由一個(gè)淺層模型和一個(gè)深度學(xué)習(xí)模型很好的表示,但相對(duì)淺層模型,深度學(xué)習(xí)模型需要較少的參數(shù)。關(guān)于深度學(xué)習(xí)訓(xùn)練的計(jì)算復(fù)雜度也是我們需要關(guān)心的問(wèn)題,即我們需要多大參數(shù)規(guī)模和深度的神經(jīng)網(wǎng)絡(luò)模型去解決相應(yīng)的問(wèn)題,在對(duì)構(gòu)建好的網(wǎng)絡(luò)進(jìn)行訓(xùn)練時(shí),需要多少訓(xùn)練樣本才能足以使網(wǎng)絡(luò)滿(mǎn)足擬合狀態(tài)。另外,網(wǎng)絡(luò)模型訓(xùn)練所需要消耗的計(jì)算資源很難預(yù)估,對(duì)網(wǎng)絡(luò)的優(yōu)化技術(shù)仍有待進(jìn)步。由于深度學(xué)習(xí)模型的代價(jià)函數(shù)都是非凸的,這也造成理論研究方面的困難。
(2)、建模問(wèn)題:在解決深層學(xué)習(xí)理論和計(jì)算困難的同時(shí),如何構(gòu)建新的分層網(wǎng)絡(luò)模型,既能夠像傳統(tǒng)深層模型一樣能夠有效的抽取數(shù)據(jù)的潛在特征,又能夠像支持向量機(jī)一樣便于進(jìn)行理論分析,另外,如何針對(duì)不同的應(yīng)用問(wèn)題構(gòu)建合適的深層模型同樣是一個(gè)很有挑戰(zhàn)性的問(wèn)題。現(xiàn)在用于圖像和語(yǔ)言的深度模型都擁有相似卷積和降采樣的功能模塊,研究人員在聲學(xué)模型方面也在進(jìn)行相應(yīng)的探索,能不能找到一個(gè)統(tǒng)一的深度模型適用于圖像,語(yǔ)音和自然語(yǔ)言的處理仍需要探索。
(3)、工程應(yīng)用問(wèn)題:在深度學(xué)習(xí)的工程應(yīng)用問(wèn)題上,如何利用現(xiàn)有的大規(guī)模并行處理計(jì)算平臺(tái)進(jìn)行大規(guī)模樣本數(shù)據(jù)訓(xùn)練是各個(gè)進(jìn)行深度學(xué)習(xí)研發(fā)公司首要解決的難題。由于像Hadoop這樣的傳統(tǒng)大數(shù)據(jù)處理平臺(tái)的延遲過(guò)高,不適用于深度學(xué)習(xí)的頻繁迭代訓(xùn)練過(guò)程?,F(xiàn)在最多采用的深度網(wǎng)絡(luò)訓(xùn)練技術(shù)是隨機(jī)梯度下降算法。這種算法不適于在多臺(tái)計(jì)算機(jī)間并行運(yùn)算,即使采用GPU加速技術(shù)對(duì)深度神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練也是需要花費(fèi)漫長(zhǎng)的時(shí)間。隨著互聯(lián)網(wǎng)行業(yè)的高速發(fā)展,特別是數(shù)據(jù)挖掘的需要,往往面對(duì)的是海量需要處理的數(shù)據(jù)。由于深度學(xué)習(xí)網(wǎng)絡(luò)訓(xùn)練速度緩慢無(wú)法滿(mǎn)足互聯(lián)網(wǎng)應(yīng)用的需求。
2、 深度學(xué)習(xí)未來(lái)研究方向:深度學(xué)習(xí)算法在計(jì)算機(jī)視覺(jué)(圖像識(shí)別、視頻識(shí)別等)和語(yǔ)音識(shí)別中的應(yīng)用,尤其是大規(guī)模數(shù)據(jù)集下的應(yīng)用取得突破性的進(jìn)展,但仍有以下問(wèn)題值得進(jìn)一步研究:
?。?)、無(wú)標(biāo)記數(shù)據(jù)的特征學(xué)習(xí)
目前,標(biāo)記數(shù)據(jù)的特征學(xué)習(xí)仍然占據(jù)主導(dǎo)地位,而真實(shí)世界存在著海量的無(wú)標(biāo)記數(shù)據(jù),將這些無(wú)標(biāo)記數(shù)據(jù)逐一添加人工標(biāo)簽,顯然是不現(xiàn)實(shí)的。所以,隨著數(shù)據(jù)集和存儲(chǔ)技術(shù)的發(fā)展,必將越來(lái)越重視對(duì)無(wú)標(biāo)記數(shù)據(jù)的特征學(xué)習(xí),以及將無(wú)標(biāo)記數(shù)據(jù)進(jìn)行自動(dòng)添加標(biāo)簽技術(shù)的研究。
(2)、模型規(guī)模與訓(xùn)練速度
訓(xùn)練精度之間的權(quán)衡。一般地,相同數(shù)據(jù)集下,模型規(guī)模越大,訓(xùn)練精度越高,訓(xùn)練速度會(huì)越慢。例如一些模型方法采用ReLU非線(xiàn)性變換、GPU運(yùn)算,在保證精度的前提下,往往需要訓(xùn)練5~7d。雖然離線(xiàn)訓(xùn)練并不影響訓(xùn)練之后模型的應(yīng)用,但是對(duì)于模型優(yōu)化,諸如模型規(guī)模調(diào)整、超參數(shù)設(shè)置、訓(xùn)練時(shí)調(diào)試等問(wèn)題,訓(xùn)練時(shí)間會(huì)嚴(yán)重影響其效率。故而,如何在保證一定的訓(xùn)練精度的前提下,提高訓(xùn)練速度,依然是深度學(xué)習(xí)方向研究的課題之一。
?。?)、理論分析
需要更好地理解深度學(xué)習(xí)及其模型,進(jìn)行更加深入的理論研究。深度學(xué)習(xí)模型的訓(xùn)練為什么那么困難?這仍然是一個(gè)開(kāi)放性問(wèn)題。一個(gè)可能的答案是深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)有許多層,每一層由多個(gè)非線(xiàn)性神經(jīng)元組成,使得整個(gè)深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)的非線(xiàn)性程度更強(qiáng),減弱了基于梯度的尋優(yōu)方法的有效性;另一個(gè)可能的答案是局部極值的數(shù)量和結(jié)構(gòu)隨著深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)深度的增加而發(fā)生定性改變,使得訓(xùn)練模型變得更加困難。造成深度學(xué)習(xí)訓(xùn)練困難的原因究竟是由于用于深度學(xué)習(xí)模型的監(jiān)督訓(xùn)練準(zhǔn)則大量存在不好的局部極值,還是因?yàn)橛?xùn)練準(zhǔn)則對(duì)優(yōu)化算法來(lái)說(shuō)過(guò)于復(fù)雜,這是值得探討的問(wèn)題。此外,對(duì)堆棧自編碼網(wǎng)絡(luò)學(xué)習(xí)中的模型是否有合適的概率解釋?zhuān)芊竦玫缴疃葘W(xué)習(xí)模型中似然函數(shù)梯度的小方差和低偏差估計(jì),能否同時(shí)訓(xùn)練所有的深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)層,除了重構(gòu)誤差外,是否還存在其他更合適的可供選擇的誤差指標(biāo)來(lái)控制深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程,是否存在容易求解的RBM配分函數(shù)的近似函數(shù),這些問(wèn)題還有待未來(lái)研究??紤]引入退火重要性抽樣來(lái)解決局部極值問(wèn)題,不依賴(lài)于配分函數(shù)的學(xué)習(xí)算法也值得嘗試。
(4)、數(shù)據(jù)表示與模型
數(shù)據(jù)的表示方式對(duì)學(xué)習(xí)性能具有很大的影響,除了局部表示、分布表示和稀疏分布表示外,可以充分利用表示理論研究成果。是否還存在其他形式的數(shù)據(jù)表示方式,是否可以通過(guò)在學(xué)習(xí)的表示上施加一些形式的稀疏罰從而對(duì)RBM和自編碼模型的訓(xùn)練性能起到改進(jìn)作用,以及如何改進(jìn)。是否可以用便于提取好的表示并且包含更簡(jiǎn)單優(yōu)化問(wèn)題的凸模型代替RBM和自編碼模型;不增加隱單元的數(shù)量,用非參數(shù)形式的能量函數(shù)能否提高RBM的容量等,未來(lái)還需要進(jìn)一步探討這些問(wèn)題。此外,除了卷積神經(jīng)網(wǎng)絡(luò)、DBN和堆棧自編碼網(wǎng)絡(luò)之外,是否還存在其他可以用于有效訓(xùn)練的深度學(xué)習(xí)模型,有沒(méi)有可能改變所用的概率模型使訓(xùn)練變得更容易,是否存在其他有效的或者理論上有效的方法學(xué)習(xí)深度學(xué)習(xí)模型,這也是未來(lái)需要進(jìn)一步研究的問(wèn)題?,F(xiàn)有的方法,如DBN.HMM和DBN—CRF,在利用DBN的能力方面只是簡(jiǎn)單的堆棧疊加基本模型,還沒(méi)有充分發(fā)掘出DBN的優(yōu)勢(shì),需要研究DBN的結(jié)構(gòu)特點(diǎn),充分利用DBN的潛在優(yōu)勢(shì),找到更好的方法建立數(shù)據(jù)的深度學(xué)習(xí)模型,可以考慮將現(xiàn)有的社會(huì)網(wǎng)絡(luò)、基因調(diào)控網(wǎng)絡(luò)、結(jié)構(gòu)化建模理論以及稀疏化建模等理論運(yùn)用其中。
(5)、特征提取
除了高斯--伯努利模型之外,還有哪些模型能用來(lái)從特征中提取重要的判別信息,未來(lái)需要提出有效的理論指導(dǎo)在每層搜索更加合適的特征提取模型。自編碼模型保持了輸入的信息,這些信息在后續(xù)的訓(xùn)練過(guò)程中可能會(huì)起到重要作用,未來(lái)需要研究用CD訓(xùn)練的RBM是否保持了輸入的信息,在沒(méi)有保持輸入信息的情況下如何進(jìn)行修正。樹(shù)和圖等結(jié)構(gòu)的數(shù)據(jù)由于大小和結(jié)構(gòu)可變而不容易用向量表示其中包含的信息,如何泛化深度學(xué)習(xí)模型來(lái)表示這些信息,也是未來(lái)需要研究的問(wèn)題。盡管當(dāng)前的產(chǎn)生式預(yù)訓(xùn)練加判別式微調(diào)學(xué)習(xí)策略看起來(lái)對(duì)許多任務(wù)都運(yùn)行良好,但是在某些語(yǔ)言識(shí)別等其他任務(wù)中卻失敗了,對(duì)這些任務(wù),產(chǎn)生式預(yù)訓(xùn)練階段的特征提取似乎能很好地描述語(yǔ)音變化,但是包含的信息不足以區(qū)分不同的語(yǔ)言,未來(lái)需要提出新的學(xué)習(xí)策略,對(duì)這些學(xué)習(xí)任務(wù)提取合適的特征,這可以在很大程度上減小當(dāng)前深度學(xué)習(xí)系統(tǒng)所需模型的大小。
?。?)、訓(xùn)練與優(yōu)化求解
為什么隨機(jī)初始化的深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)采用基于梯度的算法訓(xùn)練總是不能成功,產(chǎn)生式預(yù)訓(xùn)練方法為什么有效?未來(lái)需要研究訓(xùn)練深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)的貪婪逐層預(yù)訓(xùn)練算法到底在最小化訓(xùn)練數(shù)據(jù)的似然函數(shù)方面結(jié)果如何,是否過(guò)于貪婪,以及除了貪婪逐層預(yù)訓(xùn)練的許多變形和半監(jiān)督嵌入算法之外,還有什么其他形式的算法能得到深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)的局部訓(xùn)練信息。此外,無(wú)監(jiān)督逐層訓(xùn)練過(guò)程對(duì)訓(xùn)練深度學(xué)習(xí)模型起到幫助作用,但有實(shí)驗(yàn)表明訓(xùn)練仍會(huì)陷入局部極值并且無(wú)法有效利用數(shù)據(jù)集中的所有信息,能否提出用于深度學(xué)習(xí)的更有效的優(yōu)化策略來(lái)突破這種限制,基于連續(xù)優(yōu)化的策略能否用于有效改進(jìn)深度學(xué)習(xí)的訓(xùn)練過(guò)程,這些問(wèn)題還需要繼續(xù)研究。二階梯度方法和自然梯度方法在理論研究中可證明對(duì)訓(xùn)練求解深度學(xué)習(xí)模型有效,但是這些算法還不是深度結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)優(yōu)化的標(biāo)準(zhǔn)算法,未來(lái)還需要進(jìn)一步驗(yàn)證和改進(jìn)這些算法,研究其能否代替微批次隨機(jī)梯度下降類(lèi)算法。當(dāng)前的基于微批次隨機(jī)梯度優(yōu)化算法難以在計(jì)算機(jī)上并行處理,目前最好的解決方法是用GPU來(lái)加速學(xué)習(xí)過(guò)程,但是單個(gè)機(jī)器的GPU無(wú)法用于處理大規(guī)模語(yǔ)音識(shí)別和類(lèi)似的大型數(shù)據(jù)集的學(xué)習(xí),因此未來(lái)需要提出理論上可行的并行學(xué)習(xí)算法來(lái)訓(xùn)練深度學(xué)習(xí)模型。
?。?)、與其他方法的融合
從上述應(yīng)用實(shí)例中可發(fā)現(xiàn),單一的深度學(xué)習(xí)方法,往往并不能帶來(lái)最好的效果,通常融合其他方法或多種方法進(jìn)行平均打分,會(huì)帶來(lái)更高的精確率。因此,深度學(xué)習(xí)方法與其他方法的融合,具有一定的研究意義。
?。?)、研究拓展
當(dāng)深度模型沒(méi)有有效的自適應(yīng)技術(shù),在測(cè)試數(shù)據(jù)集分布不同于訓(xùn)練集分布時(shí),它們很難得到比常用模型更好的性能,因此未來(lái)有必要提出用于深度學(xué)習(xí)模型的自適應(yīng)技術(shù)以及對(duì)高維數(shù)據(jù)具有更強(qiáng)魯棒性的更先進(jìn)的算法。目前的深度學(xué)習(xí)模型訓(xùn)練算法包含許多階段,而在在線(xiàn)學(xué)習(xí)場(chǎng)景中一旦進(jìn)入微調(diào)階段就有可能陷入局部極值,因此目前的算法對(duì)于在線(xiàn)學(xué)習(xí)環(huán)境是不可行的。未來(lái)需要研究是否存在訓(xùn)練深度學(xué)習(xí)的完全在線(xiàn)學(xué)習(xí)過(guò)程能夠一直具有無(wú)監(jiān)督學(xué)習(xí)成分。DBN模型很適合半監(jiān)督學(xué)習(xí)場(chǎng)景和自教學(xué)習(xí)場(chǎng)景,當(dāng)前的深度學(xué)習(xí)算法如何應(yīng)用于這些場(chǎng)景并且在性能上優(yōu)于現(xiàn)有的半監(jiān)督學(xué)習(xí)算法,如何結(jié)合監(jiān)督和無(wú)監(jiān)督準(zhǔn)則來(lái)學(xué)習(xí)輸入的模型表示,是否存在一個(gè)深度使得深度學(xué)習(xí)模型的計(jì)算足夠接近人類(lèi)在人工智能任務(wù)中表現(xiàn)出的水平,這也是未來(lái)需要進(jìn)一步研究的問(wèn)題。
評(píng)論
查看更多