《深度學習:一起玩轉TensorLayer》
《深度學習:一起玩轉TensorLayer》
董豪 等 編著
2018年1月出版
點擊此處參與抽獎,選取一名同學獲贈此書,1月1日自動開獎。
內容簡介
本書由TensorLayer創始人領銜寫作,TensorLayer社區眾包完成,作者全部來自一線人工智慧研究員和工程師,內容不僅覆蓋了傳統書籍都有的多層感知器、卷積網路、遞歸網路及增強學習等,還著重講解了生成對抗網路、學習方法和實踐經驗,配有若干產品級別的實例。讀者將會從零開始學會目前最新的深度學習技術,以及使用TL實現各種應用。
本書以通俗易懂的方式講解深度學習技術,同時配有實現方法教學,面向深度學習初學者、進階者,以及希望長期從事深度學習研究和產品開發的深度學習工程師和TensorFlow用戶。
作者簡介
董豪
目前就讀於帝國理工學院,從事計算機視覺、醫療數據分析和深度學習理論研究,在ICCV、TNSRE、TIFS、ACM MM等頂級會議和期刊發表過論文,Neurocomputing、TIP等會議和期刊的審稿人。有創業經驗,擅長把深度學習演算法與實際問題結合,獲得多項國家發明專利和實用新型專利,TensorLayer創始人。
郭毅可
帝國理工學院計算機系終身教授,Data Science Institute主任,Discovery Science Group主任,主持多項歐盟和英國大型項目,研究重點為機器學習、雲計算、大數據和生物信息學。倫敦E-Science研究中心首席科學家,英國InforSense有限公司董事會主席兼首席執行官,上海生物信息技術研究中心客座教授、首席科學家,TensorLayer項目領導。
楊光
帝國理工醫學院高級研究員,皇家布朗普頓醫院醫學圖像分析師,倫敦大學聖喬治醫學院榮譽講師,倫敦大學學院(UCL)碩士、博士、IEEE會員、SPIE會員、ISMRM會員、BMVA會員,專註於醫療大數據以及醫學圖像的成像和分析,在各類期刊會議上發表論文近40篇,國際專利兩項,Medical Physics雜誌臨時副主編,MIUA會議委員會委員,長期為專業雜誌會議義務審稿50餘篇。其研究方向獲得英國EPSRC、CRUK、NIHR和British Heart Foundation (BHF)資助。近期致力於Medical AI方向的創新創業。
吳超
帝國理工數字科學研究所研究員,主要從事醫療和城市領域數據分析和建模的研究工作,研究工作獲得EPSRC、Royal Society等多項研究基金資助。
王劍虹
帝國理工碩士及利物浦大學本科畢業,主要研究語音識別分類問題;目前在UCL攻讀研究型碩士,主要研究增強學習在遊戲中的運用。
幺忠瑋
帝國理工碩士,本科畢業於北京郵電大學,主要研究方向為計算機視覺,對生成模型和目標識別領域感興趣。目前致力於將目標檢測演算法植入嵌入式系統實現即時檢測。
張敬卿
帝國理工博士在讀,研究型碩士,主要研究興趣包括深度學習、數據挖掘、時間序列與文本挖掘、多模態問題與生成模型。本科畢業於清華大學計算機科學與技術系,曾獲得中國國家獎學金。
陳竑
北京大學光華管理學院在讀,哈爾濱工業大學電子與信息工程學院畢業,深度學習愛好者。
林一鳴
帝國理工博士在讀,主要研究深度學習在人臉分析方向的應用。
于思淼
帝國理工博士在讀,浙江大學本科畢業,主要研究方向為深度學習、生成模型及其在計算機視覺方面的應用。
莫元漢
帝國理工博士在讀,北京航空航天大學本科畢業,主要研究方向為深度學習、動力學及其在醫療圖像分析方面的應用。
袁航
瑞士洛桑聯邦理工(EPFL)碩士在讀,本科就讀於德國雅各布大學(Jacobs)計算機系,及在美國卡內基梅隆大學(CMU)計算機科學學院交換學習,主要從事計算神經科學與電腦人機介面研究。之前分別在帝國理工及馬克斯普朗克智能系統研究院(Max Planck Institute for Intelligent Systems)進行研習,現在主要在EPFL G-lab研究脊髓修復對運動功能康復及血壓控制等課題。
本書前言
深度學習已經成為了當今人工智慧發展的主要助力,國務院印發的《新一代人工智慧發展規劃》中表示,2020年我國人工智慧核心產業規模超過1500億元,帶動相關產業規模超過1萬億元;2030年人工智慧核心產業規模超過1萬億元,帶動相關產業規模超過10萬億元。
為此產業界急需大量實用性人才,而深度學習是一門理論與工程相結合的科學,本書將以通俗易懂的方式講解深度學習技術,並輔以實踐教學。本書同時面向深度學習初學者、進階者及工程師,內容涵蓋了全連接網路、自編碼器、卷積神經網路、遞歸神經網路、深度增強學習、生成對抗網路等,並附有多個進階實例教程。與傳統深度學習書籍相比,本書有以下特點。
本書注重實踐,科研人員和工程師都希望有一個深度學習開發工具可以同時滿足學術界和產業界的需求,可讓最新的人工智慧演算法很快地從實驗室投入到產品中。為此我們開發了深度學習框架—— TensorLayer。讀者可以從零基礎開始學習掌握目前最新的深度學習技術。更多關於TensorLayer的設計思路請見第1章。帝國理工數據科學院(Data Science Institute)是TensorLayer的發起單位和主要開發單位,郭毅可教授是該項目領導。
本書對深度學習的最新方法進行了更多的闡述,特別是生成對抗網路方面,該研究方向已在無監督學習方面取得重大突破,並已經開始在產業界產生非常大的影響。本書還介紹及使用了多種新的反卷積方法,如子像素卷積和縮放卷積。
研究深度學習需要做大量的實驗,本書在講解技術的同時傳授了很多實驗經驗。除神經網路外,本書還講解了數據預處理、數據後加工、訓練、服務架設等任務,這些都是搭建整個學習系統和產品的基本工作流。
本書編著方式與其他同類書籍不同,是由TensorLayer中文社區眾包完成的,由董豪統稿。本書代碼除第3章和第14章實例五外都由董豪提供,本書第1章由莫元漢、董豪和郭毅可執筆;第2章教學部分由楊光執筆,實現講解部分由董豪執筆;第3章由幺忠瑋執筆;第4章由林一鳴執筆;第5章由王劍虹執筆;第6章由袁航執筆;第7章由於思淼執筆;第8章與第12章實例三由張敬卿執筆;第9章、第10章實例一和第13章實例四由董豪執筆;第11章實例二講解部分由楊光執筆,實現部分由董豪執筆;第14章實例五由陳竑執筆。本書圖片整理由出版社、吳超、趙婧楠和種道涵完成,封面設計由出版社和王盼完成。
雖然本書的作者都是一線科研人員和技術人員,但是不妥和錯誤之處在所難免,真誠地希望有關專家和讀者給予批評指正,以便再版時修改。最後,在計算機技術發展非常快的今天,書籍里的知識更新速度有限,建議讀者多參與社區討論交流。本書代碼例子使用TensorFlow1.2和TensorLayer1.5.3,Python3在Ubuntu下測試。由於TensorFlow和TensorLayer在不斷地更新,若出現兼容性問題,請到各章節給定的網址鏈接中獲取最新的代碼。
本書作者
2017年12月
本書目錄
1 深度學習簡介1
1.1 人工智慧、機器學習和深度學習 1
1.1.1 引言 1
1.1.2 人工智慧、機器學習和深度學習三者的關係 2
1.2 神經網路 3
1.2.1 感知器 3
1.2.2 激活函數 5
1.2.3 損失函數 8
1.2.4 梯度下降和隨機梯度下降 8
1.2.5 反向傳播演算法簡述 11
1.2.6 其他神經網路 12
1.3 學習方法建議 13
1.3.1 網路資源 13
1.3.2 TensorFlow 官方深度學習教程 14
1.3.3 開源社區 15
1.4 TensorLayer 15
1.4.1 深度學習框架概況 15
1.4.2 TensorLayer 概括 16
1.4.3 實驗環境配置 17
2 多層感知器19
2.1 McCulloch-Pitts 神經元模型 19
2.1.1 人工神經網路到底能幹什麼?到底在幹什麼 21
2.1.2 什麼是激活函數?什麼是偏值 22
2.2 感知器 23
2.2.1 什麼是線性分類器 24
2.2.2 線性分類器有什麼優缺點 26
2.2.3 感知器實例和異或問題(XOR 問題) 26
2.3 多層感知器 30
2.4 實現手寫數字分類 32
2.5 過擬合 40
2.5.1 什麼是過擬合 40
2.5.2 Dropout 41
2.5.3 批規範化 42
2.5.4 L1、L2 和其他正則化方法 42
2.5.5 Lp 正則化的圖形化解釋 44
2.6 再實現手寫數字分類 46
2.6.1 數據迭代器 46
2.6.2 通過all_drop 啟動與關閉Dropout 47
2.6.3 通過參數共享實現訓練測試切換 50
3 自編碼器54
3.1 稀疏性 54
3.2 稀疏自編碼器 56
3.3 實現手寫數字特徵提取 59
3.4 降噪自編碼器 65
3.5 再實現手寫數字特徵提取 68
3.6 堆棧式自編碼器及其實現 72
4 卷積神經網路80
4.1 卷積原理 80
4.1.1 卷積操作 81
4.1.2 張量 84
4.1.3 卷積層 85
4.1.4 池化層 87
4.1.5 全連接層 89
4.2 經典任務 90
4.2.1 圖像分類 90
4.2.2 目標檢測 91
4.2.3 語義分割 94
4.2.4 實例分割 94
4.3 經典卷積網路 95
4.3.1 LeNet 95
4.3.2 AlexNet 96
4.3.3 VGGNet 96
4.3.4 GoogLeNet 98
4.3.5 ResNet 99
4.4 實現手寫數字分類 100
4.5 數據增強與規範化 104
4.5.1 數據增強 104
4.5.2 批規範化 106
4.5.3 局部響應歸一化 107
4.6 實現CIFAR10 分類 108
4.6.1 方法1:tl.prepro 做數據增強 108
4.6.2 方法2:TFRecord 做數據增強 114
4.7 反卷積神經網路 120
5 詞的向量表達121
5.1 目的與原理 121
5.2 Word2Vec 124
5.2.1 簡介 124
5.2.2 Continuous Bag-Of-Words(CBOW)模型 124
5.2.3 Skip Gram(SG)模型 129
5.2.4 Hierarchical Softmax 132
5.2.5 Negative Sampling 135
5.3 實現Word2Vec 136
5.3.1 簡介 136
5.3.2 實現 136
5.4 重載預訓練矩陣 144
6 遞歸神經網路148
6.1 為什麼需要它 148
6.2 不同的RNNs 151
6.2.1 簡單遞歸網路 151
6.2.2 迴音網路 152
6.3 長短期記憶 153
6.3.1 LSTM 概括 153
6.3.2 LSTM 詳解 157
6.3.3 LSTM 變種 159
6.4 實現生成句子 160
6.4.1 模型簡介 160
6.4.2 數據迭代 163
6.4.3 損失函數和更新公式 164
6.4.4 生成句子及Top K 採樣 167
6.4.5 接下來還可以做什麼 169
7 深度增強學習171
7.1 增強學習 172
7.1.1 概述 172
7.1.2 基於價值的增強學習 173
7.1.3 基於策略的增強學習 176
7.1.4 基於模型的增強學習 177
7.2 深度增強學習 179
7.2.1 深度Q 學習 179
7.2.2 深度策略網路 181
7.3 更多參考資料 187
7.3.1 書籍 187
7.3.2 在線課程 187
8 生成對抗網路188
8.1 何為生成對抗網路 189
8.2 深度卷積對抗生成網路 190
8.3 實現人臉生成 191
8.4 還能做什麼 198
9 高級實現技巧202
9.1 與其他框架對接 202
9.1.1 無參數層 203
9.1.2 有參數層 203
9.2 自定義層 204
9.2.1 無參數層 204
9.2.2 有參數層 205
9.3 建立辭彙表 207
9.4 補零與序列長度 209
9.5 動態遞歸神經網路 210
9.6 實用小技巧 211
9.6.1 屏蔽顯示 211
9.6.2 參數名字前綴 212
9.6.3 獲取特定參數 213
9.6.4 獲取特定層輸出 213
10 實例一:使用預訓練卷積網路214
10.1 高維特徵表達 214
10.2 VGG 網路 215
10.3 連接TF-Slim 221
11 實例二:圖像語義分割及其醫學圖像應用225
11.1 圖像語義分割概述 225
11.1.1 傳統圖像分割演算法簡介 227
11.1.2 損失函數與評估指標 229
11.2 醫學圖像分割概述 230
11.3 全卷積神經網路和U-Net 網路結構 232
11.4 醫學圖像應用:實現腦部腫瘤分割 234
11.4.1 數據與數據增強 235
11.4.2 U-Net 網路 238
11.4.3 損失函數 239
11.4.4 開始訓練 241
12 實例三:由文本生成圖像244
12.1 條件生成對抗網路之GAN-CLS 245
12.2 實現句子生成花朵圖片 246
13 實例四:超高解析度復原260
13.1 什麼是超高解析度復原 260
13.2 網路結構 261
13.3 聯合損失函數 264
13.4 訓練網路 269
13.5 使用測試 277
14 實例五:文本反垃圾280
14.1 任務場景 280
14.2 網路結構 281
14.3 詞的向量表示 282
14.4 Dynamic RNN 分類器 283
14.5 訓練網路 284
14.5.1 訓練詞向量 284
14.5.2 文本的表示 290
14.5.3 訓練分類器 291
14.5.4 模型導出 296
14.6 TensorFlow Serving 部署 299
14.7 客戶端調用 301
14.8 其他常用方法 306
中英對照表及其縮寫309
參考文獻316
博文視點
您閱讀的專業智庫
喜歡請分享至朋友圈


※前端工程化衡量準則
※從Npm Script到Webpack,6種常見的前端構建工具對比
TAG:博文視點Broadview |