高性能算法-深度學(xué)習(xí)_第1頁
高性能算法-深度學(xué)習(xí)_第2頁
高性能算法-深度學(xué)習(xí)_第3頁
高性能算法-深度學(xué)習(xí)_第4頁
高性能算法-深度學(xué)習(xí)_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

..深度學(xué)習(xí)算法的研究與實(shí)現(xiàn)..摘要深度學(xué)習(xí)近幾年開展迅速,取得了突破性的進(jìn)展。借助于深度學(xué)習(xí)算法,人類終于找到了如何處理"抽象概念〞這個(gè)亙古難題的方法。本文首先介紹了深度學(xué)習(xí)的背景,然后對(duì)深度學(xué)習(xí)的研究過程以及開展現(xiàn)狀進(jìn)展了綜述。接下來本文介紹了深度學(xué)習(xí)的根本原理,并在此根底上介紹了深度學(xué)習(xí)目前應(yīng)用比擬成功的幾個(gè)領(lǐng)域的應(yīng)用情況。在本文的最后,本文利用伯克利大學(xué)開發(fā)的Caffe深度學(xué)習(xí)平臺(tái)進(jìn)展了手寫數(shù)字字符的識(shí)別的工程。數(shù)據(jù)來源于MNIST數(shù)據(jù)庫,在經(jīng)歷生成符合Caffe的LMDB格式數(shù)據(jù)集、編寫深度學(xué)習(xí)模型文件、本文編寫網(wǎng)絡(luò)求解文件后,通過調(diào)用Caffe可執(zhí)行文件對(duì)深度網(wǎng)絡(luò)進(jìn)展訓(xùn)練及測(cè)試,并得到最終的實(shí)驗(yàn)結(jié)果。在經(jīng)歷了1萬次迭代后,實(shí)驗(yàn)結(jié)果顯示卷積神經(jīng)網(wǎng)絡(luò)構(gòu)成的深度學(xué)習(xí)網(wǎng)絡(luò)可以到達(dá)99%以上的識(shí)別,顯示出深度學(xué)習(xí)強(qiáng)大的識(shí)別能力。關(guān)鍵字:深度學(xué)習(xí),Caffe,手寫數(shù)字識(shí)別ABSTRACTDeeplearninghasdevelopedrapidlyinrecentyears,andhasmadebreakthroughprogress.WiththehelpoftheDeepLearningalgorithm,humanfoundawayhowtodealwiththeabstractconceptinourmonproblem.ThispaperfirstlyintroducesthebackgroundoftheDeepLearningstudy,andthensummarizestheresearchprocessandthedevelopmentoftheDeepLearning.Next,thispaperintroducesthebasicprinciplesofdeeplearning,andonthebasisofthat,theapplicationofthedeeplearningwasalsointroducedinsomeexcellentarea.Next,thispaperusestheCaffedeeplearningplatformdevelopedbyBerkeleyUniversitytocarryouttherecognitionofhandwrittennumeralcharacters.ThedataisfromtheMNISTdatabase,throughtheprocessofgeneratingLMDBformatdataset,writingdeeplearningmodelfile,writingsolverfile,finallybycallingtheCaffeexecutablefiletotrainingandtestingofthedeeplearningnetwork,wegetthefinalexperimentalresults.After10thousanditerations,theexperimentalresultsshowthatthedeeplearningnetworkposedofconvolutionalneuralnetworkscanreachmorethan99%oftherightrate,showingthestrongabilityofdeeplearning.Keywords:DeepLearning,Caffe,Handwrittennumeralcharacterrecognition目錄1摘要12ABSTRACT23背景介紹24研究過程與開展現(xiàn)狀24.1研究過程24.1.1淺層學(xué)習(xí)和深度學(xué)習(xí)24.1.2深度學(xué)習(xí)與人工神經(jīng)網(wǎng)絡(luò)24.2開展現(xiàn)狀24.2.1初始化方法、網(wǎng)絡(luò)層數(shù)和激活函數(shù)的選擇24.2.2模型構(gòu)造24.2.3學(xué)習(xí)算法25深度學(xué)習(xí)根本原理25.1深度學(xué)習(xí)的根本思想25.2深度學(xué)習(xí)訓(xùn)練過程25.3自動(dòng)編碼機(jī)25.4卷積神經(jīng)網(wǎng)絡(luò)25.4.1卷積神經(jīng)網(wǎng)絡(luò)的構(gòu)造25.4.2參數(shù)減少與權(quán)值共享25.4.3卷積神經(jīng)網(wǎng)絡(luò)總結(jié)26應(yīng)用領(lǐng)域26.1語音識(shí)別26.2圖像識(shí)別26.3自然語言處理26.4搜索廣告CTR預(yù)估27深度學(xué)習(xí)實(shí)戰(zhàn)演練27.1實(shí)驗(yàn)壞境的搭建27.1.1深度學(xué)習(xí)平臺(tái)27.1.2安裝依賴庫27.1.3安裝Caffe27.2實(shí)驗(yàn)概述27.3實(shí)驗(yàn)過程27.3.1生成指定的數(shù)據(jù)格式文件27.3.2編寫深度網(wǎng)絡(luò)模型文件27.3.3編寫網(wǎng)絡(luò)求解文件27.4實(shí)驗(yàn)結(jié)果28總結(jié)29參考文獻(xiàn)210附錄〔源代碼〕2..背景介紹人工智能很久以來就是人類最美好的夢(mèng)想之一。雖然計(jì)算機(jī)技術(shù)已經(jīng)取得了長(zhǎng)足的進(jìn)步,但是到目前為止,還沒有一臺(tái)電腦能產(chǎn)生"自我〞的意識(shí)。圖靈在1950年的論文里,提出圖靈試驗(yàn)的設(shè)想,即,隔墻對(duì)話,你將不知道與你談話的,是人還是電腦。這無疑給計(jì)算機(jī),尤其是人工智能,預(yù)設(shè)了一個(gè)很高的期望值。但是半個(gè)世紀(jì)過去了,人工智能的進(jìn)展,遠(yuǎn)遠(yuǎn)沒有到達(dá)圖靈試驗(yàn)的標(biāo)準(zhǔn)。這不僅讓多年翹首以待的人們,心灰意冷,認(rèn)為人工智能是忽悠,相關(guān)領(lǐng)域是"偽科學(xué)〞。自2006年以來,在機(jī)器學(xué)習(xí)領(lǐng)域,取得了突破性的進(jìn)展。圖靈試驗(yàn),至少不是那么可望而不可及了。至于技術(shù)手段,不僅僅依賴于云計(jì)算對(duì)大數(shù)據(jù)的并行處理能力,而且依賴于算法。這個(gè)算法就是深度學(xué)習(xí),借助于DeepLearning算法,人類終于找到了如何處理"抽象概念〞這個(gè)亙古難題的方法,下面本文詳細(xì)介紹一下機(jī)器學(xué)習(xí)的開展背景。人工智能概念圖機(jī)器學(xué)習(xí)是一門專門研究計(jì)算機(jī)怎樣模擬或?qū)崿F(xiàn)人類的學(xué)習(xí)行為,以獲取新的知識(shí)或技能,重新組織已有的知識(shí)構(gòu)造使之不斷改善自身的性能的學(xué)科。機(jī)器能否像人類一樣能具有學(xué)習(xí)能力呢?1959年美國(guó)的塞繆爾(Samuel)設(shè)計(jì)了一個(gè)下棋程序,這個(gè)程序具有學(xué)習(xí)能力,它可以在不斷的對(duì)弈中改善自己的棋藝。4年后,這個(gè)程序戰(zhàn)勝了設(shè)計(jì)者本人。又過了3年,這個(gè)程序戰(zhàn)勝了美國(guó)一個(gè)保持8年之久的常勝不敗的冠軍。這個(gè)程序向人們展示了機(jī)器學(xué)習(xí)的能力。機(jī)器學(xué)習(xí)雖然開展了幾十年,但還是存在很多沒有良好解決的問題,目前我們通過機(jī)器學(xué)習(xí)去解決問題的思路大致如下:通過傳感器〔例如CMOS〕來獲得數(shù)據(jù)預(yù)處理、特征提取、特征選擇推理、預(yù)測(cè)或者識(shí)別最后一個(gè)局部,也就是機(jī)器學(xué)習(xí)的局部,絕大局部的工作是在這方面做的,存在很多的和研究。而中間的三局部,概括起來就是特征表達(dá)。良好的特征表達(dá),對(duì)最終算法的準(zhǔn)確性起了非常關(guān)鍵的作用,而且系統(tǒng)主要的計(jì)算和測(cè)試工作都耗在這一大局部。但這塊實(shí)際中一般都是人工完成的,靠人工提取特征。機(jī)器學(xué)習(xí)在開展的過程中出現(xiàn)了不少強(qiáng)大的特征,具有大小、尺度和旋轉(zhuǎn)等的不變性以及可區(qū)分性。例如SIFT是局部圖像特征描述子研究領(lǐng)域一項(xiàng)里程碑式的工作。由于SIFT對(duì)尺度、旋轉(zhuǎn)以及一定視角和光照變化等圖像變化都具有不變性,并且SIFT具有很強(qiáng)的可區(qū)分性,確實(shí)讓很多問題的解決變?yōu)榭赡?,但它也不是萬能的。然而,手工地選取特征是一件非常費(fèi)力的方法,能不能選取好很大程度上靠經(jīng)歷和運(yùn)氣,而且它的調(diào)節(jié)需要大量的時(shí)間。既然手工選取特征不太好,那么能不能自動(dòng)地學(xué)習(xí)一些特征呢?答案是能,深度學(xué)習(xí)就是用來干這個(gè)事情的,這也就是深度學(xué)習(xí)提出的背景。研究過程與開展現(xiàn)狀研究過程淺層學(xué)習(xí)和深度學(xué)習(xí)淺層學(xué)習(xí)是機(jī)器學(xué)習(xí)的第一次浪潮。20世紀(jì)80年代末期,用于人工神經(jīng)網(wǎng)絡(luò)的反向傳播算法的創(chuàng)造,給機(jī)器學(xué)習(xí)帶來了希望,掀起了基于統(tǒng)計(jì)模型的機(jī)器學(xué)習(xí)熱潮。這個(gè)熱潮一直持續(xù)到今天。人們發(fā)現(xiàn),利用BP算法可以讓一個(gè)人工神經(jīng)網(wǎng)絡(luò)模型從大量訓(xùn)練樣本中學(xué)習(xí)統(tǒng)計(jì)規(guī)律,從而對(duì)未知事件做預(yù)測(cè)。這種基于統(tǒng)計(jì)的機(jī)器學(xué)習(xí)方法比起過去基于人工規(guī)那么的系統(tǒng),在很多方面顯出優(yōu)越性。這個(gè)時(shí)候的人工神經(jīng)網(wǎng)絡(luò),雖也被稱作多層感知機(jī),但實(shí)際是種只含有一層隱含層節(jié)點(diǎn)的淺層模型。20世紀(jì)90年代,各種各樣的淺層機(jī)器學(xué)習(xí)模型相繼被提出,例如支撐向量機(jī)、Boosting、最大熵方法等。這些模型的構(gòu)造根本上可以看成帶有一層隱層節(jié)點(diǎn)〔如SVM、Boosting〕,或沒有隱層節(jié)點(diǎn)。這些模型無論是在理論分析還是應(yīng)用中都獲得了巨大的成功。相比之下,由于理論分析的難度大,訓(xùn)練方法又需要很多經(jīng)歷和技巧,這個(gè)時(shí)期淺層人工神經(jīng)網(wǎng)絡(luò)反而相對(duì)寂靜。深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的第二次浪潮。2006年,加拿大多倫多大學(xué)教授、機(jī)器學(xué)習(xí)領(lǐng)域的泰斗GeoffreyHinton和他的學(xué)生在Science上發(fā)表了一篇文章,開啟了深度學(xué)習(xí)在學(xué)術(shù)界和工業(yè)界的浪潮。這篇文章有兩個(gè)主要觀點(diǎn):1〕多隱層的人工神經(jīng)網(wǎng)絡(luò)具有優(yōu)異的特征學(xué)習(xí)能力,學(xué)習(xí)得到的特征對(duì)數(shù)據(jù)有更本質(zhì)的刻畫,從而有利于可視化或分類;2〕深度神經(jīng)網(wǎng)絡(luò)在訓(xùn)練上的難度,可以通過"逐層初始化〞來有效克制,在這篇文章中,逐層初始化是通過無監(jiān)視學(xué)習(xí)實(shí)現(xiàn)的。當(dāng)前多數(shù)分類、回歸等學(xué)習(xí)方法為淺層構(gòu)造算法,其局限性在于有限樣本和計(jì)算單元情況下對(duì)復(fù)雜函數(shù)的表示能力有限,針對(duì)復(fù)雜分類問題其泛化能力受到一定制約。深度學(xué)習(xí)可通過學(xué)習(xí)一種深層非線性網(wǎng)絡(luò)構(gòu)造,實(shí)現(xiàn)復(fù)雜函數(shù)逼近,表征輸入數(shù)據(jù)分布式表示,并展現(xiàn)了強(qiáng)大的從少數(shù)樣本集中學(xué)習(xí)數(shù)據(jù)集本質(zhì)特征的能力。深度學(xué)習(xí)的實(shí)質(zhì),是通過構(gòu)建具有多隱層的機(jī)器學(xué)習(xí)模型和海量的訓(xùn)練數(shù)據(jù),來學(xué)習(xí)更有用的特征,從而最終提升分類或預(yù)測(cè)的準(zhǔn)確性。因此,"深度模型〞是手段,"特征學(xué)習(xí)〞是目的。區(qū)別于傳統(tǒng)的淺層學(xué)習(xí),深度學(xué)習(xí)的不同在于:1〕強(qiáng)調(diào)了模型構(gòu)造的深度,通常有5層、6層,甚至10多層的隱層節(jié)點(diǎn);2〕明確突出了特征學(xué)習(xí)的重要性,也就是說,通過逐層特征變換,將樣本在原空間的特征表示變換到一個(gè)新特征空間,從而使分類或預(yù)測(cè)更加容易。與人工規(guī)那么構(gòu)造特征的方法相比,利用大數(shù)據(jù)來學(xué)習(xí)特征,更能夠刻畫數(shù)據(jù)的豐富在信息。深度學(xué)習(xí)與人工神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)是機(jī)器學(xué)習(xí)研究中的一個(gè)新的領(lǐng)域,其動(dòng)機(jī)在于建立、模擬人腦進(jìn)展分析學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),它模仿人腦的機(jī)制來解釋數(shù)據(jù),例如圖像,聲音和文本。深度學(xué)習(xí)是無監(jiān)視學(xué)習(xí)的一種。深度學(xué)習(xí)的概念源于人工神經(jīng)網(wǎng)絡(luò)的研究。含多隱層的多層感知器就是一種深度學(xué)習(xí)構(gòu)造。深度學(xué)習(xí)通過組合低層特征形成更加抽象的高層表示屬性類別或特征,以發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示。深度學(xué)習(xí)本身算是機(jī)器學(xué)習(xí)的一個(gè)分支,簡(jiǎn)單可以理解為神經(jīng)網(wǎng)絡(luò)的開展。大約二三十年前,神經(jīng)網(wǎng)絡(luò)曾經(jīng)是機(jī)器學(xué)習(xí)領(lǐng)域特別熾熱的一個(gè)方向,但是后來確慢慢淡出了,原因包括以下幾個(gè)方面:1〕比擬容易過擬合,參數(shù)比擬難調(diào),而且需要不少技巧和經(jīng)歷;2〕訓(xùn)練速度比擬慢,在層次比擬少〔小于等于3〕的情況下效果并不比其它方法更優(yōu);所以中間有大約20多年的時(shí)間,神經(jīng)網(wǎng)絡(luò)被關(guān)注很少,這段時(shí)間根本上是SVM和Boosting算法的天下。但是,一個(gè)癡心的老先生Hinton,他堅(jiān)持了下來,并最終提成了一個(gè)實(shí)際可行的深度學(xué)習(xí)框架。深度學(xué)習(xí)與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)之間有一樣的地方也有很多不同。二者的一樣在于深度學(xué)習(xí)采用了神經(jīng)網(wǎng)絡(luò)相似的分層構(gòu)造,系統(tǒng)由包括輸入層、隱層〔多層〕、輸出層組成的多層網(wǎng)絡(luò),只有相鄰層節(jié)點(diǎn)之間有連接,同一層以及跨層節(jié)點(diǎn)之間相互無連接,每一層可以看作是一個(gè)Logistic回歸模型;這種分層構(gòu)造,是比擬接近人類大腦的構(gòu)造的。而為了克制神經(jīng)網(wǎng)絡(luò)訓(xùn)練中的問題,深度學(xué)習(xí)采用了與神經(jīng)網(wǎng)絡(luò)很不同的訓(xùn)練機(jī)制。傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中,采用的是反向傳播的方式進(jìn)展,簡(jiǎn)單來講就是采用迭代的算法來訓(xùn)練整個(gè)網(wǎng)絡(luò),隨機(jī)設(shè)定初值,計(jì)算當(dāng)前網(wǎng)絡(luò)的輸出,然后根據(jù)當(dāng)前輸出和標(biāo)簽之間的差去改變前面各層的參數(shù),直到收斂〔整體是一個(gè)梯度下降法〕。而深度學(xué)習(xí)整體上是一個(gè)逐層的訓(xùn)練機(jī)制。這樣做的原因是因?yàn)?,如果采用反向傳播的機(jī)制,對(duì)于一個(gè)深度網(wǎng)絡(luò)〔7層以上〕,殘差傳播到最前面的層已經(jīng)變得太小,出現(xiàn)所謂的梯度擴(kuò)散。開展現(xiàn)狀由于深度學(xué)習(xí)能夠很好地解決一些復(fù)雜問題,近年來許多研究人員對(duì)其進(jìn)展了深入研究,出現(xiàn)了許多有關(guān)深度學(xué)習(xí)研究的新進(jìn)展。下面分別從初始化方法、網(wǎng)絡(luò)層數(shù)和激活函數(shù)的選擇、模型構(gòu)造、學(xué)習(xí)算法和實(shí)際應(yīng)用這四個(gè)方面對(duì)近幾年深度學(xué)習(xí)研究的新進(jìn)展進(jìn)展介紹。初始化方法、網(wǎng)絡(luò)層數(shù)和激活函數(shù)的選擇研究人員試圖搞清網(wǎng)絡(luò)初始值的設(shè)定與學(xué)習(xí)結(jié)果之間的關(guān)系。Erhan等人在軌跡可視化研究中指出即使從相近的值開場(chǎng)訓(xùn)練深度構(gòu)造神經(jīng)網(wǎng)絡(luò),不同的初始值也會(huì)學(xué)習(xí)到不同的局部極值,同時(shí)發(fā)現(xiàn)用無監(jiān)視預(yù)訓(xùn)練初始化模型的參數(shù)學(xué)習(xí)得到的極值與隨機(jī)初始化學(xué)習(xí)得到的極值差異比擬大,用無監(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等人指出通過設(shè)定一組初始權(quán)值使得每一層深度構(gòu)造神經(jīng)網(wǎng)絡(luò)的Ja-cobian矩陣的奇異值接近于1,在很大程度上減小了監(jiān)視深度構(gòu)造神經(jīng)網(wǎng)絡(luò)和有預(yù)訓(xùn)練過程設(shè)定初值的深度構(gòu)造神經(jīng)網(wǎng)絡(luò)之間的學(xué)習(xí)結(jié)果差異。另外,用于深度學(xué)習(xí)的學(xué)習(xí)算法通常包含許多超參數(shù),文獻(xiàn)[2]給出了這些超參數(shù)的選擇指導(dǎo)性意見,推薦一些常用的超參數(shù),尤其適用于基于反向傳播的學(xué)習(xí)算法和基于梯度的優(yōu)化算法中;并討論了如何解決有許多可調(diào)超參數(shù)的問題,描述了實(shí)際用于有效訓(xùn)練常用的大型深度構(gòu)造神經(jīng)網(wǎng)絡(luò)的超參數(shù)的影響因素,指出深度學(xué)習(xí)訓(xùn)練中存在的困難。選擇不同的網(wǎng)絡(luò)隱層數(shù)和不同的非線性激活函數(shù)會(huì)對(duì)學(xué)習(xí)結(jié)果產(chǎn)生不同的影響。Glorot研究了隱層非線性映射關(guān)系的選擇和網(wǎng)絡(luò)的深度相互影響的問題,討論了隨機(jī)初始化的標(biāo)準(zhǔn)梯度下降算法用于深度構(gòu)造神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)得到不好的學(xué)習(xí)性能的原因。Glorot觀察不同非線性激活函數(shù)對(duì)學(xué)習(xí)結(jié)果的影響,得到LogisticS型激活單元的均值會(huì)驅(qū)使頂層和隱層進(jìn)入飽和,因而LogisticS型激活單元不適合用隨機(jī)初始化梯度算法學(xué)習(xí)深度構(gòu)造神經(jīng)網(wǎng)絡(luò);并據(jù)此提出了標(biāo)準(zhǔn)梯度下降算法的一種新的初始化方案來得到更快的收斂速度,為理解深度構(gòu)造神經(jīng)網(wǎng)絡(luò)使用和不使用無監(jiān)視預(yù)訓(xùn)練的性能差異作出了新的奉獻(xiàn)。Bengio從理論上說明深度學(xué)習(xí)構(gòu)造的表示能力隨著神經(jīng)網(wǎng)絡(luò)深度的增加以指數(shù)的形式增加,但是這種增加的額外表示能力會(huì)引起相應(yīng)局部極值數(shù)量的增加,使得在其中尋找最優(yōu)值變得困難。模型構(gòu)造DBN的構(gòu)造及其變種采用二值可見單元和隱單元RBM作為構(gòu)造單元的DBN,在MNIST等數(shù)據(jù)集上表現(xiàn)出很好的性能。近幾年,具有連續(xù)值單元的RBM,如mcRBM、mPoT模型和spike-and-slabRBM等已經(jīng)成功應(yīng)用。Spike-and-slabRBM中Spike表示以0為中心的離散概率分布,slab表示在連續(xù)域上的稠密均勻分布,可以用吉布斯采樣對(duì)spike-and-slabRBM進(jìn)展有效推斷,得到優(yōu)越的學(xué)習(xí)性能。和積網(wǎng)絡(luò)深度學(xué)習(xí)最主要的困難是配分函數(shù)的學(xué)習(xí),如何選擇深度構(gòu)造神經(jīng)網(wǎng)絡(luò)的構(gòu)造使得配分函數(shù)更容易計(jì)算是一個(gè)很困難的問題。Poon等人提出一種新的深度模型構(gòu)造,和積網(wǎng)絡(luò)(SPN),引入多層隱單元表示配分函數(shù),使得配分函數(shù)更容易計(jì)算。SPN是有根節(jié)點(diǎn)的有向無環(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和最近鄰方法。卷積神經(jīng)網(wǎng)絡(luò)文獻(xiàn)[4]研究了用生成式子抽樣單元組成的卷積神經(jīng)網(wǎng)絡(luò),在MNIST數(shù)字識(shí)別任務(wù)和Caltech-101目標(biāo)分類基準(zhǔn)任務(wù)上進(jìn)展實(shí)驗(yàn),顯示出非常好的學(xué)習(xí)性能。Huang等人提出一種新的卷積學(xué)習(xí)模型,即局部卷積RBM,利用對(duì)象類中的總體構(gòu)造學(xué)習(xí)特征,不假定圖像具有平穩(wěn)特征,在實(shí)際人臉數(shù)據(jù)集上進(jìn)展實(shí)驗(yàn),得到性能很好的實(shí)驗(yàn)結(jié)果。學(xué)習(xí)算法深度費(fèi)希爾映射方法Wong等人提出一種新的特征提取方法,正那么化深度費(fèi)希爾映射(RDFM)方法,學(xué)習(xí)從樣本空間到特征空間的顯式映射,根據(jù)Fisher準(zhǔn)那么用深度構(gòu)造神經(jīng)網(wǎng)絡(luò)提高特征的區(qū)分度。深度構(gòu)造神經(jīng)網(wǎng)絡(luò)具有深度非局部學(xué)習(xí)構(gòu)造,從更少的樣本中學(xué)習(xí)變化很大的數(shù)據(jù)集中的特征,顯示出比核方法更強(qiáng)的特征識(shí)別能力,同時(shí)RDFM方法的學(xué)習(xí)過程由于引入正那么化因子,解決了學(xué)習(xí)能力過強(qiáng)帶來的過擬合問題。在各種類型的數(shù)據(jù)集上進(jìn)展實(shí)驗(yàn),得到的結(jié)果說明了在深度學(xué)習(xí)微調(diào)階段運(yùn)用無監(jiān)視正那么化的必要性。非線性變換方法該變換方法使得多層感知器〔MLP〕網(wǎng)絡(luò)的每個(gè)隱神經(jīng)元的輸出具有零輸出和平均值上的零斜率,使學(xué)習(xí)MLP變得更容易。將學(xué)習(xí)整個(gè)輸入輸出映射函數(shù)的線性局部和非線性局部盡可能分開,用Shortcut權(quán)值建立線性映射模型,令Fisher信息陣接近對(duì)角陣,使得標(biāo)準(zhǔn)梯度接近自然梯度。通過實(shí)驗(yàn)證明非線性變換方法的有效性,該變換使得根本隨機(jī)梯度學(xué)習(xí)與當(dāng)前的學(xué)習(xí)算法在速度上不相上下,并有助于找到泛化性能更好的分類器。用這種非線性變換方法實(shí)現(xiàn)的深度無監(jiān)視自編碼模型進(jìn)展圖像分類和學(xué)習(xí)圖像的低維表示的實(shí)驗(yàn),說明這些變換有助于學(xué)習(xí)深度至少到達(dá)五個(gè)隱層的深度構(gòu)造神經(jīng)網(wǎng)絡(luò),證明了變換的有效性,提高了根本隨機(jī)梯度學(xué)習(xí)算法的速度,有助于找到泛化性更好的分類器。稀疏編碼對(duì)稱機(jī)算法Ranzato等人提出一種新的有效的無監(jiān)視學(xué)習(xí)算法,稀疏編碼對(duì)稱機(jī)(SESM),能夠在無須歸一化的情況下有效產(chǎn)生稀疏表示。SESM的損失函數(shù)是重構(gòu)誤差和稀疏罰函數(shù)的加權(quán)總和,基于該損失函數(shù)比擬和選擇不同的無監(jiān)視學(xué)習(xí)機(jī),提出一種迭代在線學(xué)習(xí)算法,并在理論和實(shí)驗(yàn)上將SESM與RBM和PCA進(jìn)展比擬,在手寫體數(shù)字識(shí)別MNIST數(shù)據(jù)集和實(shí)際圖像數(shù)據(jù)集上進(jìn)展實(shí)驗(yàn),說明該方法的優(yōu)越性。遷移學(xué)習(xí)算法在許多常見學(xué)習(xí)場(chǎng)景中訓(xùn)練和測(cè)試數(shù)據(jù)集中的類標(biāo)簽不同,必須保證訓(xùn)練和測(cè)試數(shù)據(jù)集中的相似性進(jìn)展遷移學(xué)習(xí)。Mesnil等人研究了用于無監(jiān)視遷移學(xué)習(xí)場(chǎng)景中學(xué)習(xí)表示的不同種類模型構(gòu)造,將多個(gè)不同構(gòu)造的層堆棧使用無監(jiān)視學(xué)習(xí)算法用于五個(gè)學(xué)習(xí)任務(wù),并研究了用于少量已標(biāo)記訓(xùn)練樣本的簡(jiǎn)單線性分類器堆棧深度構(gòu)造學(xué)習(xí)算法。Bengio研究了無監(jiān)視遷移學(xué)習(xí)問題,討論了無監(jiān)視預(yù)訓(xùn)練有用的原因,如何在遷移學(xué)習(xí)場(chǎng)景中利用無監(jiān)視預(yù)訓(xùn)練,以及在什么情況下需要注意從不同數(shù)據(jù)分布得到的樣例上的預(yù)測(cè)問題。學(xué)習(xí)率自適應(yīng)方法學(xué)習(xí)率自適應(yīng)方法可用于提高深度構(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ì)角低秩在線近似方法,并說明該算法在一些學(xué)習(xí)場(chǎng)景中能加速訓(xùn)練過程深度學(xué)習(xí)根本原理深度學(xué)習(xí)的根本思想假設(shè)我們有一個(gè)系統(tǒng)S,它有N層〔S1,…,SN〕,它的輸入是I,輸出是O,如果輸出O等于輸入I,即輸入I經(jīng)過這個(gè)系統(tǒng)變化之后沒有任何的信息損失,保持了不變,這意味著輸入I經(jīng)過每一層Si都沒有任何的信息損失,即在任何一層Si,它都是原有信息〔即輸入I〕的另外一種表示。我們需要自動(dòng)地學(xué)習(xí)特征,假設(shè)我們有一堆輸入I〔如一堆圖像或者文本〕,假設(shè)我們?cè)O(shè)計(jì)了一個(gè)系統(tǒng)S〔有N層〕,我們通過調(diào)整系統(tǒng)中參數(shù),使得它的輸出仍然是輸入I,那么我們就可以自動(dòng)地獲取得到輸入I的一系列層次特征。對(duì)于深度學(xué)習(xí)來說,其思想就是對(duì)堆疊多個(gè)層,也就是說這一層的輸出作為下一層的輸入。通過這種方式,就可以實(shí)現(xiàn)對(duì)輸入信息進(jìn)展分級(jí)表達(dá)了。另外,前面是假設(shè)輸出嚴(yán)格地等于輸入,這個(gè)限制太嚴(yán)格,我們可以略微地放松這個(gè)限制,例如我們只要使得輸入與輸出的差異盡可能地小即可,這個(gè)放松會(huì)導(dǎo)致另外一類不同的DeepLearning方法。深度學(xué)習(xí)訓(xùn)練過程如果對(duì)所有層同時(shí)訓(xùn)練,時(shí)間復(fù)雜度會(huì)太高;如果每次訓(xùn)練一層,偏差就會(huì)逐層傳遞。這會(huì)面臨跟上面監(jiān)視學(xué)習(xí)中相反的問題,會(huì)嚴(yán)重欠擬合〔因?yàn)樯疃染W(wǎng)絡(luò)的神經(jīng)元和參數(shù)太多了〕。2006年,Hinton提出了在非監(jiān)視數(shù)據(jù)上建立多層神經(jīng)網(wǎng)絡(luò)的一個(gè)有效方法,簡(jiǎn)單的說,分為兩步,一是每次訓(xùn)練一層網(wǎng)絡(luò),二是調(diào)優(yōu),使原始表示X向上生成的高級(jí)表示R和該高級(jí)表示R向下生成的X’盡可能一致。方法是:1〕首先逐層構(gòu)建單層神經(jīng)元,這樣每次都是訓(xùn)練一個(gè)單層網(wǎng)絡(luò)。2〕當(dāng)所有層訓(xùn)練完后,Hinton使用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è)大概的人臉圖像。DeepLearning訓(xùn)練過程具體如下:1〕使用自下上升非監(jiān)視學(xué)習(xí)〔就是從底層開場(chǎng),一層一層的往頂層訓(xùn)練〕:采用無標(biāo)定數(shù)據(jù)〔有標(biāo)定數(shù)據(jù)也可〕分層訓(xùn)練各層參數(shù),這一步可以看作是一個(gè)無監(jiān)視訓(xùn)練過程,是和傳統(tǒng)神經(jīng)網(wǎng)絡(luò)區(qū)別最大的局部〔這個(gè)過程可以看作是特征學(xué)習(xí)過程〕:體的,先用無標(biāo)定數(shù)據(jù)訓(xùn)練第一層,訓(xùn)練時(shí)先學(xué)習(xí)第一層的參數(shù)〔這一層可以看作是得到一個(gè)使得輸出和輸入差異最小的三層神經(jīng)網(wǎng)絡(luò)的隱層〕,由于模型容量的限制以及稀疏性約束,使得得到的模型能夠?qū)W習(xí)到數(shù)據(jù)本身的構(gòu)造,從而得到比輸入更具有表示能力的特征;在學(xué)習(xí)得到第N-1層后,將N-1層的輸出作為第N層的輸入,訓(xùn)練第N層,由此分別得到各層的參數(shù);2〕自頂向下的監(jiān)視學(xué)習(xí)〔就是通過帶標(biāo)簽的數(shù)據(jù)去訓(xùn)練,誤差自頂向下傳輸,對(duì)網(wǎng)絡(luò)進(jìn)展微調(diào)〕:基于第一步得到的各層參數(shù)進(jìn)一步調(diào)整個(gè)多層模型的參數(shù),這一步是一個(gè)有監(jiān)視訓(xùn)練過程;第一步類似神經(jīng)網(wǎng)絡(luò)的隨機(jī)初始化初值過程,由于深度學(xué)習(xí)的第一步不是隨機(jī)初始化,而是通過學(xué)習(xí)輸入數(shù)據(jù)的構(gòu)造得到的,因而這個(gè)初值更接近全局最優(yōu),從而能夠取得更好的效果;所以深度學(xué)習(xí)效果好很大程度上歸功于第一步的特征學(xué)習(xí)過程。自動(dòng)編碼機(jī)深度學(xué)習(xí)最簡(jiǎn)單的一種方法是利用人工神經(jīng)網(wǎng)絡(luò)的特點(diǎn),人工神經(jīng)網(wǎng)絡(luò)〔ANN〕本身就是具有層次構(gòu)造的系統(tǒng),如果給定一個(gè)神經(jīng)網(wǎng)絡(luò),我們假設(shè)其輸出與輸入是一樣的,然后訓(xùn)練調(diào)整其參數(shù),得到每一層中的權(quán)重。自然地,我們就得到了輸入I的幾種不同表示〔每一層代表一種表示〕,這些表示就是特征。自動(dòng)編碼器就是一種盡可能復(fù)現(xiàn)輸入信號(hào)的神經(jīng)網(wǎng)絡(luò)。為了實(shí)現(xiàn)這種復(fù)現(xiàn),自動(dòng)編碼器就必須捕捉可以代表輸入數(shù)據(jù)的最重要的因素,就像PCA那樣,找到可以代表原信息的主要成分。具體過程簡(jiǎn)單的說明如下:1〕給定無標(biāo)簽數(shù)據(jù),用非監(jiān)視學(xué)習(xí)學(xué)習(xí)特征:在我們之前的神經(jīng)網(wǎng)絡(luò)中,如第一個(gè)圖,我們輸入的樣本是有標(biāo)簽的,即〔input,target〕,這樣我們根據(jù)當(dāng)前輸出和target〔label〕之間的差去改變前面各層的參數(shù),直到收斂。但現(xiàn)在我們只有無標(biāo)簽數(shù)據(jù),也就是右邊的圖。那么這個(gè)誤差怎么得到呢?如上圖,我們將input輸入一個(gè)encoder編碼器,就會(huì)得到一個(gè)code,這個(gè)code也就是輸入的一個(gè)表示,那么我們?cè)趺粗肋@個(gè)code表示的就是input呢?我們加一個(gè)decoder解碼器,這時(shí)候decoder就會(huì)輸出一個(gè)信息,那么如果輸出的這個(gè)信息和一開場(chǎng)的輸入信號(hào)input是很像的〔理想情況下就是一樣的〕,那很明顯,我們就有理由相信這個(gè)code是靠譜的。所以,我們就通過調(diào)整encoder和decoder的參數(shù),使得重構(gòu)誤差最小,這時(shí)候我們就得到了輸入input信號(hào)的第一個(gè)表示了,也就是編碼code了。因?yàn)槭菬o標(biāo)簽數(shù)據(jù),所以誤差的來源就是直接重構(gòu)后與原輸入相比得到。2〕通過編碼器產(chǎn)生特征,然后訓(xùn)練下一層。這樣逐層訓(xùn)練:那上面我們就得到第一層的code,我們的重構(gòu)誤差最小讓我們相信這個(gè)code就是原輸入信號(hào)的良好表達(dá)了,或者牽強(qiáng)點(diǎn)說,它和原信號(hào)是一模一樣的〔表達(dá)不一樣,反映的是一個(gè)東西〕。那第二層和第一層的訓(xùn)練方式就沒有差異了,我們將第一層輸出的code當(dāng)成第二層的輸入信號(hào),同樣最小化重構(gòu)誤差,就會(huì)得到第二層的參數(shù),并且得到第二層輸入的code,也就是原輸入信息的第二個(gè)表達(dá)了。其他層就同樣的方法炮制就行了〔訓(xùn)練這一層,前面層的參數(shù)都是固定的,并且他們的decoder已經(jīng)沒用了,都不需要了〕。3〕有監(jiān)視微調(diào):經(jīng)過上面的方法,我們就可以得到很多層了。至于需要多少層〔或者深度需要多少,這個(gè)目前本身就沒有一個(gè)科學(xué)的評(píng)價(jià)方法〕需要自己試驗(yàn)調(diào)了。每一層都會(huì)得到原始輸入的不同的表達(dá)。當(dāng)然了,我們覺得它是越抽象越好了,就像人的視覺系統(tǒng)一樣。到這里,這個(gè)AutoEncoder還不能用來分類數(shù)據(jù),因?yàn)樗€沒有學(xué)習(xí)如何去連結(jié)一個(gè)輸入和一個(gè)類。它只是學(xué)會(huì)了如何去重構(gòu)或者復(fù)現(xiàn)它的輸入而已?;蛘哒f,它只是學(xué)習(xí)獲得了一個(gè)可以良好代表輸入的特征,這個(gè)特征可以最大程度上代表原輸入信號(hào)。那么,為了實(shí)現(xiàn)分類,我們就可以在AutoEncoder的最頂?shù)木幋a層添加一個(gè)分類器〔例如羅杰斯特回歸、SVM等〕,然后通過標(biāo)準(zhǔn)的多層神經(jīng)網(wǎng)絡(luò)的監(jiān)視訓(xùn)練方法〔梯度下降法〕去訓(xùn)練。也就是說,這時(shí)候,我們需要將最后層的特征code輸入到最后的分類器,通過有標(biāo)簽樣本,通過監(jiān)視學(xué)習(xí)進(jìn)展微調(diào),這也分兩種,一個(gè)是只調(diào)整分類器〔黑色局部〕:另一種:通過有標(biāo)簽樣本,微調(diào)整個(gè)系統(tǒng):〔如果有足夠多的數(shù)據(jù),這個(gè)是最好的。end-to-endlearning端對(duì)端學(xué)習(xí)〕一旦監(jiān)視訓(xùn)練完成,這個(gè)網(wǎng)絡(luò)就可以用來分類了。神經(jīng)網(wǎng)絡(luò)的最頂層可以作為一個(gè)線性分類器,然后我們可以用一個(gè)更好性能的分類器去取代它。在研究中可以發(fā)現(xiàn),如果在原有的特征中參加這些自動(dòng)學(xué)習(xí)得到的特征可以大大提高準(zhǔn)確度,甚至在分類問題中比目前最好的分類算法效果還要好!卷積神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)〔N〕是人工神經(jīng)網(wǎng)絡(luò)的一種,已成為當(dāng)前語音分析和圖像識(shí)別領(lǐng)域的研究熱點(diǎn)。它的權(quán)值共享網(wǎng)絡(luò)構(gòu)造使之更類似于生物神經(jīng)網(wǎng)絡(luò),降低了網(wǎng)絡(luò)模型的復(fù)雜度,減少了權(quán)值的數(shù)量。該優(yōu)點(diǎn)在網(wǎng)絡(luò)的輸入是多維圖像時(shí)表現(xiàn)的更為明顯,使圖像可以直接作為網(wǎng)絡(luò)的輸入,防止了傳統(tǒng)識(shí)別算法中復(fù)雜的特征提取和數(shù)據(jù)重建過程。卷積網(wǎng)絡(luò)是為識(shí)別二維形狀而特殊設(shè)計(jì)的一個(gè)多層感知器,這種網(wǎng)絡(luò)構(gòu)造對(duì)平移、比例縮放、傾斜或者共他形式的變形具有高度不變性。Ns是受早期的延時(shí)神經(jīng)網(wǎng)絡(luò)〔TDNN〕的影響。延時(shí)神經(jīng)網(wǎng)絡(luò)通過在時(shí)間維度上共享權(quán)值降低學(xué)習(xí)復(fù)雜度,適用于語音和時(shí)間序列信號(hào)的處理。Ns是第一個(gè)真正成功訓(xùn)練多層網(wǎng)絡(luò)構(gòu)造的學(xué)習(xí)算法。它利用空間關(guān)系減少需要學(xué)習(xí)的參數(shù)數(shù)目以提高一般前向BP算法的訓(xùn)練性能。Ns作為一個(gè)深度學(xué)習(xí)架構(gòu)提出是為了最小化數(shù)據(jù)的預(yù)處理要求。在N中,圖像的一小局部〔局部感受區(qū)域〕作為層級(jí)構(gòu)造的最低層的輸入,信息再依次傳輸?shù)讲煌膶?,每層通過一個(gè)數(shù)字濾波器去獲得觀測(cè)數(shù)據(jù)的最顯著的特征。這個(gè)方法能夠獲取對(duì)平移、縮放和旋轉(zhuǎn)不變的觀測(cè)數(shù)據(jù)的顯著特征,因?yàn)閳D像的局部感受區(qū)域允許神經(jīng)元或者處理單元可以訪問到最根底的特征,例如定向邊緣或者角點(diǎn)。卷積神經(jīng)網(wǎng)絡(luò)的構(gòu)造卷積神經(jīng)網(wǎng)絡(luò)是一個(gè)多層的神經(jīng)網(wǎng)絡(luò),每層由多個(gè)二維平面組成,而每個(gè)平面由多個(gè)獨(dú)立神經(jīng)元組成。卷積神經(jīng)網(wǎng)絡(luò)示意圖輸入圖像通過和三個(gè)可訓(xùn)練的濾波器和可加偏置進(jìn)展卷積,卷積后在C1層產(chǎn)生三個(gè)特征映射圖,然后特征映射圖中每組的四個(gè)像素再進(jìn)展求和,加權(quán)值,加偏置,通過一個(gè)Sigmoid函數(shù)得到三個(gè)S2層的特征映射圖。這些映射圖再進(jìn)過濾波得到C3層。這個(gè)層級(jí)構(gòu)造再和S2一樣產(chǎn)生S4。最終,這些像素值被光柵化,并連接成一個(gè)向量輸入到傳統(tǒng)的神經(jīng)網(wǎng)絡(luò),得到輸出。一般地,C層為特征提取層,每個(gè)神經(jīng)元的輸入與前一層的局部感受野相連,并提取該局部的特征,一旦該局部特征被提取后,它與其他特征間的位置關(guān)系也隨之確定下來;S層是特征映射層,網(wǎng)絡(luò)的每個(gè)計(jì)算層由多個(gè)特征映射組成,每個(gè)特征映射為一個(gè)平面,平面上所有神經(jīng)元的權(quán)值相等。特征映射構(gòu)造采用影響函數(shù)核小的sigmoid函數(shù)作為卷積網(wǎng)絡(luò)的激活函數(shù),使得特征映射具有位移不變性。此外,由于一個(gè)映射面上的神經(jīng)元共享權(quán)值,因而減少了網(wǎng)絡(luò)自由參數(shù)的個(gè)數(shù),降低了網(wǎng)絡(luò)參數(shù)選擇的復(fù)雜度。卷積神經(jīng)網(wǎng)絡(luò)中的每一個(gè)特征提取層〔C-層〕都緊跟著一個(gè)用來求局部平均與二次提取的計(jì)算層〔S-層〕,這種特有的兩次特征提取構(gòu)造使網(wǎng)絡(luò)在識(shí)別時(shí)對(duì)輸入樣本有較高的畸變?nèi)萑棠芰Α?shù)減少與權(quán)值共享N一個(gè)牛逼的地方就在于通過感受野和權(quán)值共享減少了神經(jīng)網(wǎng)絡(luò)需要訓(xùn)練的參數(shù)的個(gè)數(shù)。卷積神經(jīng)網(wǎng)絡(luò)減少參數(shù)示意圖如圖5-2左,如果我們有1000x1000像素的圖像,有1百萬個(gè)隱層神經(jīng)元,那么他們?nèi)B接的話〔每個(gè)隱層神經(jīng)元都連接圖像的每一個(gè)像素點(diǎn)〕,就有1012個(gè)連接,也就是1012個(gè)權(quán)值參數(shù)。然而圖像的空間聯(lián)系是局部的,就像人是通過一個(gè)局部的感受野去感受外界圖像一樣,每一個(gè)神經(jīng)元都不需要對(duì)全局圖像做感受,每個(gè)神經(jīng)元只感受局部的圖像區(qū)域,然后在更高層,將這些感受不同局部的神經(jīng)元綜合起來就可以得到全局的信息了。這樣,我們就可以減少連接的數(shù)目,也就是減少神經(jīng)網(wǎng)絡(luò)需要訓(xùn)練的權(quán)值參數(shù)的個(gè)數(shù)了。如圖5-2右:假設(shè)局部感受野是10x10,隱層每個(gè)感受野只需要和這10x10的局部圖像相連接,所以1百萬個(gè)隱層神經(jīng)元就只有一億個(gè)連接,即108個(gè)參數(shù)。比原來減少了四個(gè)數(shù)量級(jí),這樣訓(xùn)練起來就沒那么費(fèi)力了。我們知道,隱含層的每一個(gè)神經(jīng)元都連接10x10個(gè)圖像區(qū)域,也就是說每一個(gè)神經(jīng)元存在10x10=100個(gè)連接權(quán)值參數(shù)。那如果我們每個(gè)神經(jīng)元這100個(gè)參數(shù)是一樣的呢?也就是說每個(gè)神經(jīng)元用的是同一個(gè)卷積核去卷積圖像。這樣我們就只有100個(gè)參數(shù)了,這就是權(quán)值共享,那問題就是這樣做靠譜嗎?假設(shè)一種濾波器,也就是一種卷積核就是提出圖像的一種特征,例如某個(gè)方向的邊緣。那么我們需要提取不同的特征,怎么辦,加多幾種濾波器不就行了嗎?對(duì)了。所以假設(shè)我們加到100種濾波器,每種濾波器的參數(shù)不一樣,表示它提出輸入圖像的不同特征,例如不同的邊緣。這樣每種濾波器去卷積圖像就得到對(duì)圖像的不同特征的放映,我們稱之為FeatureMap。所以100種卷積核就有100個(gè)FeatureMap。這100個(gè)FeatureMap就組成了一層神經(jīng)元。這時(shí)這一層有1萬個(gè)參數(shù)。卷積神經(jīng)網(wǎng)絡(luò)權(quán)值共享示意圖需要注意的一點(diǎn)是,上面的討論都沒有考慮每個(gè)神經(jīng)元的偏置局部。所以權(quán)值個(gè)數(shù)需要加1。這個(gè)也是同一種濾波器共享的。卷積神經(jīng)網(wǎng)絡(luò)總結(jié)總之,卷積網(wǎng)絡(luò)的核心思想是將:局部感受野、權(quán)值共享〔或者權(quán)值復(fù)制〕以及時(shí)間或空間亞采樣這三種構(gòu)造思想結(jié)合起來獲得了某種程度的位移、尺度、形變不變性。Ns中這種層間聯(lián)系和空域信息的嚴(yán)密關(guān)系,使其適于圖像處理和理解。而且,其在自動(dòng)提取圖像的顯著特征方面還表現(xiàn)出了比擬優(yōu)的性能。在一些例子當(dāng)中,Gabor濾波器已經(jīng)被使用在一個(gè)初始化預(yù)處理的步驟中,以到達(dá)模擬人類視覺系統(tǒng)對(duì)視覺刺激的響應(yīng)。在目前大局部的工作中,研究者將Ns應(yīng)用到了多種機(jī)器學(xué)習(xí)問題中,包括人臉識(shí)別,文檔分析和語言檢測(cè)等。為了到達(dá)尋找視頻中幀與幀之間的相干性的目的,目前Ns通過一個(gè)時(shí)間相干性去訓(xùn)練,但這個(gè)不是Ns特有的。應(yīng)用領(lǐng)域語音識(shí)別語音識(shí)別系統(tǒng)長(zhǎng)期以來,描述每個(gè)建模單元的統(tǒng)計(jì)概率模型時(shí)候,大都是采用的混合高斯模型〔GMM〕。這種模型由于估計(jì)簡(jiǎn)單,適合海量數(shù)據(jù)訓(xùn)練,同時(shí)有成熟的區(qū)分度訓(xùn)練技術(shù)支持,長(zhǎng)期以來,一直在語音識(shí)別應(yīng)用中占有壟斷性地位。但是這種混合高斯模型本質(zhì)上是一種淺層網(wǎng)絡(luò)建模,不能夠充分描述特征的狀態(tài)空間分布。另外,GMM建模的特征維數(shù)一般是幾十維,不能充分描述特征之間的相關(guān)性。最后GMM建模本質(zhì)上是一種似然概率建模,雖然區(qū)分度訓(xùn)練能夠模擬一些模式類之間的區(qū)分性,但是能力有限。微軟研究院的語音識(shí)別專家Li和Dong從2009開場(chǎng)和深度學(xué)習(xí)專家Hinton合作。2011微軟基于深度神經(jīng)網(wǎng)絡(luò)的語音識(shí)別研究取得成果,徹底改變了語音識(shí)別原有的技術(shù)框架。采用深度神經(jīng)網(wǎng)絡(luò)后,可以充分描述特征之間的相關(guān)性,可以把連續(xù)多幀的語音特征并在一起,構(gòu)成一個(gè)高維特征。最終的深度神經(jīng)網(wǎng)絡(luò)可以采用高維特征訓(xùn)練來模擬的。由于深度神經(jīng)網(wǎng)絡(luò)采用模擬人腦的多層結(jié)果,可以逐級(jí)地進(jìn)展信息特征抽取,最終形成適合模式分類的較理想特征。這種多層構(gòu)造和人腦處理語音圖像信息的時(shí)候,是有很大的相似性的。深度神經(jīng)網(wǎng)絡(luò)的建模技術(shù),在實(shí)際線上效勞時(shí),能夠無縫地和傳統(tǒng)的語音識(shí)別技術(shù)相結(jié)合,在不引起任何系統(tǒng)額外消耗情況下大幅度地提升了語音識(shí)別系統(tǒng)的識(shí)別率。其在線的使用方法具體如下:在實(shí)際解碼過程中,聲學(xué)模型仍然是采用傳統(tǒng)的HMM模型,語音模型仍然是采用傳統(tǒng)的統(tǒng)計(jì)語言模型,解碼器仍然是采用傳統(tǒng)的動(dòng)態(tài)WFST解碼器。但是在聲學(xué)模型的輸出分布計(jì)算時(shí),完全用神經(jīng)網(wǎng)絡(luò)的輸出后驗(yàn)概率除以一個(gè)先驗(yàn)概率來代替?zhèn)鹘y(tǒng)HMM模型中的GMM的輸出似然概率。百度實(shí)踐中發(fā)現(xiàn),采用DNN進(jìn)展聲音建模的語音識(shí)別系統(tǒng)的相比于傳統(tǒng)的GMM語音識(shí)別系統(tǒng)而言,相對(duì)誤識(shí)別率能降低25%。最終在2012年11月的時(shí)候,上線了第一款基于DNN的語音搜索系統(tǒng),成為最早采用DNN技術(shù)進(jìn)展商業(yè)語音效勞的公司之一。國(guó)際上谷歌也采用了深度神經(jīng)網(wǎng)絡(luò)進(jìn)展聲音建模,和百度一起是最早的突破深度神經(jīng)網(wǎng)絡(luò)工業(yè)化應(yīng)用的企業(yè)之一。但是谷歌產(chǎn)品中采用的深度神經(jīng)網(wǎng)絡(luò)有4~5層,而百度采用的深度神經(jīng)網(wǎng)絡(luò)多達(dá)9層。這種構(gòu)造差異的核心其實(shí)是百度更好的解決了深度神經(jīng)網(wǎng)絡(luò)在線計(jì)算的技術(shù)難題,從而百度線上產(chǎn)品可以采用更復(fù)雜的網(wǎng)絡(luò)模型。這將對(duì)于未來拓展海量語料的DNN模型訓(xùn)練有更大的優(yōu)勢(shì)。圖像識(shí)別圖像是深度學(xué)習(xí)最早嘗試的應(yīng)用領(lǐng)域。早在1989,Lecun〔現(xiàn)紐約大學(xué)教授〕和他的同事們就發(fā)表了卷積神經(jīng)網(wǎng)絡(luò)(N)的工作。N是一種帶有卷積構(gòu)造的深度神經(jīng)網(wǎng)絡(luò),通常至少有2個(gè)非線性可訓(xùn)練的卷積層、2個(gè)非線性的固定卷積層〔又叫PoolingLayer〕和1個(gè)全連接層,一共至少5個(gè)隱含層。N的構(gòu)造受到著名的Hubel-Wiesel生物視覺模型的啟發(fā),尤其是模擬視覺皮層V1和V2層中simplecell和plexcell的行為。在很長(zhǎng)時(shí)間里,N雖然在小規(guī)模的問題上,比方說手寫數(shù)字,取得當(dāng)時(shí)世界最好結(jié)果,但一直沒有取得巨大成功。這主要原因是N在大規(guī)模圖像上效果不好,比方像素很多的自然圖片容理解,所以沒有得到計(jì)算機(jī)視覺領(lǐng)域的足夠重視。這個(gè)情況一直持續(xù)到2012年10月,Hinton和他的兩個(gè)學(xué)生在著名的ImageNet問題上用更深的N取得世界最好結(jié)果,使得圖像識(shí)別大踏步前進(jìn)。在Hinton的模型里,輸入就是圖像的像素,沒有用到任何的人工特征。這個(gè)驚人的結(jié)果為什么在之前沒有發(fā)生?原因當(dāng)然包括算法的提升,比方Dropout等防止過擬合技術(shù),但最重要的是GPU帶來的計(jì)算能力提升和更多的訓(xùn)練數(shù)據(jù)。百度在2012將深度學(xué)習(xí)技術(shù)成功應(yīng)用于自然圖像OCR識(shí)別和人臉識(shí)別等問題,并推出相應(yīng)的桌面和移動(dòng)搜索產(chǎn)品,在2013,深度學(xué)習(xí)模型被成功應(yīng)用于一般圖片的識(shí)別和理解。從百度的經(jīng)歷來看,深度學(xué)習(xí)應(yīng)用于圖像識(shí)別不但大大提升了準(zhǔn)確性,而且防止了人工特征抽取的時(shí)間消耗,從而大大提高了在線計(jì)算效率??梢院苡邪盐盏卣f,從現(xiàn)在開場(chǎng),深度學(xué)習(xí)將取代人工特征+機(jī)器學(xué)習(xí)的方法而逐漸成為主流圖像識(shí)別方法。自然語言處理除了語音和圖像,深度學(xué)習(xí)的另一個(gè)應(yīng)用領(lǐng)域問題自然語言處理〔NLP〕。經(jīng)過幾十年的開展,基于統(tǒng)計(jì)的模型已經(jīng)成為NLP的主流,但是作為統(tǒng)計(jì)方法之一的人工神經(jīng)網(wǎng)絡(luò)在NLP領(lǐng)域幾乎沒有受到重視。加拿大蒙特利爾大學(xué)教授Bengio等于2003提出用embedding的方法將詞映射到一個(gè)矢量表示空間,然后用非線性神經(jīng)網(wǎng)絡(luò)來表示N-Gram模型。世界上最早的深度學(xué)習(xí)用于NLP的研究工作誕生于NECLabsAmerica,其研究員Collobert和Weston從2008開場(chǎng)采用embedding和多層一維卷積的構(gòu)造,用于4個(gè)典型NLP問題。值得注意的是,他們將同一個(gè)模型用于不同任務(wù),都能取得與StateOfTheArt相當(dāng)?shù)臏?zhǔn)確率。最近以來,斯坦福大學(xué)教授Manning等人在深度學(xué)習(xí)用于NLP的工作也值得關(guān)注??偟膩碚f,深度學(xué)習(xí)在NLP上取得的進(jìn)展沒有在語音圖像上那么令人影響深刻。一個(gè)很有意思的悖論是:相比于聲音和圖像,語言是唯一的非自然信號(hào),是完全由人類大腦產(chǎn)生和處理的符號(hào)系統(tǒng),但是模仿人腦構(gòu)造的人工神經(jīng)網(wǎng)絡(luò)確似乎在處理自然語言上沒有顯現(xiàn)明顯優(yōu)勢(shì)?我們相信深度學(xué)習(xí)在NLP方面有很大的探索空間。從2006圖像深度學(xué)習(xí)成為學(xué)術(shù)界熱門課題到2012年10月Hinton在ImageNet上的重大突破,經(jīng)歷了6年時(shí)間,我們需要有足夠耐心。搜索廣告CTR預(yù)估搜索廣告是搜索引擎的主要變現(xiàn)方式,而按點(diǎn)擊付費(fèi)〔CPC〕又是其中被最廣泛應(yīng)用的計(jì)費(fèi)模式。在CPC模式下,預(yù)估的CTR越準(zhǔn)確,點(diǎn)擊率就會(huì)越高,收益就越大。通常,搜索廣告的CTR是通過機(jī)器學(xué)習(xí)模型預(yù)估得到。提高CTR的準(zhǔn)確性,是提升搜索公司、廣告主、搜索用戶三方利益的最正確途徑。傳統(tǒng)上,谷歌、百度等搜索引擎公司以LogisticRegression(LR)作為預(yù)估模型。而從2012開場(chǎng),百度開場(chǎng)意識(shí)到模型的構(gòu)造對(duì)廣告CTR預(yù)估的重要性:使用扁平構(gòu)造的LR嚴(yán)重限制了模型學(xué)習(xí)與抽象特征的能力。為了突破這樣的限制,百度嘗試將DNN作用于搜索廣告,而這其中最大的挑戰(zhàn)在于當(dāng)前的計(jì)算能力還無法承受1011級(jí)別的原始廣告特征作為輸入。作為解決,在百度的DNN系統(tǒng)里,特征數(shù)從1011數(shù)量級(jí)被降到了103,從而能被DNN正常的學(xué)習(xí)。這套深度學(xué)習(xí)系統(tǒng)已于2013年5月開場(chǎng)效勞于百度搜索廣告系統(tǒng),每天為數(shù)億網(wǎng)民使用。DNN在搜索廣告系統(tǒng)中的應(yīng)用還遠(yuǎn)遠(yuǎn)沒到成熟,其中DNN與遷移學(xué)習(xí)的結(jié)合將可能是一個(gè)令人振奮的方向。使用DNN,未來的搜索廣告將可能借助網(wǎng)頁搜索的結(jié)果優(yōu)化特征的學(xué)習(xí)與提取;亦可能通過DNN將不同的產(chǎn)品線聯(lián)系起來,使得不同的變現(xiàn)產(chǎn)品不管數(shù)據(jù)多少,都能互相優(yōu)化。我們認(rèn)為未來的DNN一定會(huì)在搜索廣告中起到更重要的作用。深度學(xué)習(xí)實(shí)戰(zhàn)演練實(shí)驗(yàn)壞境的搭建深度學(xué)習(xí)平臺(tái)目前主要有三個(gè)最經(jīng)常使用的開源深度學(xué)習(xí)平臺(tái),本文做了一個(gè)簡(jiǎn)單的介紹:Caffe:源自加州伯克利分校的Caffe被廣泛應(yīng)用,包括Pinterest這樣的web大戶。與TensorFlow一樣,Caffe也是由C++開發(fā),Caffe也是Google今年早些時(shí)候發(fā)布的DeepDream工程(可以識(shí)別貓的人工智能神經(jīng)網(wǎng)絡(luò))的根底。Theano:2008年誕生于蒙特利爾理工學(xué)院,Theano派生出了大量深度學(xué)習(xí)Python軟件包,最著名的包括Blocks和Keras。Torch:誕生已經(jīng)有十年之久,但是真正起勢(shì)得益于去年Facebook開源了大量Torch的深度學(xué)習(xí)模塊和擴(kuò)展。Torch另外一個(gè)特殊之處是采用了不怎么流行的編程語言Lua(該語言曾被用來開發(fā)視頻游戲)。本次試驗(yàn),我采用了比擬廣泛使用的Caffe深度學(xué)習(xí)平臺(tái)。接下來,我主要介紹Caffe的環(huán)境搭建方法。安裝依賴庫首先,我在s://github./BVLC/caffe下載了Caffe的源代碼,為了能夠順利的進(jìn)展編譯,首先我們需要安裝一下依賴庫。libatlas-base-devlibprotobuf-devlibleveldb-devlibsnappy-devlibopencv-devlibboost-all-devlibhdf5-serial-devlibgflags-devlibgoogle-glog-devliblmdb-devprotobuf-pilerpython-numpypython3-numpypython-scipypython3-scipy在Ubutun中,我們只需要使用sudoapt-getinstallPACKAGE_NAME即可完成對(duì)上述所有依賴庫的安裝。在安裝完依賴庫后,我們就可以開場(chǎng)安裝Caffe了。安裝Caffe在完成了依賴庫的安裝之后,我們就可以開場(chǎng)Caffe的安裝了。為此,我們首先要準(zhǔn)備一個(gè)Makefile.Config文件。事實(shí)上,Caffe已經(jīng)為我們準(zhǔn)備好了一個(gè)Makefile.Config.Example文件,只要將該文件重命名并進(jìn)展相應(yīng)的修改即可開場(chǎng)進(jìn)展編譯。由于本次實(shí)驗(yàn)的機(jī)器中沒有支持CUDA的顯卡,因此我們需要在Makefile.Config文件中將CPU_ONLY選項(xiàng)置為1,然后即可開場(chǎng)編譯。我們只要在終端中輸入命令makeall即可開場(chǎng)編譯。在Caffe成功編譯完成后,我們輸入指令makepycaffe來編譯python接口模塊,當(dāng)然如果你的系統(tǒng)中沒有python的話需要先安裝python。在上述所有編譯指令完成后,其實(shí)Caffe就已經(jīng)安裝好了,在你的目錄中會(huì)生成build/tools文件夾,里面的Caffe可執(zhí)行文件就是以后用來訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)的工具。接下來,我們可以進(jìn)展簡(jiǎn)單的測(cè)試,測(cè)試Caffe是否可以正常工作,只需要在終端中輸入maketestmakeruntest即可進(jìn)展Caffe的正確性測(cè)試。如果最后的結(jié)果顯示PASSED那么說明Caffe已經(jīng)安裝完畢。實(shí)驗(yàn)概述本文主要完成一個(gè)手寫數(shù)字體識(shí)別的深度學(xué)習(xí)測(cè)試,數(shù)據(jù)來源于網(wǎng)上的MNIST數(shù)據(jù)庫,數(shù)據(jù)庫一共擁有6萬個(gè)用于訓(xùn)練的手寫數(shù)字〔帶標(biāo)簽〕,同時(shí)還擁有1萬個(gè)用于識(shí)別的手寫數(shù)字字符,局部手寫體數(shù)字的效果如下列圖所示。MNIST手寫體本文首先在yann.lecun./exdb/mnist/上下載MNIST手寫字符集,并得到四個(gè)文件,分別是兩個(gè)圖片數(shù)據(jù)文件以及兩個(gè)標(biāo)簽文件。接下來,按照MNIST的數(shù)據(jù)格式,書寫Python程序讀取程序圖片,并生成符合Caffe的LMDB格式數(shù)據(jù)集。接下來,本文參考已有的深度網(wǎng)絡(luò)模型,書寫模型文件。最后,本文編寫求解參數(shù)文件,調(diào)用Caffe可執(zhí)行文件對(duì)深度網(wǎng)絡(luò)進(jìn)展訓(xùn)練,并得到最終的測(cè)試結(jié)果。本文實(shí)驗(yàn)中所采用的環(huán)境如下:操作系統(tǒng)〔OS〕Ubuntu14.04CPUIntel(R)Core(TM)i5-4217CPU3.80GHz運(yùn)行存大小〔RAM〕4.00GB實(shí)驗(yàn)過程生成指定的數(shù)據(jù)格式文件為了使用Caffe深度學(xué)習(xí)平臺(tái),我們首先需要將得到的數(shù)據(jù)集轉(zhuǎn)化為Caffe可以使用的LMDB格式,其具體過程如下。首先在下載的MNIST文件中提取所有的圖片源文件,主要使用的是Python編程。本文將所有的訓(xùn)練用手寫數(shù)字放在train文件夾,測(cè)試用放在了val文件夾。并利用Python產(chǎn)生了兩個(gè)TAG文件,主要用來指示圖片的標(biāo)簽。例如上圖所示,它代表8.jpg的標(biāo)簽為1,也就是說8.jpg圖片中顯示的手寫數(shù)字應(yīng)該是1。在上述文件全部準(zhǔn)備好之后,我們可以調(diào)用Caffe提供的數(shù)據(jù)格式轉(zhuǎn)換工具convert_imageset能完成標(biāo)準(zhǔn)數(shù)據(jù)集的生成。本文寫了一個(gè)批處理文件完成了數(shù)據(jù)集的生成,其效果如下。編寫深度網(wǎng)絡(luò)模型文件按照當(dāng)前文獻(xiàn)的說法,卷積神經(jīng)網(wǎng)絡(luò)對(duì)手寫字符的識(shí)別具有較好的效果,我按照標(biāo)準(zhǔn)的Caffe模型編寫格式,參考網(wǎng)上的教程,編寫了一個(gè)深度網(wǎng)絡(luò)模型。首先定義一個(gè)訓(xùn)練輸入data層,指定其數(shù)據(jù)路徑,數(shù)據(jù)文件格式,等參數(shù),代碼書寫如下:layer{name:"mnist"type:"Data"top:"data"top:"label"include{phase:TRAIN}transform_param{scale:0.00390625}data_param{source:"/home/dong/dl2/hand_write_train/"batch_size:64backend:LMDB}}同理,定義一個(gè)測(cè)試輸入data層用來對(duì)訓(xùn)練的網(wǎng)絡(luò)進(jìn)展測(cè)試。接下來,定義一層卷積神經(jīng)網(wǎng)絡(luò),指定其類型為Convolution層,學(xué)習(xí)速率,其他參數(shù)保持默認(rèn)。layer{name:"conv1"http://卷積神經(jīng)網(wǎng)絡(luò)的第一層,卷積層type:"Convolution"http://這層操作為卷積bottom:"data"http://這一層的前一層是data層top:"conv1"param{lr_mult:1}param{lr_mult:2}convolution_param{num_output:20//定義輸出特征圖個(gè)數(shù)kernel_size:5//定義卷積核大小stride:1weight_filler{type:"xavier"}bias_filler{type:"constant"}}}在此之后,定義一層池化層,第二層卷積神經(jīng)網(wǎng)絡(luò)層,第二層池化層,以及兩個(gè)積層,具體的模型代碼見附錄。編寫網(wǎng)絡(luò)求解文件和Makefile一樣,網(wǎng)絡(luò)求解文件是由模板的,根據(jù)自己的需要進(jìn)展修改即可。一個(gè)典型的模板如下。net:"path/to/your/net"http://定義網(wǎng)絡(luò)構(gòu)造文件,也就是我們上一步編寫的文件test_iter:100test_interval:500//每隔500次用測(cè)試數(shù)據(jù),做一次驗(yàn)證base_lr:0.01//學(xué)習(xí)速率momentum:0.9//動(dòng)量參數(shù)weight_decay:0.0005//權(quán)重衰減系數(shù)lr_policy:"inv"http://梯度下降的相關(guān)優(yōu)化策略gamma:0.0001power:0.75display:100max_iter:10000//最大迭代次數(shù)snapshot:5000//每迭代5000次,保存一次結(jié)果snapshot_prefix:"examples/mnist/lenet"http://保存結(jié)果路徑solver_mode:GPU//訓(xùn)練硬件設(shè)備選擇GPU還是CPU編寫完以上所有的文件就可以使用Caffe進(jìn)展網(wǎng)絡(luò)的訓(xùn)練了,只要在終端中輸入:~/caffe-master/build/tools/caffetrain--solver=/home/dong/dpln/lenet_totxt即可開場(chǎng)訓(xùn)練,訓(xùn)練過程中會(huì)得到大量的迭代結(jié)果,在每500次迭代,系統(tǒng)會(huì)自動(dòng)調(diào)用測(cè)試數(shù)據(jù)集進(jìn)展一次準(zhǔn)確度的測(cè)試,如下是在本次試驗(yàn)中得到的結(jié)果:可以看到系統(tǒng)迭代到9000次的時(shí)候進(jìn)展了一次測(cè)試驗(yàn)證,識(shí)別正確率高達(dá)99.1%,這主要得益于卷積神經(jīng)網(wǎng)絡(luò)的特性。實(shí)驗(yàn)結(jié)果當(dāng)終端提示OptimizationDone的時(shí)候,表示深度學(xué)習(xí)完畢,并會(huì)返回在給定測(cè)試數(shù)據(jù)集中的結(jié)果,本文得到的結(jié)果如下:當(dāng)系統(tǒng)迭代了1萬次以后,優(yōu)化完成,最終的識(shí)別進(jìn)度為99.06%,可見深度學(xué)習(xí)能自動(dòng)提取手寫體數(shù)字的特征,進(jìn)展學(xué)習(xí),并最后識(shí)別??偨Y(jié)本文介紹了深度學(xué)習(xí)的背景,對(duì)深度學(xué)習(xí)的研究過程以及開展現(xiàn)狀進(jìn)展了概括,同時(shí)介紹了其根本原理以及應(yīng)用領(lǐng)域。其次,通過Caffe深度學(xué)習(xí)平臺(tái)進(jìn)展了手寫數(shù)字字符的識(shí)別的小工程。我了解到了深度學(xué)習(xí)的根本過程以及根本方法。例如如何搭建深度學(xué)習(xí)平臺(tái),如何生成數(shù)據(jù)集,編寫簡(jiǎn)單的深度學(xué)習(xí)網(wǎng)絡(luò)并最后調(diào)用Caffe進(jìn)展訓(xùn)練和測(cè)試。在上述步驟之中,我認(rèn)為最重要的就是如何編寫深度學(xué)習(xí)網(wǎng)絡(luò),這個(gè)很大程度上決定了你模型的可用性,這需要你對(duì)不同深度網(wǎng)絡(luò)模型的特點(diǎn)了然于胸,才能寫出最適合特定問題的深度學(xué)習(xí)網(wǎng)絡(luò),本文在編寫MNIST深度學(xué)習(xí)網(wǎng)絡(luò)的時(shí)候參考了較多的網(wǎng)上資料,論文中也說到卷積神經(jīng)網(wǎng)絡(luò)比擬適合手寫數(shù)字體的識(shí)別。實(shí)驗(yàn)結(jié)果顯示,在經(jīng)歷了1萬次迭代后,卷積神經(jīng)網(wǎng)絡(luò)構(gòu)成的深度學(xué)習(xí)網(wǎng)絡(luò)對(duì)手寫數(shù)字字體可以到達(dá)99%以上的識(shí)別,顯示出深度學(xué)習(xí)強(qiáng)大的識(shí)別能力。參考文獻(xiàn)SarikayaR,HintonGE,DeorasA.Applicationofdeepbeliefnetworksfornaturallanguageunderstanding[J].IEEETransactionsonAudio,SpeechandLanguageProcessing,2014,22(4):778-784BENGIOY.Practicalremendationsforgradient-basedtrainingofdeeparchitectures[M]NeuralNetworks:TricksoftheTrade.Ber-lin:Springer-Verlag,2012:437-478.FischerA,IgelC.TrainingrestrictedBoltzmannmachines:anintroduction[J],PatternRecognition,2014,47(1):25-39LEEH,GROSSER,RANGANATHR,etal.Convolutionaldeepbeliefnetworksforscalableunsupervisedlearningofhierarchicalrepresentations[C],Procofthe26thInternationalConferenceonMa-chineLearning.NewYork:ACMPress,2009:609-616.HintonGE,OsinderoS,TehYW.Afastlearningalgorithmfordeepbeliefnets[J],Neuralputation,2006,18(7):1527-1554.胡侯立,深度學(xué)習(xí)算法的原理及應(yīng)用[J],信息技術(shù),2015(2):176-177岳永鵬,深度無監(jiān)視學(xué)習(xí)算法研究[D],西南石油大學(xué)碩士學(xué)位論文,2015,6:3-5建偉等,深度學(xué)習(xí)研究進(jìn)展[J],計(jì)算機(jī)應(yīng)用研究,2014,4(7):1925-1927建明等,深度學(xué)習(xí)的研究與開展[J],大學(xué)學(xué)報(bào),2015,3(2):195-196/zouxy09/article/details/8775360//hjimce/article/details/48933813//hjimce/article/details/48781693/附錄〔源代碼〕讀取MNIST數(shù)據(jù)文件Python程序importnumpyasnpfromscipy.miscimportimsaveimportstruct#imsave('meelo.jpg',x)f=open('./train-images-idx3-ubyte','rb')filedata=f.read()#filesize=f.tell()f.close()data=bytearray(filedata)num=60000row=28col=28x=np.random.random((28,28))#printxcur=16foriinrange(0,num): forrinrange(0,row): forcinrange(0,col): v=data[cur] cur+=1 x[r][c]=v imsave('./train/'+str(i)+'.jpg',x)f=open('./t10k-images-idx3-ubyte','rb')filedata=f.read()#filesize=f.tell()f.close()data=bytearray(filedata)num=10000row=28col=28x=np.random.random((28,28))#printxcur=16foriinrange(0,num): forrinrange(0,row): forcinrange(0,col): v=data[cur] cur+=1 x[r][c]=v imsave('./val/t'+str(i)+'.jpg',x)f=open('./train-labels-idx1-ubyte','rb')filedata=f.read()#filesize=f.tell()f.close()data=bytearray(filedata)num=60000cur=8ttag=open('train.txt','w')foriinrange(0,num): v=data[cur] cur+=1 ttag.write(str(i)+'.jpg'+''+str(v)+'\n')ttag.close()f=open('./t10k-labels-idx1-ubyte','rb')filedata=f.read()#filesize=f.tell()f.close()data=bytearray(filedata)num=10000cur=8ttag2=open('val.txt','w')foriinrange(0,num): v=data[cur] cur+=1 ttag2.write('t'+str(i)+'.jpg'+''+str(v)+'\n')ttag2.close()深度網(wǎng)絡(luò)定義文件name:"LeNet"layer{name:"mnist"type:"Data"top:"data"top:"label"include{phase:TRAIN}transform_param{scale:0.00390625}data_param{source:"/home/dong/dl2/hand_write_train/"batch_size:64backend:LMDB}}layer{name:"mnist"type:"Data"top:"data"top:"label"include{phase:TEST}transform_param{scale:0.00390625}data_param{source:"/home/dong/dl2/hand_write_val/"batch_size:100backend:LMDB}}layer{name:"conv1"type:"Convolution"bottom:"data"top:"conv1"param{lr_mult:1}param{lr_mult:2}convolution_param{num_output:20kernel_size:5stride:1weight_filler{type:"xavier"}bias_filler{type:"constant"}}}layer{name:"pool1"type:"Pooling"bottom:"conv1"top:"pool1"pooling_param{pool:MAXkernel_size:2stride:2}}layer{name:"conv2"type:"Convolution"bottom:"pool1"top:"conv2"param{lr_mult:1}param{lr_mult:2}convolution_param{num_output:50kernel_size:5stride:1weight_filler{type:"xavier"}bias_filler{type:"constant"}}}layer{name:"pool2"type:"Pooling"bottom:"conv2"top:"pool2"pooling_param{pool:MAXkernel_size:2stride:2}}layer{name:"ip1"type:"InnerProduct"bottom:"pool2"top:"ip1"param{lr_mult:1}param{lr_mult:2}inner_product_param{num_output:500weight_filler{type:"xavier"}bias_filler{type:"con

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論