本書(shū)是一本關(guān)于深度學(xué)習(xí)的入門(mén)讀物, 闡述了深度學(xué)習(xí)的發(fā)展歷程、相關(guān)基本概念和工作原理。介紹了兩個(gè)當(dāng)前流行的深度學(xué)習(xí)工具: Caffe和TensorFlow。初步探討了強(qiáng)化學(xué)習(xí)的基本原理和應(yīng)用。為了能讓初學(xué)者快速上手, 本書(shū)注重從總體框架和脈絡(luò)上整體把握深度學(xué)習(xí)技術(shù), 同時(shí)在闡述原理時(shí)配以簡(jiǎn)單的實(shí)例供讀者印證。
一線資深技術(shù)專(zhuān)家撰寫(xiě),凝結(jié)其自身多年的實(shí)踐經(jīng)驗(yàn),深入淺出闡述深度學(xué)習(xí)的發(fā)展歷程、相關(guān)概念和工作原理涉及當(dāng)前流行的兩個(gè)深度學(xué)習(xí)工具:Caffe和TensorFlow,并且初步探討強(qiáng)化學(xué)習(xí)的基本原理和應(yīng)用
前言
中國(guó)工程院院士、互聯(lián)網(wǎng)專(zhuān)家鄔賀銓在移動(dòng)互聯(lián)網(wǎng)國(guó)際研討會(huì)(IMIC2014)上指出,互聯(lián)網(wǎng)已經(jīng)進(jìn)入“大智移云”(大數(shù)據(jù)、智能化、移動(dòng)互聯(lián)網(wǎng)和云計(jì)算)時(shí)代。近兩年來(lái),“大智移云”得到了蓬勃發(fā)展。其中,大數(shù)據(jù)、人工智能聯(lián)系緊密,受到了業(yè)界和學(xué)術(shù)界越來(lái)越多的關(guān)注。中國(guó)科學(xué)院張鈸院士在第十七屆中國(guó)國(guó)際高新技術(shù)成果交易會(huì)的“深度學(xué)習(xí)與人工智能”院士論壇上表示,大數(shù)據(jù)給人工智能帶來(lái)了新的發(fā)展機(jī)遇,即深度學(xué)習(xí)。
深度學(xué)習(xí)其實(shí)并不神秘,小到微信中語(yǔ)音轉(zhuǎn)文字、“掃一掃”中的封面識(shí)別和翻譯,大到打敗世界頂尖棋手李世乭的谷歌圍棋人工智能程序AlphaGo,都有深度學(xué)習(xí)的身影。隨著技術(shù)的進(jìn)步,相信深度學(xué)習(xí)將會(huì)深入人們的生活中,得到越來(lái)越廣泛的應(yīng)用。
本書(shū)是一種關(guān)于深度學(xué)習(xí)的入門(mén)讀物,面向的是希望了解深度學(xué)習(xí)技術(shù)的高年級(jí)理工科本科生和研究生,還有業(yè)界對(duì)深度學(xué)習(xí)感興趣的技術(shù)人士。為了能讓深度學(xué)習(xí)零基礎(chǔ)的技術(shù)人員快速上手,筆者力求按照初學(xué)者的學(xué)習(xí)歷程來(lái)組織本書(shū)內(nèi)容。對(duì)于初學(xué)者來(lái)說(shuō),如何才能以最快的速度了解一門(mén)技術(shù)并產(chǎn)生興趣?筆者以為需要做到三點(diǎn):首先需要對(duì)技術(shù)的基本原理有透徹的了解;其次需要對(duì)技術(shù)的總體框架和脈絡(luò)有所掌握;再次需要有容易上手的實(shí)例以供實(shí)踐。最終達(dá)到理論與實(shí)踐的結(jié)合,具體原理與知識(shí)整體框架的統(tǒng)一。
有鑒于此,本書(shū)比較注重對(duì)深度學(xué)習(xí)基本原理的闡釋?zhuān)瑢?duì)深度學(xué)習(xí)及其所屬的機(jī)器學(xué)習(xí)的框架性?xún)?nèi)容的探討,還有筆者所參與的項(xiàng)目的實(shí)例分享。希望按照筆者的理解,將深度學(xué)習(xí)的原理、框架和實(shí)踐分享給對(duì)深度學(xué)習(xí)感興趣的人士。由于深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)領(lǐng)域,為了體系的完整性,本書(shū)會(huì)介紹一些機(jī)器學(xué)習(xí)的基本知識(shí),并由此引出深度學(xué)習(xí)的內(nèi)容。
全書(shū)分為四大部分:第一部分介紹機(jī)器學(xué)習(xí)的基礎(chǔ)知識(shí);第二部分介紹深度學(xué)習(xí)的原理;第三部分介紹當(dāng)前熱門(mén)的深度學(xué)習(xí)工具Caffe和Tensorflow;第四部分介紹強(qiáng)化學(xué)習(xí)基本原理和人工智能?chē)宄绦駻lphaGo的架構(gòu)。每部分都會(huì)配有可實(shí)現(xiàn)之實(shí)例以供印證所述原理。本書(shū)主要參考了南京大學(xué)周志華教授的《機(jī)器學(xué)習(xí)》,AndrewNg(吳恩達(dá))的UFLDL和Coursera機(jī)器學(xué)習(xí)課程,微軟LiDeng和DongYu的DeepLearning:MethodsandApplications,MichaelNielsen的NeuralNetworksandDeepLearning等資料。這些資料充分體現(xiàn)了機(jī)器學(xué)習(xí)領(lǐng)域的諸位前輩高人們深厚的學(xué)養(yǎng)和高超的技藝,對(duì)筆者啟發(fā)頗多,借此機(jī)會(huì)向吳恩達(dá)教授等前輩高人致敬!
深度學(xué)習(xí)的發(fā)展非常迅速,國(guó)內(nèi)外巨頭科技公司都不惜重金對(duì)此投入,故技術(shù)更新極快。而筆者對(duì)本領(lǐng)域初窺門(mén)徑,水平有限,加之成書(shū)時(shí)間倉(cāng)促,欠妥之處在所難免,讀者朋友們?nèi)舨涣呦喔妫瑒t不勝感激。
本書(shū)中涉及的所有代碼、圖片文件和數(shù)據(jù)集等都上傳至百度云盤(pán):
http://pan.baidu.com/share/init?shareid=258036058&uk=2051007731
密碼:z7id,讀者可自行下載,以供實(shí)驗(yàn)之用。
作者
2017年3月
龍飛,高級(jí)工程師,本科畢業(yè)于南京大學(xué),博士畢業(yè)于清華大學(xué),香港科技大學(xué)博士后。曾供職于中國(guó)電子科技集團(tuán)公司第五十四研究所。現(xiàn)任中國(guó)搜索創(chuàng)新研發(fā)部總監(jiān)。負(fù)責(zé)公司互聯(lián)網(wǎng)創(chuàng)新產(chǎn)品和人工智能、大數(shù)據(jù)相關(guān)項(xiàng)目的研發(fā)。主持并參與了國(guó)搜識(shí)圖、國(guó)搜學(xué)術(shù)、國(guó)搜圖書(shū)等平臺(tái)和頻道的研發(fā)與上線。主要研究方向?yàn)榫W(wǎng)絡(luò)路由、無(wú)線網(wǎng)狀網(wǎng)絡(luò),近年涉足深度學(xué)習(xí)、數(shù)據(jù)挖掘領(lǐng)域。在國(guó)內(nèi)外發(fā)表學(xué)術(shù)論文20余篇,獲得軟件著作權(quán)5項(xiàng),并著有中文專(zhuān)著2部,英文專(zhuān)著1部,譯著2部。
目錄
第1章緒論
1.1引言
1.2基本概念
1.2.1回歸、分類(lèi)、聚類(lèi)
1.2.2監(jiān)督學(xué)習(xí)、非監(jiān)督學(xué)習(xí)、半監(jiān)督學(xué)習(xí)、強(qiáng)化學(xué)習(xí)
1.2.3感知機(jī)、神經(jīng)網(wǎng)絡(luò)
1.3發(fā)展歷程
1.4相關(guān)學(xué)者與會(huì)議或賽事
1.5本章小結(jié)
參考文獻(xiàn)
第2章回歸
2.1線性回歸
2.1.1問(wèn)題描述
2.1.2問(wèn)題求解
2.1.3工具實(shí)現(xiàn)
2.2邏輯回歸
2.2.1問(wèn)題描述
2.2.2問(wèn)題求解
2.2.3工具實(shí)現(xiàn)
2.3本章小結(jié)
參考文獻(xiàn)
第3章人工神經(jīng)網(wǎng)絡(luò)
3.1Rosenblatt感知機(jī)
3.1.1訓(xùn)練方法
3.1.2算法實(shí)例
3.1.3梯度下降
3.2人工神經(jīng)網(wǎng)絡(luò)
3.2.1網(wǎng)絡(luò)架構(gòu)
3.2.2訓(xùn)練方法
3.2.3算法實(shí)例
3.3本章小結(jié)
參考文獻(xiàn)
深度學(xué)習(xí):入門(mén)與實(shí)踐
目錄
第4章Caffe簡(jiǎn)介
4.1CNN原理
4.1.1卷積
4.1.2池化
4.1.3LeNet5
4.2Caffe架構(gòu)
4.2.1Blob類(lèi)
4.2.2Layer類(lèi)
4.2.3Net類(lèi)
4.2.4Solver類(lèi)
4.3Caffe應(yīng)用實(shí)例
4.3.1車(chē)型識(shí)別
4.3.2目標(biāo)檢測(cè)
4.4本章小結(jié)
參考文獻(xiàn)
第5章TensorFlow簡(jiǎn)介
5.1TensorFlow架構(gòu)
5.2TensorFlow簡(jiǎn)單應(yīng)用
5.2.1TensorFlow安裝
5.2.2線性回歸
5.3TensorFlow高級(jí)應(yīng)用
5.3.1MNIST手寫(xiě)數(shù)字識(shí)別
5.3.2車(chē)型識(shí)別
5.4本章小結(jié)
參考文獻(xiàn)
第6章強(qiáng)化學(xué)習(xí)簡(jiǎn)介
6.1強(qiáng)化學(xué)習(xí)基本原理
6.2AlphaGo基本架構(gòu)
6.3其他趣味應(yīng)用
6.4本章小結(jié)
參考文獻(xiàn)
后記
第1章緒論
可見(jiàn),Samuel給出了一個(gè)比較直觀的定義,機(jī)器學(xué)習(xí)就是研究如何讓計(jì)算機(jī)在不被明確地編程的情況下具有學(xué)習(xí)能力。這就不是機(jī)關(guān)術(shù)那么簡(jiǎn)單,而是具有類(lèi)人的智能了。Mitchell的定義比較正式,因而得到了廣泛引用。但這段英文實(shí)在是佶屈聱牙,有點(diǎn)像英文繞口令。其實(shí)不必?fù)?dān)心,這段定義里有三個(gè)重要的概念,分別是經(jīng)驗(yàn)E、任務(wù)T和性能指標(biāo)P。如果一個(gè)計(jì)算機(jī)程序能夠通過(guò)經(jīng)驗(yàn)E改進(jìn)其在任務(wù)T上的性能指標(biāo)P,則稱(chēng)其具有學(xué)習(xí)能力。這是一個(gè)非常重要的定義,定義了機(jī)器學(xué)習(xí)的一個(gè)通用模型。從后文中可以看到,經(jīng)驗(yàn)E、任務(wù)T和性能指標(biāo)P貫穿機(jī)器學(xué)習(xí)的始終,在求解機(jī)器學(xué)習(xí)問(wèn)題時(shí)都有著明確的數(shù)學(xué)表示。
Mitchell的定義對(duì)于初學(xué)者來(lái)說(shuō)依然比較難以理解。其實(shí)可以參考人類(lèi)學(xué)習(xí)的過(guò)程,經(jīng)驗(yàn)E就是從大量歷史數(shù)據(jù)中總結(jié)出的規(guī)律,任務(wù)T一般為對(duì)新事物的識(shí)別和新形勢(shì)的預(yù)測(cè),P當(dāng)然指的就是識(shí)別和預(yù)測(cè)的準(zhǔn)確率。古諺“老馬識(shí)途”比喻的是閱歷豐富的人對(duì)事物的走向把握得比較準(zhǔn)確,也就是因?yàn)槠洹皻v史數(shù)據(jù)”很多,從而能夠總結(jié)出比較客觀的規(guī)律而已。
那么深度學(xué)習(xí)又是什么呢?關(guān)于深度學(xué)習(xí)的定義有很多,但有一點(diǎn)是肯定的,那就是深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)子域(subfield)或分支(branch)。深度學(xué)習(xí)興起于2006年,也被稱(chēng)為深度結(jié)構(gòu)化學(xué)習(xí)(deepstructuredlearning)、層次化學(xué)習(xí)(hierarchicallearning)或深度機(jī)器學(xué)習(xí)(deepmachinelearning)[1,2]。雖然學(xué)術(shù)界尚無(wú)對(duì)深度學(xué)習(xí)的統(tǒng)一定義,在此可以提供幾個(gè)權(quán)威的定義供讀者參考。
定義1深度學(xué)習(xí)方法是多層表示的表示學(xué)習(xí)方法,多層表示由一個(gè)從低到高的非線性簡(jiǎn)單模塊網(wǎng)絡(luò)獲得,每個(gè)模塊將表示從一個(gè)層次(起始于原始輸入)轉(zhuǎn)化至另一個(gè)更高的、更抽象的層次[3]。
定義2深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)分支,基于一個(gè)嘗試使用多復(fù)雜結(jié)構(gòu)處理層或多非線性變化來(lái)模型化高層次抽象的算法集[4]。
定義3深度學(xué)習(xí)是一類(lèi)機(jī)器學(xué)習(xí)算法:
使用多層非線性處理單元級(jí)聯(lián)來(lái)進(jìn)行特征抽取和轉(zhuǎn)換。每個(gè)后續(xù)層使用之前層的輸出作為輸入。算法可能是監(jiān)督的或非監(jiān)督的,應(yīng)用包括模式分析(非監(jiān)督)和分類(lèi)(監(jiān)督)。
是基于多層數(shù)據(jù)特征或表示的(非監(jiān)督)學(xué)習(xí)。高層特征來(lái)自低層特征以形成層級(jí)表示。
是更廣的機(jī)器學(xué)習(xí)領(lǐng)域中的數(shù)據(jù)表示學(xué)習(xí)部分。
學(xué)習(xí)對(duì)應(yīng)于不同層抽象的多層表示,不同層組成了概念的不同層級(jí)。
以上定義有兩個(gè)共同點(diǎn):(1)多層非線性處理單元;(2)每層中的監(jiān)督或非監(jiān)督特征表示學(xué)習(xí),各層組成從低層特征到高層特征的層次結(jié)構(gòu)。
定義4深度學(xué)習(xí)是機(jī)器學(xué)習(xí)中的一個(gè)算法集,在多個(gè)層次上進(jìn)行學(xué)習(xí),對(duì)應(yīng)不同層次的抽象。通常使用人工神經(jīng)網(wǎng)絡(luò)。學(xué)習(xí)的統(tǒng)計(jì)模型中不同的層次對(duì)應(yīng)不同層次的概念,高層次的概念由低層次的概念定義,相同低層次的概念可幫助定義許多高層次的概念。
第一個(gè)定義是機(jī)器學(xué)習(xí)界的大神Hinton在其發(fā)表于Nature上的文章“Deeplearning”中給出的定義,第二和第三個(gè)定義是維基百科給出的定義,第四個(gè)定義出自LiDeng的DeepLearningMethodsandApplications一書(shū)。這是四個(gè)足以令初學(xué)者失去繼續(xù)學(xué)習(xí)勇氣的定義。不過(guò)沒(méi)關(guān)系,隨著后面對(duì)例子的講解,讀者會(huì)對(duì)深度學(xué)習(xí)有一個(gè)直觀的認(rèn)識(shí),那時(shí)再回過(guò)頭來(lái)看看上述定義,就會(huì)有所理解。在此之前,只需要知道兩點(diǎn)就足夠了:(1)深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一種;(2)深度學(xué)習(xí)使用深度神經(jīng)網(wǎng)絡(luò)為主要工具,這也是其得名的原因。
1.2基本概念
在有關(guān)深度學(xué)習(xí)的文獻(xiàn)閱讀中,經(jīng)常會(huì)遇到一些術(shù)語(yǔ)和概念。對(duì)于初學(xué)者來(lái)說(shuō),快速入門(mén)的方法莫過(guò)于對(duì)其中某些關(guān)鍵概念的掌握。把握整個(gè)領(lǐng)域的知識(shí)架構(gòu),提綱挈領(lǐng)地學(xué)習(xí),避免陷入只見(jiàn)樹(shù)木,不見(jiàn)森林的困境。本節(jié)意在以淺顯而非專(zhuān)業(yè)化的語(yǔ)言描述機(jī)器學(xué)習(xí)、深度學(xué)習(xí)中一些關(guān)鍵的概念,梳理整個(gè)領(lǐng)域的知識(shí)架構(gòu),為進(jìn)一步了解深度學(xué)習(xí)的原理和應(yīng)用做好鋪墊。
首先從一些基本的概念說(shuō)起。隨著人工智能領(lǐng)域在近些年的火爆,科技工作者的微信朋友圈經(jīng)常被人工智能相關(guān)的新聞和技術(shù)帖刷屏。人工智能、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等名詞成了圈內(nèi)的高頻詞匯。這些概念都是什么意思,又有什么關(guān)系呢?
蒙特利爾大學(xué)深度學(xué)習(xí)大神YoshuaBengio在其即將于MIT出版社出版的Deeplearning[6]一書(shū)中對(duì)這些概念進(jìn)行了闡述,借用其文氏圖表示這些概念的關(guān)系如圖1.1所示。