深度學(xué)習(xí)理論由Hinton等人于2006年提出, 其概念源于對人工神經(jīng)網(wǎng)絡(luò)的研究。深度學(xué)習(xí)技術(shù)通過組合數(shù)據(jù)的低層特征形成更加抽象的高層屬性, 以發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示。
本書主要闡述基于深度學(xué)習(xí)理論的一些模型和算法。全書共分為8章, 主要內(nèi)容包括緒論、TensorFlow和Keras簡介、簡單神經(jīng)網(wǎng)絡(luò)、圖像類數(shù)據(jù)處理、序列類數(shù)據(jù)處理、深度學(xué)習(xí)模型優(yōu)化、數(shù)據(jù)和模型的處理與調(diào)試、現(xiàn)代深度學(xué)習(xí)模型概述。附錄給出了基于深度學(xué)習(xí)的視頻目標(biāo)跟蹤研究進展綜述和QLearning算法的參考代碼。為便于學(xué)習(xí)和參考, 各章均包含豐富的思考題。
本書主要面向工科院校人工智能、模式識別、數(shù)據(jù)挖掘和深度學(xué)習(xí)等專業(yè)的本科生, 也可供相關(guān)專業(yè)的研究生和工程技術(shù)人員參考。
2015年10月, 以深度學(xué)習(xí)技術(shù)為基礎(chǔ)的人工智能圍棋程序 AlphaGo連續(xù)五局擊敗歐洲圍棋冠軍樊輝; 2016年3月, AlphaGo以4∶1戰(zhàn)勝排名第四的韓國職業(yè)棋手李世石; 2017年5月, AlphaGo 又以3∶0戰(zhàn)勝排名第一的中國職業(yè)棋手柯潔。自此國內(nèi)迎來深度學(xué)習(xí)的研究熱潮。2019年圖靈獎授予了深度學(xué)習(xí)研究領(lǐng)域的Hinton教授等三人。
深度學(xué)習(xí)理論是由Hinton等人于2006年提出的, 其概念源于人工神經(jīng)網(wǎng)絡(luò)的研究, 它通過組合低層特征來形成更加抽象的高層表示屬性類別或特征, 以發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示。
深度學(xué)習(xí)在短短數(shù)年間迅猛發(fā)展, 顛覆了語音識別、圖像分類、文本理解等領(lǐng)域的算法設(shè)計思路, 逐漸形成了一種從訓(xùn)練數(shù)據(jù)出發(fā), 經(jīng)過一個端到端的模型, 然后輸出得到最終結(jié)果的新模式。這一創(chuàng)新不僅使整個系統(tǒng)變得更加簡潔, 而且準(zhǔn)確度也能夠通過綜合調(diào)整深度神經(jīng)網(wǎng)絡(luò)中各個層的特征信息來不斷提升。深度學(xué)習(xí)憑借大數(shù)據(jù)時代與電子技術(shù)的助力實現(xiàn)了迅速發(fā)展。深度學(xué)習(xí)網(wǎng)絡(luò)對各種海量數(shù)據(jù)(不管是標(biāo)注數(shù)據(jù)、弱標(biāo)注數(shù)據(jù)還是僅僅數(shù)據(jù)本身)都可以加以利用并完全自動地學(xué)習(xí)深層的知識表達, 這種知識其本質(zhì)就是原始數(shù)據(jù)的高度濃縮與概括。
得益于深度學(xué)習(xí)強大的特征提取能力及其在計算機視覺、語音識別、大數(shù)據(jù)等領(lǐng)域取得的巨大成功, 深度學(xué)習(xí)已經(jīng)進入人們的視野, 將其應(yīng)用于實際工程方面具有良好的發(fā)展前景, 并已成為當(dāng)前領(lǐng)域的熱點研究方向。
本書主要闡述基于深度學(xué)習(xí)理論的一些模型和算法, 在對其進行詳細介紹的同時, 吸納了國內(nèi)外許多具有代表性的最新研究成果。全書取材新穎, 內(nèi)容豐富, 注重理論與實際的結(jié)合, 提供了將深度學(xué)習(xí)應(yīng)用到實際項目中所需要的知識。
全書內(nèi)容共分為8章:第1章緒論, 介紹深度學(xué)習(xí)的思想、定義和研究現(xiàn)狀以及未來的發(fā)展趨勢, 由劉玉良、侯偉編寫; 第2章TensorFlow和Keras簡介, 主要介紹TensorFlow以及Keras框架, 并通過實際操作進行演示說明, 由戴鳳智、魏寶昌編寫; 第3章簡單神經(jīng)網(wǎng)絡(luò), 從人腦學(xué)習(xí)的角度引入人工神經(jīng)網(wǎng)絡(luò)的概念, 講述基本理論并通過Keras予以實現(xiàn), 由張全、袁亞圣編寫; 第4章圖像類數(shù)據(jù)處理, 以卷積神經(jīng)網(wǎng)絡(luò)為依托, 介紹相關(guān)的深度技術(shù), 并將其應(yīng)用于圖像類的數(shù)據(jù)處理之中, 由葉忠用、尹迪編寫; 第5章序列類數(shù)據(jù)處理, 主要介紹了一系列序列類數(shù)據(jù)的處理方法并通過Keras進行實現(xiàn), 由金霞、陳瑩編寫; 第6章深度學(xué)習(xí)模型優(yōu)化, 系統(tǒng)地介紹了幾種常見的深度學(xué)習(xí)模型的優(yōu)化方法, 同時討論影響深度學(xué)習(xí)模型優(yōu)化的因素, 由李杰、章朱明編寫。第7章數(shù)據(jù)和模型的處理與調(diào)試, 介紹了如何根據(jù)具體應(yīng)用挑選一個合適的算法以及對系統(tǒng)的性能進行評價, 并根據(jù)實驗反饋的性能改進機器學(xué)習(xí)系統(tǒng), 由張全、袁亞圣編寫; 第8章現(xiàn)代深度學(xué)習(xí)模型概述, 介紹了幾種常見的深度學(xué)習(xí)模型, 包括玻爾茲曼機、自編碼器、深度信念網(wǎng)絡(luò)等, 為將來的模型設(shè)計提供思路, 由張全、尹迪編寫。魏寶昌完成了本書附錄部分的編寫工作。全書由劉玉良、戴鳳智和張全最終整理并成稿。
本書在編寫過程中得到了中國人工智能學(xué)會智能空天系統(tǒng)專業(yè)委員會主任、北京航空航天大學(xué)賈英民教授的鼓勵和支持, 他親自為本書作序。作為后輩學(xué)者, 本書作者非常感謝賈英民教授的提攜。本書的出版是天津科技大學(xué)電子信息與自動化學(xué)院集體努力的結(jié)果。其中, 劉玉良老師及其研究生團隊成員張全、李杰、章朱明、侯偉, 以及戴鳳智老師及其研究生團隊成員魏寶昌、葉忠用、金霞、袁亞圣、尹迪、陳瑩均參與了本書的編寫與校正工作。同時感謝西安電子科技大學(xué)出版社領(lǐng)導(dǎo)和參與此書編輯出版的工作人員的大力協(xié)助, 倘若沒有他們的熱情支持, 本書難以如此迅速地和大家見面。此外, 如果沒有各位學(xué)者以公開出版物、課程和代碼的方式分享他們的成果, 本書可能也不會存在, 這里對于他們的奉獻表示衷心感謝。
由于編者水平有限, 書中不妥之處在所難免, 懇請讀者批評指正
第1章 緒論 1
1.1 引言 1
1.2 基本術(shù)語 2
1.3 監(jiān)督學(xué)習(xí)算法 6
1.3.1 支持向量機 6
1.3.2 決策樹 9
1.4 無監(jiān)督學(xué)習(xí)算法 11
1.4.1 主成分分析 11
1.4.2 K均值聚類 15
1.5 機器學(xué)習(xí) 16
1.6 深度學(xué)習(xí)的趨勢 21
1.6.1 與日俱增的數(shù)據(jù)量 21
1.6.2 愈發(fā)龐大的計算資源 22
1.6.3 越來越高的性能以及解決實際問題的潛力 23
思考題 23
參考文獻 24
第2章 TensorFlow和Keras簡介 27
2.1 TensorFlow簡介 27
2.1.1 概述 27
2.1.2 TensorFlow的使用 29
2.1.3 TensorFlow的可視化 32
2.2 Keras簡介 36
2.2.1 Keras概述 36
2.2.2 Keras的使用 37
2.2.3 Keras的可視化 38
思考題 39
參考文獻 39
第3章 簡單神經(jīng)網(wǎng)絡(luò) 40
3.1 人腦是如何學(xué)習(xí)的 40
3.2 模仿人腦——神經(jīng)元(感知器) 42
3.3 非線性神經(jīng)元 44
3.4 神經(jīng)網(wǎng)絡(luò)架構(gòu) 47
3.5 梯度下降 49
3.5.1 代價函數(shù) 49
3.5.2 梯度下降 50
3.6 反向傳播 53
3.6.1 多層神經(jīng)網(wǎng)絡(luò)的數(shù)學(xué)表示 53
3.6.2 反向傳播算法原理 54
3.7 實現(xiàn)簡單神經(jīng)網(wǎng)絡(luò) 56
思考題 62
參考文獻 63
第4章 圖像類數(shù)據(jù)處理 65
4.1 二維卷積神經(jīng)網(wǎng)絡(luò)的基本原理 65
4.1.1 卷積神經(jīng)網(wǎng)絡(luò)的原理 66
4.1.2 參數(shù)共享 69
4.1.3 池化 72
4.1.4 分類原理 75
4.2 簡單卷積神經(jīng)網(wǎng)絡(luò)實例 78
4.3 過度擬合 86
4.3.1 容量、過擬合與欠擬合的基本概念 86
4.3.2 數(shù)據(jù)集增強 88
4.3.3 L2正則化 89
4.3.4 L1正則化 93
4.3.5 Dropout 95
4.3.6 提前終止 99
4.4 時間優(yōu)化 104
4.4.1 交叉熵代價函數(shù) 104
4.4.2 批標(biāo)準(zhǔn)化 108
4.4.3 隨機梯度下降 110
4.4.4 動量 112
4.4.5 Nesterov動量 116
4.5 綜合二維卷積神經(jīng)網(wǎng)絡(luò)實例 116
思考題 121
參考文獻 123
第5章 序列類數(shù)據(jù)處理 127
5.1 一維卷積神經(jīng)網(wǎng)絡(luò) 127
5.1.1 一維卷積神經(jīng)網(wǎng)絡(luò)的原理 127
5.1.2 一維卷積神經(jīng)網(wǎng)絡(luò)實例 129
5.2 循環(huán)神經(jīng)網(wǎng)絡(luò) 134
5.2.1 循環(huán)神經(jīng)網(wǎng)絡(luò)的基本原理 135
5.2.2 循環(huán)神經(jīng)網(wǎng)絡(luò)的輸出 141
5.2.3 上下文依賴型數(shù)據(jù)處理 145
5.2.4 序列到序列的數(shù)據(jù)處理 147
5.3 遞歸神經(jīng)網(wǎng)絡(luò) 150
5.3.1 遞歸神經(jīng)網(wǎng)絡(luò)的基本原理 150
5.3.2 長期依賴性 151
5.4 長短期記憶LSTM網(wǎng)絡(luò) 155
5.4.1 長短期記憶網(wǎng)絡(luò)的基本原理 155
5.4.2 長短期記憶網(wǎng)絡(luò)工程實例 159
思考題 169
參考文獻 170
第6章 深度學(xué)習(xí)模型優(yōu)化 175
6.1 參數(shù)初始化 175
6.2 超參數(shù)尋優(yōu)算法 179
6.2.1 手動超參數(shù)尋優(yōu) 179
6.2.2 超參數(shù)尋優(yōu)算法 181
6.3 基于梯度的自適應(yīng)學(xué)習(xí)算法 183
6.3.1 AdaGrad算法 183
6.3.2 RMSProp算法 184
6.3.3 Adam算法 185
6.4 生成對抗神經(jīng)網(wǎng)絡(luò)及實例 187
6.5 遷移學(xué)習(xí)及實例 198
6.6 強化學(xué)習(xí) 215
6.7 模型優(yōu)化的局限性 227
6.7.1 局部極小值 227
6.7.2 梯度消失、梯度爆炸與懸崖 228
6.7.3 鞍點 232
6.7.4 長期依賴 233
6.7.5 梯度的非精確性 234
思考題 234
參考文獻 236
第7章 數(shù)據(jù)和模型的處理與調(diào)試 239
7.1 模型評價 239
7.2 數(shù)據(jù)預(yù)處理 241
7.3 基礎(chǔ)模型的選擇 246
7.4 模型調(diào)試 248
思考題 250
參考文獻 251
第8章 現(xiàn)代深度學(xué)習(xí)模型概述 253
8.1 玻爾茲曼機 253
8.1.1 標(biāo)準(zhǔn)玻爾茲曼機 253
8.1.2 受限玻爾茲曼機 255
8.1.3 深層玻爾茲曼機 258
8.2 自編碼器 262
8.2.1 標(biāo)準(zhǔn)自編碼器 262
8.2.2 稀疏自編碼器 264
8.2.3 降噪自編碼器 266
8.3 深度信念網(wǎng)絡(luò)及實例 269
8.4 殘差神經(jīng)網(wǎng)絡(luò)及實例 278
8.5 膠囊神經(jīng)網(wǎng)絡(luò)及實例 286
思考題 294
參考文獻 295
附錄 298
附錄A 基于深度學(xué)習(xí)的視頻目標(biāo)跟蹤研究進展綜述 298
附錄B QLearning算法的參考代碼 309