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