《深度學習核心技術與實踐》是2018年2月電子工業出版社出版的圖書,作者是猿輔導研究團隊。
基本介紹
- 書名:深度學習核心技術與實踐
- 作者:猿輔導研究團隊
- ISBN:9787121329050
- 頁數:528頁
- 定價:119元
- 出版社:電子工業出版社
- 出版時間:2018年2月
- 開本:16開
內容簡介,圖書目錄,
內容簡介
本書主要介紹深度學習的核心算法,以及在計算機視覺、語音識別、自然語漏提言處理中的相關套用。本書的作者們都是業界第一線的深度學習從業者,所以書中所寫內容和業界聯繫緊密,所涵蓋的深度學習相關知識點比較全面。本書主要講解原理,較少貼代碼。閥犁巴本書適合深度學習拘地糊從業人士或者廈套槓相關研究生作為參考資料,也可以作為入門教程來大致了解深度學習的相關前沿技術。
圖書目錄
目錄
第1 部分深度學習基礎篇1
1 概述2
1.1 人工智慧. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 人工智慧的分類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2 人工智慧發汗匙催匪展史. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 機器學習. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.1 機器學習的由來. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.2 機器學習發展史. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.3 機器學習方法分類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2.4 機器學習中的基本概念. . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3 神經網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.1 神經網路發展史. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
參考仔譽迎墊文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2 神經網路17
2.1 在神經科學中對生物神經元的研究. . . . . . . . . . . . . . . . . . . . . . . . . 17
2.1.1 神經元激活機制. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.1.2 神經元的特點. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2 神經元模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.1 線性神經元. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.2 線性閾值神經元. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.3 Sigmoid 神經元. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.4 Tanh 神簽故付經元. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.5 ReLU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.6 Maxout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.7 Softmax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.8 小結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3 感知機. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3.1 感知機的提出. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3.2 感知機的困境. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.4 DNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4.1 輸入層、輸出層及隱層. . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.4.2 目標函式的選取. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.4.3 前向傳播. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.4.4 後向傳播. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.4.5 參數更新. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.4.6 神經網路的訓練步驟. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3 初始化模型38
3.1 受限玻爾茲曼機. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.1.1 能量模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.1.2 帶隱藏單元的能量模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.1.3 受限玻爾茲曼機基本原理. . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.1.4 二值RBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.1.5 對比散度. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.2 自動編碼器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2.1 稀疏自動編碼器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.2.2 降噪自動編碼器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.2.3 棧式自動編碼器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.3 深度信念網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4 卷積神經網路53
4.1 卷積運算元. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.2 卷積的特徵. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.3 卷積網路典型結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.3.1 基本網路結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.3.2 構成卷積神經網路的層. . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.3.3 網路結構模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.4 卷積網路的層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.4.1 卷積層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.4.2 池化層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5 循環神經網路68
5.1 循環神經網路簡介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.2 RNN、LSTM 和GRU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.3 雙向RNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.4 RNN 語言模型的簡單實現. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6 深度學習最佳化算法81
6.1 SGD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.2 Momentum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
6.3 NAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6.4 Adagrad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.5 RMSProp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.6 Adadelta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.7 Adam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.8 AdaMax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.9 Nadam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.10 關於最佳化算法的使用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
7 深度學習訓練技巧94
7.1 數據預處理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
7.2 權重初始化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
7.3 正則化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
7.3.1 提前終止. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
7.3.2 數據增強. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
7.3.3 L2/L1 參數正則化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
7.3.4 集成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
7.3.5 Dropout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
8 深度學習框架103
8.1 Theano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
8.1.1 Theano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
8.1.2 安裝. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
8.1.3 計算圖. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
8.2 Torch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
8.2.1 概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
8.2.2 安裝. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
8.2.3 核心結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
8.2.4 小試牛刀. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
8.3 PyTorch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.3.1 概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.3.2 安裝. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.3.3 核心結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
8.3.4 小試牛刀. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
8.4 Caffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
8.4.1 概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
8.4.2 安裝. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
8.4.3 核心組件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
8.4.4 小試牛刀. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.5 TensorFlow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.5.1 概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.5.2 安裝. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
8.5.3 核心結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
8.5.4 小試牛刀. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
8.6 MXNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.6.1 概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.6.2 安裝. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.6.3 核心結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
8.6.4 小試牛刀. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
8.7 Keras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
8.7.1 概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
8.7.2 安裝. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
8.7.3 模組介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
8.7.4 小試牛刀. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
第2 部分計算機視覺篇140
9 計算機視覺背景141
9.1 傳統計算機視覺. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
9.2 基於深度學習的計算機視覺. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
9.3 參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
10 圖像分類模型147
10.1 LeNet-5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
10.2 AlexNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
10.3 VGGNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
10.3.1 網路結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
10.3.2 配置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
10.3.3 討論. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
10.3.4 幾組實驗. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
10.4 GoogLeNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
10.4.1 NIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
10.4.2 GoogLeNet 的動機. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
10.4.3 網路結構細節. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
10.4.4 訓練方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
10.4.5 後續改進版本. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
10.5 ResNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
10.5.1 基本思想. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
10.5.2 網路結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
10.6 DenseNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
10.7 DPN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
11 目標檢測173
11.1 相關研究. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
11.1.1 選擇性搜尋. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
11.1.2 OverFeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
11.2 基於區域提名的方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
11.2.1 R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
11.2.2 SPP-net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
11.2.3 Fast R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
11.2.4 Faster R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
11.2.5 R-FCN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
11.3 端到端的方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
11.3.1 YOLO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
11.3.2 SSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
11.4 小結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
12 語義分割192
12.1 全卷積網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
12.1.1 FCN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
12.1.2 DeconvNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
12.1.3 SegNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
12.1.4 DilatedConvNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
12.2 CRF/MRF 的使用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
12.2.1 DeepLab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
12.2.2 CRFasRNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
12.2.3 DPN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
12.3 實例分割. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
12.3.1 Mask R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
13 圖像檢索的深度哈希編碼208
13.1 傳統哈希編碼方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
13.2 CNNH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
13.3 DSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
13.4 小結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
第3 部分語音識別篇214
14 傳統語音識別基礎215
14.1 語音識別簡介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
14.2 HMM 簡介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
14.2.1 HMM 是特殊的混合模型. . . . . . . . . . . . . . . . . . . . . . . . . . . 218
14.2.2 轉移機率矩陣. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
14.2.3 發射機率. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
14.2.4 Baum-Welch 算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
14.2.5 後驗機率. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
14.2.6 前向-後向算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
14.3 HMM 梯度求解. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
14.3.1 梯度算法1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
14.3.2 梯度算法2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
14.3.3 梯度求解的重要性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
14.4 孤立詞識別. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
14.4.1 特徵提取. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
14.4.2 孤立詞建模. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
14.4.3 GMM-HMM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
14.5 連續語音識別. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
14.6 Viterbi 解碼. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
14.7 三音素狀態聚類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
14.8 判別式訓練. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
15 基於WFST 的語音解碼256
15.1 有限狀態機. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
15.2 WFST 及半環定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
15.2.1 WFST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
15.2.2 半環(Semiring) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
15.3 自動機操作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
15.3.1 自動機基本操作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
15.3.2 轉換器基本操作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
15.3.3 最佳化操作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
15.4 基於WFST 的語音識別系統. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
15.4.1 聲學模型WFST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
15.4.2 三音素WFST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
15.4.3 發音字典WFST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
15.4.4 語言模型WFST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
15.4.5 WFST 組合和最佳化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
15.4.6 組合和最佳化實驗. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
15.4.7 WFST 解碼. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
16 深度語音識別288
16.1 CD-DNN-HMM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
16.2 TDNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
16.3 CTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
16.4 EESEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
16.5 Deep Speech . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
16.6 Chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
17 CTC 解碼315
17.1 序列標註. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
17.2 序列標註任務的解決辦法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
17.2.1 序列分類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
17.2.2 分割分類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
17.2.3 時序分類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
17.3 隱馬模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
17.4 CTC 基本定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
17.5 CTC 前向算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
17.6 CTC 後向算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
17.7 CTC 目標函式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
17.8 CTC 解碼基本原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
17.8.1 最大機率路徑解碼. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
17.8.2 前綴搜尋解碼. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
17.8.3 約束解碼. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
第4 部分自然語言處理篇334
18 自然語言處理簡介335
18.1 NLP 的難點. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
18.2 NLP 的研究範圍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
19 詞性標註338
19.1 傳統詞性標註模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
19.2 基於神經網路的詞性標註模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
19.3 基於Bi-LSTM 的神經網路詞性標註模型. . . . . . . . . . . . . . . . . . . . . . 342
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
20 依存句法分析345
20.1 背景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
20.2 SyntaxNet 技術要點. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
20.2.1 Transition-based 系統. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
20.2.2 “模板化” 技術. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
20.2.3 Beam Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
21 word2vec 358
21.1 背景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
21.1.1 詞向量. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
21.1.2 統計語言模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
21.1.3 神經網路語言模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
21.1.4 Log-linear 模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
21.1.5 Log-bilinear 模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
21.1.6 層次化Log-bilinear 模型. . . . . . . . . . . . . . . . . . . . . . . . . . . 365
21.2 CBOW 模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
21.3 Skip-gram 模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
21.4 Hierarchical Softmax 與Negative Sampling . . . . . . . . . . . . . . . . . . . . . . 371
21.5 fastText . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
21.6 GloVe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
21.7 小結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
22 神經網路機器翻譯376
22.1 機器翻譯簡介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
22.2 神經網路機器翻譯基本模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
22.3 基於Attention 的神經網路機器翻譯. . . . . . . . . . . . . . . . . . . . . . . . . 379
22.4 谷歌機器翻譯系統GNMT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
22.5 基於卷積的機器翻譯. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
22.6 小結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
第5 部分深度學習研究篇385
23 Batch Normalization 386
23.1 前向與後向傳播. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
23.1.1 前向傳播. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
23.1.2 後向傳播. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
23.2 有效性分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
23.2.1 內部協移. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
23.2.2 梯度流. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
23.3 使用與最佳化方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
23.4 小結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
24 Attention 397
24.1 從簡單RNN 到RNN + Attention . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
24.2 Soft Attention 與Hard Attention . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
24.3 Attention 的套用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
24.4 小結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
25 多任務學習403
25.1 背景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
25.2 什麼是多任務學習. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
25.3 多任務分類與其他分類概念的關係. . . . . . . . . . . . . . . . . . . . . . . . . 406
25.3.1 二分類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
25.3.2 多分類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
25.3.3 多標籤分類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
25.3.4 相關關係. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
25.4 多任務學習如何發揮作用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
25.4.1 提高泛化能力的潛在原因. . . . . . . . . . . . . . . . . . . . . . . . . . . 410
25.4.2 多任務學習機制. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
25.4.3 後向傳播多任務學習如何發現任務是相關的. . . . . . . . . . . . . . . . 412
25.5 多任務學習被廣泛套用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
25.5.1 使用未來預測現在. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
25.5.2 多種表示和度量. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
25.5.3 時間序列預測. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
25.5.4 使用不可操作特徵. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
25.5.5 使用額外任務來聚焦. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
25.5.6 有序遷移. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
25.5.7 多個任務自然地出現. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
25.5.8 將輸入變成輸出. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
25.6 多任務深度學習套用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
25.6.1 臉部特徵點檢測. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
25.6.2 DeepID2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
25.6.3 Fast R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
25.6.4 旋轉人臉網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
25.6.5 實例感知語義分割的MNC . . . . . . . . . . . . . . . . . . . . . . . . . . 422
25.7 小結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
26 模型壓縮426
26.1 模型壓縮的必要性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
26.2 較淺的網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
26.3 剪枝. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
26.4 參數共享. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
26.5 緊湊網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
26.6 二值網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
26.7 小結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
27 增強學習445
27.1 什麼是增強學習. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
27.2 增強學習的數學表達形式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
27.2.1 MDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
27.2.2 策略函式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
27.2.3 獎勵與回報. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
27.2.4 價值函式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
27.2.5 貝爾曼方程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
27.2.6 最優策略性質. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
27.3 用動態規劃法求解增強學習問題. . . . . . . . . . . . . . . . . . . . . . . . . . . 454
27.3.1 Agent 的目標. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
27.3.2 策略評估. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
27.3.3 策略改進. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
27.3.4 策略疊代. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
27.3.5 策略疊代的例子. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
27.3.6 價值疊代. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
27.3.7 價值疊代的例子. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
27.3.8 策略函式和價值函式的關係. . . . . . . . . . . . . . . . . . . . . . . . . 462
27.4 無模型算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
27.4.1 蒙特卡羅法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
27.4.2 時序差分法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
27.4.3 Q-Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
27.5 Q-Learning 的例子. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
27.6 AlphaGo 原理剖析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
27.6.1 圍棋與機器博弈. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
27.6.2 Alpha-Beta 樹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
27.6.3 MCTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
27.6.4 UCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
27.6.5 AlphaGo 的訓練策略. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
27.6.6 AlphaGo 的招式搜尋算法. . . . . . . . . . . . . . . . . . . . . . . . . . . 482
27.6.7 圍棋的對稱性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
27.7 AlphaGo Zero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
28 GAN 486
28.1 生成模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
28.2 生成對抗模型的概念. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
28.3 GAN 實戰. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
28.4 InfoGAN——探尋隱變數的內涵. . . . . . . . . . . . . . . . . . . . . . . . . . . 493
28.5 Image-Image Translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
28.6 WGAN(Wasserstein GAN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
28.6.1 GAN 目標函式的弱點. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
28.6.2 Wasserstein 度量的優勢. . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
28.6.3 WGAN 的目標函式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
A 本書涉及的開源資源列表 506
2.1.2 神經元的特點. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2 神經元模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.1 線性神經元. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.2 線性閾值神經元. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.3 Sigmoid 神經元. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.4 Tanh 神經元. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.5 ReLU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.6 Maxout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.7 Softmax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.8 小結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3 感知機. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3.1 感知機的提出. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3.2 感知機的困境. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.4 DNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4.1 輸入層、輸出層及隱層. . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.4.2 目標函式的選取. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.4.3 前向傳播. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.4.4 後向傳播. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.4.5 參數更新. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.4.6 神經網路的訓練步驟. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3 初始化模型38
3.1 受限玻爾茲曼機. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.1.1 能量模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.1.2 帶隱藏單元的能量模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.1.3 受限玻爾茲曼機基本原理. . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.1.4 二值RBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.1.5 對比散度. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.2 自動編碼器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2.1 稀疏自動編碼器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.2.2 降噪自動編碼器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.2.3 棧式自動編碼器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.3 深度信念網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4 卷積神經網路53
4.1 卷積運算元. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.2 卷積的特徵. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.3 卷積網路典型結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.3.1 基本網路結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.3.2 構成卷積神經網路的層. . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.3.3 網路結構模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.4 卷積網路的層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.4.1 卷積層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.4.2 池化層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5 循環神經網路68
5.1 循環神經網路簡介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.2 RNN、LSTM 和GRU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.3 雙向RNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.4 RNN 語言模型的簡單實現. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6 深度學習最佳化算法81
6.1 SGD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.2 Momentum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
6.3 NAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6.4 Adagrad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.5 RMSProp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.6 Adadelta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.7 Adam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.8 AdaMax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.9 Nadam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.10 關於最佳化算法的使用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
7 深度學習訓練技巧94
7.1 數據預處理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
7.2 權重初始化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
7.3 正則化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
7.3.1 提前終止. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
7.3.2 數據增強. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
7.3.3 L2/L1 參數正則化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
7.3.4 集成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
7.3.5 Dropout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
8 深度學習框架103
8.1 Theano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
8.1.1 Theano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
8.1.2 安裝. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
8.1.3 計算圖. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
8.2 Torch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
8.2.1 概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
8.2.2 安裝. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
8.2.3 核心結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
8.2.4 小試牛刀. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
8.3 PyTorch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.3.1 概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.3.2 安裝. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.3.3 核心結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
8.3.4 小試牛刀. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
8.4 Caffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
8.4.1 概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
8.4.2 安裝. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
8.4.3 核心組件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
8.4.4 小試牛刀. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.5 TensorFlow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.5.1 概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.5.2 安裝. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
8.5.3 核心結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
8.5.4 小試牛刀. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
8.6 MXNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.6.1 概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.6.2 安裝. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.6.3 核心結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
8.6.4 小試牛刀. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
8.7 Keras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
8.7.1 概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
8.7.2 安裝. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
8.7.3 模組介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
8.7.4 小試牛刀. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
第2 部分計算機視覺篇140
9 計算機視覺背景141
9.1 傳統計算機視覺. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
9.2 基於深度學習的計算機視覺. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
9.3 參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
10 圖像分類模型147
10.1 LeNet-5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
10.2 AlexNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
10.3 VGGNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
10.3.1 網路結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
10.3.2 配置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
10.3.3 討論. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
10.3.4 幾組實驗. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
10.4 GoogLeNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
10.4.1 NIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
10.4.2 GoogLeNet 的動機. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
10.4.3 網路結構細節. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
10.4.4 訓練方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
10.4.5 後續改進版本. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
10.5 ResNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
10.5.1 基本思想. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
10.5.2 網路結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
10.6 DenseNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
10.7 DPN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
11 目標檢測173
11.1 相關研究. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
11.1.1 選擇性搜尋. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
11.1.2 OverFeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
11.2 基於區域提名的方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
11.2.1 R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
11.2.2 SPP-net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
11.2.3 Fast R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
11.2.4 Faster R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
11.2.5 R-FCN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
11.3 端到端的方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
11.3.1 YOLO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
11.3.2 SSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
11.4 小結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
12 語義分割192
12.1 全卷積網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
12.1.1 FCN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
12.1.2 DeconvNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
12.1.3 SegNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
12.1.4 DilatedConvNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
12.2 CRF/MRF 的使用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
12.2.1 DeepLab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
12.2.2 CRFasRNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
12.2.3 DPN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
12.3 實例分割. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
12.3.1 Mask R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
13 圖像檢索的深度哈希編碼208
13.1 傳統哈希編碼方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
13.2 CNNH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
13.3 DSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
13.4 小結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
第3 部分語音識別篇214
14 傳統語音識別基礎215
14.1 語音識別簡介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
14.2 HMM 簡介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
14.2.1 HMM 是特殊的混合模型. . . . . . . . . . . . . . . . . . . . . . . . . . . 218
14.2.2 轉移機率矩陣. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
14.2.3 發射機率. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
14.2.4 Baum-Welch 算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
14.2.5 後驗機率. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
14.2.6 前向-後向算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
14.3 HMM 梯度求解. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
14.3.1 梯度算法1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
14.3.2 梯度算法2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
14.3.3 梯度求解的重要性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
14.4 孤立詞識別. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
14.4.1 特徵提取. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
14.4.2 孤立詞建模. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
14.4.3 GMM-HMM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
14.5 連續語音識別. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
14.6 Viterbi 解碼. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
14.7 三音素狀態聚類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
14.8 判別式訓練. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
15 基於WFST 的語音解碼256
15.1 有限狀態機. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
15.2 WFST 及半環定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
15.2.1 WFST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
15.2.2 半環(Semiring) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
15.3 自動機操作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
15.3.1 自動機基本操作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
15.3.2 轉換器基本操作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
15.3.3 最佳化操作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
15.4 基於WFST 的語音識別系統. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
15.4.1 聲學模型WFST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
15.4.2 三音素WFST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
15.4.3 發音字典WFST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
15.4.4 語言模型WFST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
15.4.5 WFST 組合和最佳化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
15.4.6 組合和最佳化實驗. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
15.4.7 WFST 解碼. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
16 深度語音識別288
16.1 CD-DNN-HMM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
16.2 TDNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
16.3 CTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
16.4 EESEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
16.5 Deep Speech . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
16.6 Chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
17 CTC 解碼315
17.1 序列標註. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
17.2 序列標註任務的解決辦法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
17.2.1 序列分類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
17.2.2 分割分類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
17.2.3 時序分類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
17.3 隱馬模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
17.4 CTC 基本定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
17.5 CTC 前向算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
17.6 CTC 後向算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
17.7 CTC 目標函式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
17.8 CTC 解碼基本原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
17.8.1 最大機率路徑解碼. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
17.8.2 前綴搜尋解碼. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
17.8.3 約束解碼. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
第4 部分自然語言處理篇334
18 自然語言處理簡介335
18.1 NLP 的難點. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
18.2 NLP 的研究範圍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
19 詞性標註338
19.1 傳統詞性標註模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
19.2 基於神經網路的詞性標註模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
19.3 基於Bi-LSTM 的神經網路詞性標註模型. . . . . . . . . . . . . . . . . . . . . . 342
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
20 依存句法分析345
20.1 背景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
20.2 SyntaxNet 技術要點. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
20.2.1 Transition-based 系統. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
20.2.2 “模板化” 技術. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
20.2.3 Beam Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
21 word2vec 358
21.1 背景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
21.1.1 詞向量. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
21.1.2 統計語言模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
21.1.3 神經網路語言模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
21.1.4 Log-linear 模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
21.1.5 Log-bilinear 模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
21.1.6 層次化Log-bilinear 模型. . . . . . . . . . . . . . . . . . . . . . . . . . . 365
21.2 CBOW 模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
21.3 Skip-gram 模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
21.4 Hierarchical Softmax 與Negative Sampling . . . . . . . . . . . . . . . . . . . . . . 371
21.5 fastText . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
21.6 GloVe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
21.7 小結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
22 神經網路機器翻譯376
22.1 機器翻譯簡介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
22.2 神經網路機器翻譯基本模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
22.3 基於Attention 的神經網路機器翻譯. . . . . . . . . . . . . . . . . . . . . . . . . 379
22.4 谷歌機器翻譯系統GNMT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
22.5 基於卷積的機器翻譯. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
22.6 小結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
第5 部分深度學習研究篇385
23 Batch Normalization 386
23.1 前向與後向傳播. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
23.1.1 前向傳播. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
23.1.2 後向傳播. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
23.2 有效性分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
23.2.1 內部協移. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
23.2.2 梯度流. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
23.3 使用與最佳化方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
23.4 小結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
24 Attention 397
24.1 從簡單RNN 到RNN + Attention . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
24.2 Soft Attention 與Hard Attention . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
24.3 Attention 的套用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
24.4 小結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
25 多任務學習403
25.1 背景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
25.2 什麼是多任務學習. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
25.3 多任務分類與其他分類概念的關係. . . . . . . . . . . . . . . . . . . . . . . . . 406
25.3.1 二分類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
25.3.2 多分類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
25.3.3 多標籤分類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
25.3.4 相關關係. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
25.4 多任務學習如何發揮作用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
25.4.1 提高泛化能力的潛在原因. . . . . . . . . . . . . . . . . . . . . . . . . . . 410
25.4.2 多任務學習機制. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
25.4.3 後向傳播多任務學習如何發現任務是相關的. . . . . . . . . . . . . . . . 412
25.5 多任務學習被廣泛套用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
25.5.1 使用未來預測現在. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
25.5.2 多種表示和度量. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
25.5.3 時間序列預測. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
25.5.4 使用不可操作特徵. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
25.5.5 使用額外任務來聚焦. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
25.5.6 有序遷移. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
25.5.7 多個任務自然地出現. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
25.5.8 將輸入變成輸出. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
25.6 多任務深度學習套用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
25.6.1 臉部特徵點檢測. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
25.6.2 DeepID2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
25.6.3 Fast R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
25.6.4 旋轉人臉網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
25.6.5 實例感知語義分割的MNC . . . . . . . . . . . . . . . . . . . . . . . . . . 422
25.7 小結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
26 模型壓縮426
26.1 模型壓縮的必要性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
26.2 較淺的網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
26.3 剪枝. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
26.4 參數共享. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
26.5 緊湊網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
26.6 二值網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
26.7 小結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
27 增強學習445
27.1 什麼是增強學習. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
27.2 增強學習的數學表達形式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
27.2.1 MDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
27.2.2 策略函式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
27.2.3 獎勵與回報. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
27.2.4 價值函式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
27.2.5 貝爾曼方程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
27.2.6 最優策略性質. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
27.3 用動態規劃法求解增強學習問題. . . . . . . . . . . . . . . . . . . . . . . . . . . 454
27.3.1 Agent 的目標. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
27.3.2 策略評估. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
27.3.3 策略改進. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
27.3.4 策略疊代. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
27.3.5 策略疊代的例子. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
27.3.6 價值疊代. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
27.3.7 價值疊代的例子. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
27.3.8 策略函式和價值函式的關係. . . . . . . . . . . . . . . . . . . . . . . . . 462
27.4 無模型算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
27.4.1 蒙特卡羅法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
27.4.2 時序差分法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
27.4.3 Q-Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
27.5 Q-Learning 的例子. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
27.6 AlphaGo 原理剖析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
27.6.1 圍棋與機器博弈. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
27.6.2 Alpha-Beta 樹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
27.6.3 MCTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
27.6.4 UCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
27.6.5 AlphaGo 的訓練策略. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
27.6.6 AlphaGo 的招式搜尋算法. . . . . . . . . . . . . . . . . . . . . . . . . . . 482
27.6.7 圍棋的對稱性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
27.7 AlphaGo Zero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
28 GAN 486
28.1 生成模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
28.2 生成對抗模型的概念. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
28.3 GAN 實戰. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
28.4 InfoGAN——探尋隱變數的內涵. . . . . . . . . . . . . . . . . . . . . . . . . . . 493
28.5 Image-Image Translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
28.6 WGAN(Wasserstein GAN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
28.6.1 GAN 目標函式的弱點. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
28.6.2 Wasserstein 度量的優勢. . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
28.6.3 WGAN 的目標函式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
A 本書涉及的開源資源列表 506