本書是利用實例來講解深度學習框架以及深度學習方法的綜合性著作,介紹了四大深度學習框架(TensorFlow、Caffe、Torch和MXNet),還詳細介紹了調參、二次接口的編程、遷移學習的模型等內容。
PREFACE前 言自20世紀80年代以來,機器學習已經在算法、理論和應用等方面取得了巨大成功,廣泛應用于產業(yè)界與學術界。簡單來說,機器學習就是通過算法使得機器能從大量歷史數據中學習規(guī)律,從而對新的樣本完成智能識別或對未來做預測。深度學習是一種機器學習方法,在一些最新的研究領域和新的應用背景下,可用數據量的激增、計算能力的增強以及計算成本的降低為深度學習的快速發(fā)展鋪平了道路,同時也為深度學習在各大領域的應用提供了支撐。自AlphaGo被提出并成功擊敗職業(yè)圍棋手后,“深度學習”這一概念快速進入人們的視野并在業(yè)界引起了轟動,其因強大的特征提取能力以及靈活性在國內外各大企業(yè)中掀起一陣狂潮,在語音識別、圖像識別和圖像處理領域取得的成果尤為突出。
本書是以實踐案例為主的深度學習框架結合編程實戰(zhàn)的綜合性著作,將帶領讀者逐步掌握深度學習需要的數據處理、調整參數、運行實例和二次編碼,不僅幫助讀者理解理論知識,而且能夠使讀者熟練掌握各種深度學習框架下的編程控制。本書配有大量的實踐案例,既便于課堂教學,又便于學生自學。此外本書還配有同步PPT課件和程序源碼,可供教師進行實驗課程輔導。
本書介紹了四種深度學習框架(TensorFlow、Caffe、Torch、MXNet)的運行原理,配合實例介紹了框架的詳細安裝、程序設計、調參和二次接口的詳細編程過程,引領讀者完整搭建深度學習框架,相信本書能夠從實戰(zhàn)的角度幫助讀者快速掌握和提高深度學習編程的技能。
全書內容可分為緒論、四大框架、遷移學習和并行計算/交叉驗證四大部分,共7章。
第1章討論深度學習與機器學習的關系、深度學習與統(tǒng)計學的關系、深度學習框架、深度學習中涉及的優(yōu)化方法以及對深度學習的展望五個方面的內容,從理論上對深度學習進行全面深刻的剖析,旨在為后續(xù)學習提供理論鋪墊與指導。
第2章對TensorFlow深度學習框架進行詳細介紹,主要包括TensorFlow運作原理、模型構建、框架安裝,并進一步介紹了TensorFlow框架下具體網絡的圖像分類編程實現(xiàn)以及詳細代碼的解讀。
第3章從理論與實戰(zhàn)兩方面對Caffe深度學習框架的發(fā)展、結構以及具體的搭建過程進行詳細介紹,并在Caffe深度學習框架下構建全卷積神經網絡(Fully Convolutional Network,F(xiàn)CN),用該網絡進行圖像語義分割的實戰(zhàn)編程,對該案例程序代碼進行詳細解讀。
第4章介紹Torch深度學習框架的基礎知識,同時介紹Torch深度學習框架中使用的Lua語言;按照Torch框架的安裝過程,以一個具體的目標檢測實例為出發(fā)點,詳細介紹Torch的類和包的用法以及構建神經網絡的全過程,最后介紹Faster R-CNN的方法和實例。
第5章對MXNet框架進行詳細介紹,包括MXNet的基本概念和特點、MXNet的安裝過程等,利用自然語言處理的實例來進一步展示MXNet在深度學習方面的應用實戰(zhàn)。
第6章介紹遷移學習發(fā)展、遷移學習的類型與模型,并以實際案例對遷移學習的過程進行詳細介紹與分析。
第7章在深度學習的背景下分別對并行計算和交叉驗證這兩種方法進行詳細介紹。
本書既可作為大學本科、研究生相關專業(yè)教材,也適用于各種人工智能、機器學習的培訓與認證體系,同時可供廣大深度學習開發(fā)人員參考。
本書由多人合作完成,其中,第1章由太原理工大學強彥編寫,第2章由太原理工大學趙涓涓編寫,第3章由太原理工大學王華編寫,第4章由太原理工大學肖小嬌編寫,第5章由晉中學院董云云編寫,第6章由太原理工大學馬瑞青編寫,第7章由大同大學傅文博編寫,全書由強彥審閱。
本書在撰寫過程中得到了趙鵬飛、羅嘉瀅、肖寧、高慧明、吳保榮等項目組成員和業(yè)內專家的大力支持和協(xié)助,在此一并表示衷心的感謝!
由于作者水平有限,不當之處在所難免,懇請讀者及同仁賜教指正。
CONTENTS
目 錄
前言
第1章 緒論 1
1.1 機器學習與深度學習 1
1.1.1 機器學習與深度學習的關系 2
1.1.2 傳統(tǒng)機器學習與深度學習的對比 3
1.2 統(tǒng)計學與深度學習 5
1.2.1 統(tǒng)計學與深度學習的關系 5
1.2.2 基于統(tǒng)計的深度學習技術 6
1.3 本書涉及的深度學習框架 8
1.4 優(yōu)化深度學習的方法 8
1.5 深度學習展望 9
第2章 TensorFlow深度學習框架構建方法與圖像分類的實現(xiàn) 12
2.1 TensorFlow概述 12
2.1.1 TensorFlow的特點 13
2.1.2 TensorFlow中的模型 14
2.2 TensorFlow框架安裝 16
2.2.1 基于Anaconda的安裝 16
2.2.2 測試TensorFlow 19
2.3 基于TensorFlow框架的圖像分類實現(xiàn)(ResNet-34) 20
2.3.1 應用背景 20
2.3.2 ResNet 21
2.3.3 ResNet程序實現(xiàn) 24
2.3.4 詳細代碼解析 27
2.3.5 實驗結果及分析 51
第3章 Caffe深度學習框架搭建與圖像語義分割的實現(xiàn) 56
3.1 Caffe概述 56
3.1.1 Caffe的特點 56
3.1.2 Caffe框架結構 57
3.2 Caffe框架安裝與調試 59
3.3 基于Caffe框架的圖像分割實現(xiàn)(FCN) 64
3.3.1 用Caffe構建卷積神經網絡 64
3.3.2 FCN-8s網絡簡介 69
3.3.3 詳細代碼解讀 85
3.3.4 實驗結果與結論 98
第4章 Torch深度學習框架搭建與目標檢測的實現(xiàn) 100
4.1 Torch概述 100
4.1.1 Torch的特點 100
4.1.2 Lua語言 102
4.2 Torch框架安裝 104
4.3 基于Torch框架的目標檢測實現(xiàn)(Faster R-CNN) 113
4.3.1 Torch的類和包的基本用法 113
4.3.2 用Torch構建神經網絡 116
4.3.3 Faster R-CNN介紹 119
4.3.4 Faster R-CNN實例 127
4.3.5 實驗結果分析 161
第5章 MXNet深度學習框架構建與自然語言處理的實現(xiàn) 164
5.1 MXNet概述 164
5.1.1 MXNet基礎知識 164
5.1.2 編程接口 166
5.1.3 系統(tǒng)實現(xiàn) 169
5.1.4 MXNet的關鍵特性 171
5.2 MXNet框架安裝 172
5.3 基于MXNet框架的自然語言處理實現(xiàn)(LSTM) 179
5.3.1 自然語言處理應用背景 179
5.3.2 RNN及LSTM網絡 180
5.3.3 Bucketing及不同長度的序列訓練 183
5.3.4 詳細代碼實現(xiàn) 185
5.3.5 實驗過程及實驗結果分析 191
第6章 遷移學習 195
6.1 遷移學習發(fā)展概述 195
6.2 遷移學習的類型與模型 196
6.2.1 凍結源模型與微調源模型 197
6.2.2 神經網絡遷移學習模型與分類器遷移學習模型 197
6.3 遷移學習方法實例指導 199
6.3.1 遷移學習應用示例 199
6.3.2 實驗結論 202
第7章 并行計算與交叉驗證 203
7.1 并行計算 203
7.1.1 數據并行框架 204
7.1.2 模型并行框架 205
7.1.3 數據并行與模型并行的混合架構 205
7.2 交叉驗證 207
7.2.1 留出法 207
7.2.2 K折交叉驗證 208
7.2.3 留一交叉驗證 209
參考文獻 211