●第1章 機器學習基礎1
1.1 機器學習概述1
1.1.1 機器學習的概念1
1.1.2 機器學習的任務2
1.1.3 機器學習的發展簡史3
1.1.4 機器學習的典型應用5
1.2 機器學習策略6
1.2.1 有監督學習6
1.2.2 無監督學習6
1.2.3 半監督學習6
1.2.4 強化學習7
1.3 模型評估與選擇7
1.3.1 歸納偏好7
1.3.2 數據集劃分8
1.3.3 性能度量9
1.3.4 過擬合和欠擬合10
1.4 神經網絡與深度學習11
1.4.1 生11
1.4.2 人工神經網絡12
1.4.3 深度學習14
1.5 本章小結16
第2章 卷積神經網絡基本原理17
2.1 卷積神經網絡概述17
2.1.1 卷積神經網絡的發展17
2.1.2 卷積神經網絡的基本原理與組成18
2.2 卷積層19
2.2.1 基本卷積運算19
2.2.2 卷積神經網絡中的卷積運算21
2.2.3 卷積的作用22
2.2.4 卷積層及參數25
2.2.5 特殊卷積26
2.3 激活層29
2.3.1 激活函數簡述29
2.3.2 典型的激活函數30
2.4 池化層34
2.4.1 池化操作34
2.4.2 感受野35
2.5 全連接層36
2.6 目標函數37
2.6.1 常用的損失函數38
2.6.2 正則化項39
2.7 卷積神經網絡的反向傳播40
2.7.1 全連接層的反向傳播40
2.7.2 池化層的反向傳播41
2.7.3 卷積層的反向傳播42
2.7.4 反向傳播實例43
2.8 本章小結45
第3章 典型卷積神經網絡結構46
3.1 LeNet46
3.1.1 LeNet網絡結構46
3.1.2 LeNet主要特點49
3.2 AlexNet49
3.2.1 AlexNet網絡結構49
3.2.2 AlexNet主要特點51
3.3 VGGNet53
3.3.1 VGGNet網絡結構53
3.3.2 VGGNet主要特點55
3.4 GoogLeNet55
3.4.1 Inception v1與Inception v256
3.4.2 Inception v359
3.4.3 Inception v460
3.5 ResNet61
3.5.1 殘差網絡的動機61
3.5.2 ResNet網絡結構62
3.6 其他網絡結構64
3.6.1 DenseNet64
3.6.2 SPPNet64
3.6.3 SENet66
3.6.4 MobileNet66
3.7 本章小結67
第4章 Python編程基礎68
4.1 Python語言簡介68
4.1.1 Python的發展簡史68
4.1.2 Python的主要特點68
4.1.3 Python的主要應用領域69
4.2 Python編程環境搭建70
4.2.1 Windows下的安裝70
4.2.2 Linux下的安裝72
4.3 Python程序設計73
4.3.1 編程規範73
4.3.2 變量與數據類型73
4.3.3 運算符與表達式77
4.3.4 結構化程序設計79
4.3.5 函數與模塊81
4.3.6 面向對像程序設計84
4.4 Python基礎工具庫89
4.4.1 NumPy89
4.4.2 Pandas92
4.4.3 Matplotlib94
4.5 本章小結95
第5章 PyTorch基礎96
5.1 常見的深度學習框架簡介96
5.1.1 Caffe96
5.1.2 TensorFlow97
5.1.3 PyTorch97
5.1.4 其他框架98
5.2 PyTorch的下載與安裝98
5.2.1 Linux下的安裝98
5.2.2 Windows下的安裝100
5.3 PyTorch中的Tensor101
5.3.1 Tensor的數據類型101
5.3.2 Tensor的基本操作102
5.3.3 Tensor的基本運算104
5.3.4 Tensor的數據結構107
5.4 自動求導108
5.4.1 計算圖108
5.4.2 自動求導機制109
5.5 模型搭建和參數優化111
5.5.1 神經網絡工具箱111
5.5.2 常用的神經網絡層113
5.5.3 前饋神經網絡搭建116
5.5.4 優化器118
5.6 PyTorch入門實戰119
5.6.1 手寫數字識別119
5.6.2 CIFAR-10數據分類122
5.7 本章小結124
第6章 數據集與數據處理125
6.1 典型數據集及標注125
6.1.1 典型數據集125
6.1.2 數據標注129
6.2 數據預處理132
6.2.1 數據清洗132
6.2.2 數據采樣133
6.2.3 數據標準化133
6.2.4 數據集劃分134
6.3 數據增廣135
6.3.1 幾何變換135
6.3.2 顏色變換139
6.3.3 圖像降質140
6.4 PyTorch數據集處理實例142
6.4.1 相關模塊簡介142
6.4.2 PyTorch自帶數據集的使用143
6.4.3 Dataset類的繼承146
6.4.4 一般數據集處理152
6.5 本章小結156
第7章 卷積神經網絡的訓練157
7.1 網絡超參數157
7.1.1 輸入圖像大小157
7.1.2 卷積層超參數158
7.1.3 池化層超參數158
7.2 網絡的訓練158
7.2.1 參數初始化158
7.2.2 網絡優化算法與策略159
7.2.3 批量規一化167
7.2.4 學習率的設定169
7.2.5 訓練數據置亂170
7.3 圖像分類實例170
7.3.1 網絡結構超參數比較170
7.3.2 不同優化算法比較180
7.4 遷移學習與網絡微調181
7.4.1 遷移AlexNet到貓狗數據集實例181
7.4.2 遷移VGG-19到瓜子數據集實例186
7.5 本章小結189
第8章 圖像去噪190
8.1 圖像去噪基礎知識190
8.1.1 噪聲模型190
8.1.2 傳統圖像去噪方法192
8.1.3 去噪算法設計與評價193
8.2 基於去噪自編碼器的圖像去噪194
8.2.1 自編碼器簡介194
8.2.2 MNIST數據集實驗195
8.2.3 Waterloo數據集實驗203
8.3 基於殘差學習的圖像去噪207
8.3.1 基本原理207
8.3.2 去噪實驗207
8.3.3 非高斯噪聲的去除209
8.4 本章小結211
第9章 圖像修復212
9.1 圖像修復基礎知識212
9.1.1 圖像修復概念212
9.1.2 基於深度學習的圖像修復方法213
9.2 基於DCGAN的圖像修復214
9.2.1 生成式對抗網絡214
9.2.2 手寫體生成實例216
9.2.3 基於DCGAN的人臉修復221
9.3 基於Context-Encoder的圖像修復226
9.3.1 Context-Encoder模型結構226
9.3.2 算法與實驗228
9.4 本章小結236
第10章 目標檢測237
10.1 目標檢測基礎知識237
10.1.1 傳統目標檢測方法237
10.1.2 基於卷積神經網絡的目標檢測方法238
10.1.3 目標檢測評價指標238
10.1.4 目標檢測數據集239
10.2 兩階段目標檢測網絡240
10.2.1 R-CNN240
10.2.2 Fast R-CNN242
10.2.3 Faster R-CNN244
10.3 單階段目標檢測網絡246
10.3.1 YOLO246
10.3.2 SSD249
10.4 MMDetection檢測算法庫250
10.4.1 MMDetection安裝251
10.4.2 模型的測試252
10.4.3 模型的訓練253
10.4.4 MMDetection算法配置文件解析255
10.4.5 使用自己的數據集258
10.5 本章小結261
參考文獻262
深度學習是人工智能與機器學習領域的重要研究分支,深度卷積神經網絡是其核心內容之一。本書作為一本深度卷積神經網絡方面的入門與提高書籍,目的是使讀者通過學習了解和掌握卷積神經網絡的理論基礎與應用方法。全書共10章,分為三個部分:第1~3章為第一部分,主要介紹卷積神經網絡基本理論;第4~5章為第二部分,概述卷積神經網絡相關工具和框架;第三部分為第6~10章,介紹了數據集、數據處理及網絡訓練知識,最後給出了卷積神經網絡的三個典型應用實例。本書可作為高等學校人工智能、計算機科學與技術、信息工程、自動化等專業高年級本科生或研究生深度學習相關課程的教材,也適合對卷積神經網絡感興趣的研究人員和工程技術人員參考閱讀。