內容提要
《深度學習輕鬆學:核心算法與視覺實踐》介紹了深度學習基本算法和視覺領域的套用實例。書中以輕鬆直白的語言,生動詳細地介紹了深層模型相關的基礎知識,並深入剖析了算法的原理與本質。同時,書中還配有大量案例與源碼,幫助讀者切實體會深度學習的核心思想和精妙之處。除此之外,書中還介紹了深度學習在視覺領域的套用,從原理層面揭示其思路思想,幫助讀者在此領域中夯實技術基礎。
《深度學習輕鬆學:核心算法與視覺實踐》十分適合對深度學習感興趣,希望對深層模型有較深入了解的讀者閱讀。
目錄
1 機器學習與深度學習的概念1
1.1 什麼是機器學習 1
1.1.1 機器學習的形式. 2
1.1.2 機器學習的幾個組成部分. 8
1.2 深度學習的逆襲 9
1.3 深層模型在視覺領域的套用. 13
1.4 本書的主要內容 15
1.5 總結. 17
2 數學與機器學習基礎18
2.1 線性代數基礎. 18
2.2 對稱矩陣的性質 22
2.2.1 特徵值與特徵向量 22
2.2.2 對稱矩陣的特徵值和特徵向量 23
2.2.3 對稱矩陣的對角化 24
2.3 機率論. 25
2.3.1 機率與分布. 25
2.3.2 最大似然估計 28
2.4 資訊理論基礎 31
2.5 KL 散度. 33
2.6 凸函式及其性質 37
2.7 機器學習基本概念. 39
2.8 機器學習的目標函式 42
2.9 總結. 44
3 CNN 的基石:全連線層45
3.1 線性部分. 45
3.2 非線性部分 48
3.3 神經網路的模樣 50
3.4 反向傳播法 55
3.4.1 反向傳播法的計算方法. 55
3.4.2 反向傳播法在計算上的抽象. 58
3.4.3 反向傳播法在批量數據上的推廣. 59
3.4.4 具體的例子. 63
3.5 參數初始化 65
3.6 總結. 68
4 CNN 的基石:卷積層69
4.1 卷積操作. 69
4.1.1 卷積是什麼. 69
4.1.2 卷積層效果展示. 73
4.1.3 卷積層匯總了什麼 76
4.1.4 卷積的另一種解釋 77
4.2 卷積層的反向傳播. 79
4.2.1 實力派解法. 80
4.2.2 “偶像派”解法. 84
4.3 ReLU 88
4.3.1 梯度消失問題 89
4.3.2 ReLU 的理論支撐. 92
4.3.3 ReLU 的線性性質. 93
4.3.4 ReLU 的不足. 93
4.4 總結. 94
4.5 參考文獻. 94
5 Caffe 入門95
5.1 使用Caffe 進行深度學習訓練. 96
5.1.1 數據預處理. 96
5.1.2 網路結構與模型訓練的配置. 100
5.1.3 訓練與再訓練 108
5.1.4 訓練日誌分析 110
5.1.5 預測檢驗與分析. 112
5.1.6 性能測試 115
5.2 模型配置檔案介紹. 117
5.3 Caffe 的整體結構. 122
5.3.1 SyncedMemory 124
5.3.2 Blob 125
5.3.3 Layer 125
5.3.4 Net 126
5.3.5 Solver 126
5.3.6 多GPU 訓練. 127
5.3.7 IO 127
5.4 Caffe 的Layer 128
5.4.1 Layer 的創建——LayerRegistry 128
5.4.2 Layer 的初始化. 130
5.4.3 Layer 的前向計算. 132
5.5 Caffe 的Net 組裝流程 133
5.6 Caffe 的Solver 計算流程. 139
5.6.1 最佳化流程 140
5.6.2 多卡最佳化算法 142
5.7 Caffe 的Data Layer 145
5.7.1 Datum 結構. 145
5.7.2 DataReader Thread 147
5.7.3 BasePrefetchingDataLayer Thread 148
5.7.4 Data Layer 149
5.8 Caffe 的Data Transformer 150
5.8.1 C++ 中的Data Transformer 150
5.8.2 Python 中的Data Transformer 153
5.9 模型層擴展實踐——Center Loss Layer 156
5.9.1 Center Loss 的原理 156
5.9.2 Center Loss 實現. 160
5.9.3 實驗分析與總結. 164
5.10 總結. 165
5.11 參考文獻. 165
6 深層網路的數值問題166
6.1 ReLU 和參數初始化. 166
6.1.1 第一個ReLU 數值實驗. 167
6.1.2 第二個ReLU 數值實驗. 169
6.1.3 第三個實驗——Sigmoid 171
6.2 Xavier 初始化. 172
6.3 MSRA 初始化. 178
6.3.1 前向推導 178
6.3.2 後向推導 181
6.4 ZCA 182
6.5 與數值溢出的戰鬥. 186
6.5.1 Softmax Layer 186
6.5.2 Sigmoid Cross Entropy Loss 189
6.6 總結. 192
6.7 參考文獻. 192
7 網路結構193
7.1 關於網路結構,我們更關心什麼 193
7.2 網路結構的演化 195
7.2.1 VGG:模型哲學. 195
7.2.2 GoogLeNet:豐富模型層的內部結構. 196
7.2.3 ResNet:從乘法模型到加法模型. 197
7.2.4 全連線層的沒落. 198
7.3 Batch Normalization 199
7.3.1 Normalization 199
7.3.2 使用BN 層的實驗. 200
7.3.3 BN 的實現. 201
7.4 對Dropout 的思考. 204
7.5 從遷移學習的角度觀察網路功能 206
7.6 ResNet 的深入分析. 210
7.6.1 DSN 解決梯度消失問題 211
7.6.2 ResNet 網路的展開結構. 212
7.6.3 FractalNet 214
7.6.4 DenseNet 215
7.7 總結. 217
7.8 參考文獻. 217
8 最佳化與訓練219
8.1 梯度下降是一門手藝活兒. 219
8.1.1 什麼是梯度下降法 219
8.1.2 優雅的步長. 220
8.2 路遙知馬力:動量. 225
8.3 SGD 的變種算法 232
8.3.1 非凸函式 232
8.3.2 經典算法的彎道表現. 233
8.3.3 Adagrad 234
8.3.4 Rmsprop 235
8.3.5 AdaDelta 236
8.3.6 Adam 237
8.3.7 爬坡賽. 240
8.3.8 總結. 242
8.4 L1 正則的效果. 243
8.4.1 MNIST 的L1 正則實驗. 244
8.4.2 次梯度下降法 246
8.5 尋找模型的弱點 251
8.5.1 泛化性實驗. 252
8.5.2 精確性實驗. 255
8.6 模型最佳化路徑的可視化. 255
8.7 模型的過擬合. 260
8.7.1 過擬合方案. 261
8.7.2 SGD 與過擬合 263
8.7.3 對於深層模型泛化的猜想. 264
8.8 總結. 265
8.9 參考文獻. 265
9 套用:圖像的語意分割267
9.1 FCN 268
9.2 CRF 通俗非嚴謹的入門. 272
9.2.1 有向圖與無向圖模型. 272
9.2.2 Log-Linear Model 278
9.2.3 條件隨機場. 280
9.3 Dense CRF 281
9.3.1 Dense CRF 是如何被演化出來的. 281
9.3.2 Dense CRF 的公式形式. 284
9.4 Mean Field 對Dense CRF 模型的化簡 285
9.5 Dense CRF 的推斷計算公式 288
9.5.1 Variational Inference 推導 289
9.5.2 進一步化簡. 291
9.6 完整的模型:CRF as RNN 292
9.7 總結. 294
9.8 參考文獻. 294
10 套用:圖像生成295
10.1 VAE 295
10.1.1 生成式模型. 295
10.1.2 Variational Lower bound 296
10.1.3 Reparameterization Trick 298
10.1.4 Encoder 和Decoder 的計算公式. 299
10.1.5 實現. 300
10.1.6 MNIST 生成模型可視化 301
10.2 GAN 303
10.2.1 GAN 的概念. 303
10.2.2 GAN 的訓練分析. 305
10.2.3 GAN 實戰. 309
10.3 Info-GAN 314
10.3.1 互信息. 315
10.3.2 InfoGAN 模型 317
10.4 Wasserstein GAN 320
10.4.1 分布的重疊度 321
10.4.2 兩種目標函式存在的問題. 323
10.4.3 Wasserstein 距離. 325
10.4.4 Wasserstein 距離的優勢. 329
10.4.5 Wasserstein GAN 的實現 331
10.5 總結. 333
10.6 參考文獻. 334