深度學習500問——AI工程師面試寶典

深度學習500問——AI工程師面試寶典

《深度學習500問——AI工程師面試寶典》由電子工業出版社於2020年12月出版,由談繼勇主編。

基本介紹

  • 中文名:深度學習500問——AI工程師面試寶典
  • 作者:談繼勇
  • 出版社:電子工業出版社
  • 出版時間:2020年12月
  • 頁數:484 頁
  • 定價:109.00 元
  • 開本:16 開
  • ISBN:9787121389375
內容簡介,圖書目錄,作者簡介,
《深度學習500問——AI工程師面試寶典》系統地描述了深度學習的基本理論算法及套用。全書共14章,第1~3章論述了數學基礎、機器學習基礎和深度學習基礎;第4~7章介紹了一些經典網路及計算機視覺領域中常用的CNN、RNN、GAN等網路結構技術;第8~9章介紹了深度學習在計算機視覺領域的目標檢測及圖像分割兩大套用;第10~14章介紹了計算機視覺領域主要的最佳化方法及思路等,包括遷移學習、網路架構及訓練、網路最佳化技巧、超參數調整及模型的壓縮和加速等。本書凝聚了眾多一線科研人員及工程師的經驗,旨在培養讀者發現問題、解決問題、擴展問題的能力。
本書內容取材於編者在日常學習過程中總結的知識點及各大公司常見的筆試、面試題。本書可為高等院校計算機科學、信息科學、人工智慧、控制科學與工程、電子科學與技術等領域的研究及教學人員提供參考,也可為相關專業本科生及研究生提供思考方向,還可為深度學習及計算機視覺領域的初、中級研究人員和工程技術人員提供參考,尤其適合需要查漏補缺的應聘者及提供相關崗位的面試官閱讀。
第1章 數學基礎 1
1.1 向量和矩陣 1
1.1.1 標量、向量、矩陣和張量 1
1.1.2 張量與矩陣的區別 2
1.1.3 矩陣和向量相乘的結果 2
1.1.4 向量和矩陣的範數歸納 2
1.1.5 判斷一個矩陣是否為正定矩陣 4
1.2 導數和偏導數 5
1.2.1 導數偏導計算 5
1.2.2 導數和偏導數的區別 6
1.3 特徵值和特徵向量 6
1.3.1 特徵值分解 6
1.3.2 奇異值和特徵值的關係 6
1.4 機率分布與隨機變數 7
1.4.1 機器學習為什麼要使用機率 7
1.4.2 變數與隨機變數的區別 7
1.4.3 隨機變數與機率分布的聯繫 8
1.4.4 離散型隨機變數和機率質量函式 8
1.4.5 連續型隨機變數和機率密度函式 8
1.4.6 舉例理解條件機率 9
1.4.7 聯合機率與邊緣機率的區別和聯繫 9
1.4.8 條件機率的鏈式法則 10
1.4.9 獨立性和條件獨立性 10
1.5 常見機率分布 11
1.5.1 伯努利分布 11
1.5.2 高斯分布 11
1.5.3 何時採用常態分配 12
1.5.4 指數分布 12
1.5.5 Laplace分布 13
1.5.6 Dirac分布和經驗分布 13
1.6 期望、方差、協方差、相關係數 13
1.6.1 期望 13
1.6.2 方差 14
1.6.3 協方差 14
1.6.4 相關係數 15
第2章 機器學習基礎 16
2.1 基本概念 16
2.1.1 大話機器學習本質 16
2.1.2 什麼是神經網路 16
2.1.3 各種常見算法圖示 17
2.1.4 計算圖的導數計算 17
2.1.5 理解局部最優與全局最優 18
2.1.6 大數據與深度學習之間的關係 19
2.2 機器學習的學習方式 20
2.2.1 監督學習 20
2.2.2 非監督學習 20
2.2.3 半監督學習 20
2.2.4 弱監督學習 20
2.2.5 監督學習模型的搭建步驟 21
2.3 分類算法 22
2.3.1 常用分類算法的優缺點 22
2.3.2 分類算法的評估方法 23
2.3.3 正確率能否很好地評估分類算法 25
2.3.4 什麼樣的分類器是最好的 26
2.4 邏輯回歸 26
2.4.1 回歸的種類 26
2.4.2 邏輯回歸適用性 27
2.4.3 邏輯回歸與樸素貝葉斯的區別 27
2.4.4 線性回歸與邏輯回歸的區別 27
2.5 代價函式 28
2.5.1 為什麼需要代價函式 28
2.5.2 代價函式作用原理 28
2.5.3 常見代價函式 30
2.5.4 為什麼代價函式要非負 31
2.5.5 為什麼用交叉熵代替二次代價函式 31
2.6 損失函式 32
2.6.1 什麼是損失函式 32
2.6.2 常見的損失函式 32
2.6.3 邏輯回歸為什麼使用對數損失函式 34
2.6.4 對數損失函式如何度量損失 34
2.7 梯度下降法 35
2.7.1 梯度下降法的作用 36
2.7.2 梯度下降法的直觀理解 36
2.7.3 梯度下降法算法描述 37
2.7.4 梯度下降法的缺點 38
2.7.5 如何對梯度下降法進行調優 38
2.7.6 隨機梯度下降和批量梯度下降的區別 38
2.7.7 各種梯度下降法性能比較 40
2.8 線性判別分析 40
2.8.1 LDA思想總結 40
2.8.2 圖解LDA核心思想 41
2.8.3 二類LDA算法原理 41
2.8.4 LDA算法流程總結 42
2.8.5 LDA和PCA的異同 43
2.8.6 LDA的優缺點 43
2.9 主成分分析 43
2.9.1 圖解PCA核心思想 43
2.9.2 PCA算法推理 44
2.9.3 PCA算法流程總結 45
2.9.4 PCA思想總結 46
2.9.5 PCA算法的優缺點 46
2.9.6 降維的必要性及目的 46
2.9.7 KPCA與PCA的區別 47
2.10 模型評估 47
2.10.1 模型評估常用方法 48
2.10.2 誤差、偏差和方差的區別和聯繫 48
2.10.3 為什麼使用標準差 49
2.10.4 經驗誤差與泛化誤差 50
2.10.5 圖解欠擬合與過擬合 50
2.10.6 如何解決欠擬合與過擬合 52
2.10.7 交叉驗證的主要作用 52
2.10.8 理解K折交叉驗證 53
2.10.9 理解混淆矩陣 53
2.10.10 理解查準率與查全率 53
2.10.11 理解ROC與AUC 54
2.10.12 如何繪製ROC曲線 55
2.10.13 如何計算TPR和FPR 56
2.10.14 如何計算AUC 58
2.10.15 直觀理解AUC 58
2.10.16 ROC評估分類器 60
2.10.17 代價敏感錯誤率與代價曲線 60
2.10.18 比較檢驗方法 61
2.11 決策樹 61
2.11.1 決策樹的基本原理 62
2.11.2 決策樹的生成過程 62
2.11.3 決策樹學習基本算法步驟 62
2.11.4 決策樹算法的優缺點 63
2.11.5 決策樹和熵的聯繫 63
2.11.6 熵的概念及定義 63
2.11.7 理解信息增益 64
2.11.8 決策樹中熵、條件熵和信息增益的聯繫 64
2.11.9 決策樹算法中剪枝的作用及策略 65
2.12 支持向量機(SVM) 65
2.12.1 什麼是SVM 65
2.12.2 SVM能解決的問題 66
2.12.3 核函式特點及其作用 67
2.12.4 SVM為什麼引入對偶問題 67
2.12.5 如何理解SVM中的對偶問題 67
2.12.6 常見的核函式 69
2.12.7 SVM的主要特點 69
2.12.8 SVM的主要缺點 70
2.12.9 邏輯回歸與SVM的異同 70
2.13 貝葉斯分類器 72
2.13.1 貝葉斯分類器的基本原理 72
2.13.2 樸素貝葉斯分類器 72
2.13.3 舉例理解樸素貝葉斯分類器 73
2.13.4 半樸素貝葉斯分類器 75
2.13.5 極大似然估計和貝葉斯估計的聯繫與區別 75
2.13.6 極大似然估計原理 76
2.13.7 圖解極大似然估計 76
2.14 EM算法 77
2.14.1 EM算法的基本思想 77
2.14.2 EM算法推導 77
2.14.3 圖解EM算法 78
2.14.4 EM算法流程 79
2.15 降維和聚類 79
2.15.1 圖解為什麼會產生維數災難 79
2.15.2 怎樣避免維數災難 83
2.15.3 聚類和降維 83
2.15.4 聚類算法優劣的衡量標準 84
2.15.5 聚類和分類 85
2.15.6 聚類算法的性能比較 85
2.15.7 4種常用聚類方法比較 85
第3章 深度學習基礎 89
3.1 基本概念 89
3.1.1 神經網路的類型 89
3.1.2 神經網路的常用模型結構 92
3.1.3 深度學習和機器學習的區別與聯繫 93
3.1.4 為什麼使用深層表示 93
3.1.5 深度學習架構分類 94
3.1.6 如何選擇深度學習開發平台 94
3.2 神經網路計算 95
3.2.1 前向傳播和反向傳播 95
3.2.2 如何計算神經網路的輸出 96
3.2.3 如何計算卷積神經網路輸出值 97
3.2.4 如何計算池化層輸出值 100
3.2.5 反向傳播實例 101
3.2.6 神經網路更“深”的意義 104
3.3 激活函式 104
3.3.1 為什麼需要激活函式 104
3.3.2 為什麼激活函式需要非線性函式 105
3.3.3 常見的激活函式及其圖像 105
3.3.4 常見激活函式的導數計算 107
3.3.5 激活函式有哪些性質 108
3.3.6 如何選擇激活函式 108
3.3.7 為什麼tanh收斂速度比sigmoid快 109
3.3.8 Relu激活函式的優點 109
3.3.9 理解Relu激活函式的稀疏激活性 109
3.3.10 什麼時候可以用線性激活函式 109
3.3.11 softmax函式的定義及作用 110
3.3.12 softmax函式如何套用於多分類 110
3.4 Batch Size 112
3.4.1 為什麼需要Batch Size 112
3.4.2 如何選擇Batch Size值 112
3.4.3 調節Batch Size對訓練效果的影響 113
3.4.4 在合理範圍內增大Batch Size的好處 113
3.4.5 盲目增大Batch Size的壞處 114
3.5 歸一化 114
3.5.1 理解歸一化含義 114
3.5.2 歸一化和標準化的聯繫與區別 114
3.5.3 為什麼要歸一化或標準化 115
3.5.4 圖解為什麼要歸一化 115
3.5.5 為什麼歸一化能提高求最優解速度 115
3.5.6 歸一化有哪些類型 116
3.5.7 局部回響歸一化作用 116
3.5.8 局部回響歸一化原理 117
3.5.9 什麼是批歸一化 118
3.5.10 批歸一化的優點 118
3.5.11 批歸一化算法流程 118
3.5.12 批歸一化和組歸一化比較 119
3.5.13 權重歸一化和批歸一化比較 119
3.5.14 批歸一化適用範圍 120
3.5.15 BN、LN、IN和GN的對比 120
3.6 參數初始化 121
3.6.1 參數初始化應滿足的條件 121
3.6.2 常用的幾種初始化方式 121
3.6.3 全0初始化帶來的問題 121
3.6.4 全都初始化為同樣的值 122
3.6.5 初始化為小的隨機數 123
3.6.6 用校準方差 123
3.7 預訓練與微調 123
3.7.1 什麼是預訓練和微調 123
3.7.2 預訓練和微調的作用 124
3.7.3 預訓練模型的復用 124
3.7.4 預訓練和遷移學習 125
3.7.5 微調時網路參數是否更新 125
3.7.6 微調模型的三種狀態 125
3.7.7 為什麼深層神經網路難以訓練 125
3.8 超參數 127
3.8.1 超參數有哪些 127
3.8.2 參數和模型的關係 127
3.8.3 參數和超參數的區別 127
3.8.4 如何尋找超參數的最優值 128
3.8.5 超參數搜尋的一般過程 128
3.9 學習率 129
3.9.1 學習率的作用 129
3.9.2 學習率衰減的常用參數 129
3.9.3 常用的學習率衰減方法 129
3.10 正則化 133
3.10.1 為什麼要正則化 133
3.10.2 常見正則化方法 133
3.10.3 圖解L1和L2正則化 134
3.10.4 Dropout具體工作流程 135
3.10.5 為什麼Dropout可以解決過擬合問題 137
3.10.6 Dropout的缺點 137
第4章 卷積神經網路的經典網路 138
4.1 LeNet-5 138
4.1.1 模型介紹 138
4.1.2 模型結構 138
4.1.3 模型特性 139
4.2 AlexNet 140
4.2.1 模型介紹 140
4.2.2 模型結構 140
4.2.3 模型特性 141
4.3 ZFNet 142
4.3.1 模型介紹 142
4.3.2 模型結構 142
4.3.3 模型特性 143
4.4 NIN 144
4.4.1 模型介紹 144
4.4.2 模型結構 144
4.4.3 模型特點 145
4.5 VGGNet 145
4.5.1 模型介紹 145
4.5.2 模型結構 146
4.5.3 模型特性 147
4.6 GoogLeNet 147
4.6.1 模型介紹 147
4.6.2 模型結構 148
4.6.3 模型特性 152
4.7 ResNet 152
4.7.1 模型介紹 152
4.7.2 模型結構 152
4.7.3 模型特性 154
4.8 DenseNet 155
4.8.1 模型介紹 155
4.8.2 模型結構 156
4.8.3 模型特性 157
4.9 CNN模型在GoogLeNet、VGGNet或AlexNet上調整的原因 157
第5章 卷積神經網路 159
5.1 CNN的結構 159
5.1.1 CNN和人類視覺的關係 159
5.1.2 CNN的結構組成 160
5.2 輸入層 160
5.2.1 輸入層作用 160
5.2.2 數據預處理 160
5.3 卷積層 161
5.3.1 卷積原理 161
5.3.2 卷積在圖像中的作用 162
5.3.3 卷積層的基本參數 163
5.3.4 卷積核的類型 164
5.3.5 1×1卷積的作用 165
5.3.6 卷積核是否越大越好 166
5.3.7 每層卷積是否只能用一種尺寸的卷積核 167
5.3.8 如何減少卷積層參數量 167
5.3.9 在標準卷積中同時考慮通道和區域的優缺點 167
5.3.10 採用寬卷積的好處 169
5.4 激活層 169
5.4.1 激活層的作用 169
5.4.2 BN層和激活層的位置順序選擇 170
5.5 池化層 170
5.5.1 池化層作用 170
5.5.2 池化方法 171
5.5.3 卷積層和池化層的區別 171
5.5.4 NetVLAD池化 172
5.6 全連線層 172
5.6.1 全連線如何把二維特徵圖轉化成一個一維向量 172
5.6.2 全卷積神經網路取代全連線層 173
5.6.3 圖像分類中全連線層對卷積神經網路性能的影響 173
5.7 二維卷積與三維卷積 174
5.7.1 二維卷積與三維卷積的區別 174
5.7.2 圖解三維卷積 175
5.7.3 RGB圖不使用三維卷積的原因 176
5.8 理解轉置卷積與棋盤效應 176
5.8.1 標準卷積 176
5.8.2 轉置卷積 177
5.8.3 棋盤效應 178
5.9 卷積神經網路凸顯共性的方法 179
5.9.1 局部連線 179
5.9.2 權重共享 180
5.9.3 池化操作 181
5.10 局部卷積 181
5.10.1 全連線、局部連線、全卷積與局部卷積對比 182
5.10.2 局部卷積的套用 182
5.11 CNN可視化 183
5.11.1 特徵層學到了什麼 183
5.11.2 特徵層隨訓練而演化 184
5.11.3 消融分析 185
5.11.4 常見的網路可視化方法 185
5.12 卷積神經網路的最佳化及套用 186
5.12.1 卷積神經網路的參數設定 186
5.12.2 如何提高卷積神經網路的泛化能力 186
5.12.3 卷積神經網路的區域不變性和組合性 187
5.12.4 卷積神經網路在不同領域的套用 188
第6章 循環神經網路 189
6.1 為什麼需要RNN 189
6.2 圖解RNN基本結構 189
6.2.1 基本的單層網路結構 189
6.2.2 圖解經典RNN結構 190
6.2.3 Vector-to-Sequence結構 191
6.2.4 Sequence-to-Vector結構 192
6.2.5 Encoder-Decoder結構 192
6.2.6 3種基本結構的套用場景 193
6.2.7 圖解RNN中的注意機制 194
6.3 RNN的性質 195
6.3.1 RNN的典型特點 195
6.3.2 CNN和RNN的區別 196
6.3.3 RNN和FNN的異同 196
6.3.4 為什麼RNN訓練的時候損失值波動很大 197
6.4 RNN的後向傳播 197
6.4.1 BPTT算法推導 197
6.4.2 RNN中為什麼會出現梯度消失 198
6.4.3 如何解決RNN中的梯度消失問題 199
6.5 長短期記憶網路(LSTM) 199
6.5.1 LSTM的產生原因 199
6.5.2 標準的RNN和LSTM的區別 199
6.5.3 LSTM核心思想 200
6.5.4 LSTM流行的變體 203
6.5.5 LSTM與GRU的區別 204
6.6 常見的RNN結構上的擴展和改進 205
6.6.1 簡單循環神經網路(SRN) 205
6.6.2 雙向循環神經網路(BRNN) 205
6.6.3 深度循環神經網路(Deep RNN) 206
6.6.4 回聲狀態網路(ESN) 206
6.6.5 時鐘頻率驅動 RNN(CW-RNN) 207
6.6.6 包含時間間隔的RNN 208
6.7 RNN在NLP中的典型套用舉例 209
6.8 RNN與圖像領域的結合舉例 210
6.8.1 卷積循環神經網路 210
6.8.2 格線循環神經網路 211
6.8.3 像素循環神經網路 211
6.9 RNN與條件隨機場的結合 212
第7章 生成對抗網路 213
7.1 GAN的基本概念 213
7.1.1 如何通俗地理解GAN 213
7.1.2 GAN的形式化表達 213
7.1.3 GAN的目標函式 214
7.1.4 GAN的目標函式和交叉熵損失的聯繫和區別 214
7.1.5 GAN的損失值為什麼降不下去 215
7.1.6 生成式模型和判別式模型的區別 215
7.1.7 模式崩塌和模式丟棄 216
7.1.8 為什麼會出現模式崩塌 217
7.1.9 如何解決模式崩塌問題 217
7.2 GAN的生成模型評價 219
7.2.1 Inception Score 219
7.2.2 Mode Score 220
7.2.3 Kernel MMD 220
7.2.4 Wasserstein Distance 220
7.2.5 Fréchet Inception Distance(FID) 221
7.2.6 1-NN分類器(1-Nearest Neighbor Classifier) 221
7.2.7 其他評價方法 221
7.3 其他常見的生成模型 221
7.3.1 自回歸模型:pixelRNN與pixelCNN 221
7.3.2 變分自動編碼器(VAE)原理 222
7.4 GAN的改進與最佳化 223
7.4.1 如何生成指定類型的圖像(CGAN) 223
7.4.2 CNN與GAN的結合(DCGAN) 224
7.4.3 GAN為什麼容易訓練崩潰 224
7.4.4 WGAN如何解決訓練崩潰問題 225
7.4.5 帶有梯度正則的WGAN(WGAN-GP) 225
7.4.6 最小二乘GAN(LSGAN) 226
7.4.7 如何儘量避免GAN的訓練崩潰問題 227
7.5 GAN的套用:圖像翻譯 227
7.5.1 什麼是圖像翻譯 227
7.5.2 有監督圖像翻譯(pix2pix) 228
7.5.3 有監督圖像翻譯的缺點 229
7.5.4 無監督圖像翻譯(CycleGAN) 230
7.5.5 多領域的無監督圖像翻譯(StarGAN) 231
7.6 GAN的套用:文本生成 232
7.6.1 傳統GAN為什麼不適合文本任務 232
7.6.2 SeqGAN用於文本生成 232
7.7 GAN在其他領域的套用 233
7.7.1 數據增廣 233
7.7.2 圖像超分辨與圖像補全 234
7.7.3 語音領域 234
第8章 目標檢測 235
8.1 基本概念 235
8.1.1 目標檢測 235
8.1.2 目標檢測要解決的核心問題 236
8.1.3 目標檢測的算法分類 236
8.1.4 目標檢測的套用領域 237
8.2 two-stage目標檢測算法 237
8.2.1 R-CNN 237
8.2.2 Fast R-CNN 239
8.2.3 Faster R-CNN 242
8.2.4 R-FCN 245
8.2.5 FPN 248
8.2.6 Mask R-CNN 251
8.3 one-stage目標檢測算法 254
8.3.1 YOLO 254
8.3.2 YOLOv2 257
8.3.3 YOLO9000 261
8.3.4 YOLOv3 262
8.3.5 YOLOv4 263
8.3.6 SSD 264
8.3.7 DSSD 267
8.3.8 RetinaNet 269
8.3.9 RFBNet 271
8.3.10 M2Det 273
8.4 目標檢測的常用數據集 275
8.4.1 PASCAL VOC 275
8.4.2 Microsoft COCO 275
8.4.3 谷歌Open Image 276
8.4.4 ImageNet 276
8.5 目標檢測常用標註工具 276
8.5.1 LabelImg 276
8.5.2 LabelMe 276
8.5.3 Labelbox 277
8.5.4 RectLabel 277
8.5.5 CVAT 277
8.5.6 VIA 277
8.5.7 其他標註工具 278
第9章 圖像分割 279
9.1 常見的圖像分割算法 279
9.1.1 基於閾值的分割算法 279
9.1.2 基於邊緣檢測的分割算法 279
9.1.3 基於區域的分割算法 280
9.1.4 基於神經網路技術的圖像分割算法 280
9.1.5 基於深度學習的圖像分割算法分類 280
9.1.6 常見的深度學習圖像分割算法 281
9.2 FCN 282
9.2.1 為什麼CNN對像素級別的分類很難 282
9.2.2 FCN有哪些改變 282
9.2.3 FCN的結構 283
9.2.4 全連線層和卷積層如何相互轉化 283
9.2.5 為什麼傳統CNN的輸入圖片大小是固定的 284
9.2.6 把全連線層的權重重塑成卷積層的濾波器的好處 284
9.2.7 FCN如何進行逐個像素點預測分類 285
9.2.8 反卷積層理解 286
9.2.9 跳級(skip)結構 288
9.2.10 模型訓練 289
9.2.11 FCN的優缺點 292
9.3 U-Net 292
9.4 U-Net++ 295
9.5 SegNet 296
9.6 LinkNet 297
9.7 RefineNet 299
9.8 PSPNet 300
9.9 DeepLab系列 302
9.9.1 DeepLabv1 303
9.9.2 DeepLabv2 305
9.9.3 DeepLabv3 306
9.9.4 DeepLabv3+ 307
9.10 Mask R-CNN作為目標分割的介紹 310
9.10.1 Mask R-CNN框架 310
9.10.2 Mask R-CNN損失函式 310
9.10.3 Mask R-CNN 算法步驟 311
9.10.4 RoI池化與RoI Align 311
9.10.5 Mask R-CNN代碼實現總體框架 311
9.10.6 Mask R-CNN訓練和推導過程的區別 312
9.10.7 Mask R-CNN擴展 312
9.11 基於弱監督學習的圖像分割 313
9.11.1 塗鴉標記(ScribbleSup) 314
9.11.2 圖像級別標記(CCNN) 315
9.11.3 期望最大化估計像素類別 316
9.11.4 圖像、框線與塗鴉標記融合框架 317
第10章 遷移學習 318
10.1 遷移學習基礎知識 318
10.1.1 什麼是遷移學習 318
10.1.2 為什麼需要遷移學習 319
10.1.3 遷移學習與已有學習方式的區別和聯繫 320
10.1.4 負遷移 321
10.2 遷移學習的研究領域 322
10.2.1 按目標域標籤分類 323
10.2.2 按學習方法分類 323
10.2.3 按特徵分類 323
10.2.4 按離線與線上形式分類 324
10.3 遷移學習的套用 324
10.3.1 計算機視覺 325
10.3.2 文本分類 325
10.3.3 時間序列 326
10.3.4 醫療健康 327
10.4 遷移學習的基本方法 327
10.4.1 基於實例的遷移學習方法 328
10.4.2 基於特徵的遷移學習方法 328
10.4.3 基於模型的遷移學習方法 329
10.4.4 基於關係的遷移學習方法 330
10.5 分布對齊的常用方法 331
10.5.1 數據分布自適應方法 331
10.5.2 特徵選擇方法 333
10.5.3 子空間學習方法 334
10.6 深度遷移學習方法 338
10.6.1 深度網路的可遷移性 338
10.6.2 微調 342
10.6.3 深度網路自適應 342
10.6.4 深度對抗網路遷移 347
10.7 遷移學習研究前沿 350
10.7.1 機器智慧型與人類經驗結合的遷移學習 350
10.7.2 傳遞遷移學習 350
10.7.3 終身遷移學習 351
10.7.4 線上遷移學習 352
10.7.5 遷移強化學習 353
10.7.6 遷移學習的可解釋性 353
第11章 網路構架介紹及訓練 354
11.1 TensorFlow 354
11.1.1 TensorFlow的設計理念 354
11.1.2 TensorFlow的特點 355
11.1.3 TensorFlow的系統架構 356
11.1.4 TensorFlow的編程模型 357
11.1.5 基於TensorFlow搭建VGG16 360
11.2 Caffe 361
11.2.1 Caffe的特性 362
11.2.2 Caffe2的特性 362
11.2.3 Caffe2和PyTorch的區別 362
11.3 PyTorch 362
11.3.1 為什麼選擇PyTorch 363
11.3.2 PyTorch的架構 363
11.3.3 PyTorch 1.0三大重要更新 364
11.4 常見的深度學習分散式框架 364
11.4.1 PaddlePaddle 365
11.4.2 Deeplearning4j 366
11.4.3 Mahout 367
11.4.4 Spark MLlib 368
11.4.5 Spark Stream 369
11.4.6 Ray 370
11.4.7 Horovod 370
11.4.8 BigDL 371
11.4.9 Petastorm 371
11.4.10 TensorFlowOnSpark 372
11.5 網路搭建原則及訓練技巧 372
11.5.1 網路搭建原則 372
11.5.2 網路訓練技巧 373
第12章 網路最佳化技巧 376
12.1 數據集和樣本最佳化 376
12.1.1 如何解決訓練樣本少的問題 376
12.1.2 深度學習能否勝任所有數據集 377
12.1.3 訓練集、驗證集、測試集的定義及劃分 377
12.1.4 類別不平衡的產生原因 378
12.1.5 常見的類別不平衡問題的解決方法 378
12.1.6 常用的數據增強方法 379
12.2 數據不匹配問題 380
12.2.1 如何定位數據不匹配問題 380
12.2.2 常見的數據不匹配的場景 380
12.2.3 如何解決數據不匹配問題 380
12.3 網路構建和初始化 381
12.3.1 權重的初始化方法 381
12.3.2 激活函式的特點 382
12.3.3 卷積核設計尺寸都是奇數的原因 383
12.3.4 在網路設計中要權重共享的原因 383
12.4 特徵選擇 383
12.4.1 特徵的類型 383
12.4.2 如何考慮特徵選擇 384
12.4.3 特徵選擇方法分類 384
12.4.4 特徵選擇的目的 384
12.5 梯度消失和梯度爆炸 384
12.5.1 使用梯度更新規則的原因 384
12.5.2 梯度消失和梯度爆炸產生的原因 385
12.5.3 如何解決梯度消失和梯度爆炸問題 386
12.5.4 防止梯度下降陷入局部最優困境 386
12.6 評價指標 387
12.6.1 設定單一數字評價指標的原因 387
12.6.2 Top5錯誤率 387
12.6.3 理解泛化誤差、方差和偏差 388
12.7 模型和系統最佳化 388
12.7.1 是否存在比已知算法更好的算法 388
12.7.2 判斷和解決共線性問題 389
12.7.3 深度學習不用二階最佳化的原因 389
12.7.4 提升模型的穩定性 389
12.7.5 改善模型的思路 390
12.7.6 快速構建有效初始模型 391
12.7.7 通過模型重新觀察數據 391
12.7.8 提高深度學習系統的性能 392
第13章 超參數調整 393
13.1 超參數的概念 393
13.1.1 參數和超參數的區別 393
13.1.2 超參數的類別 393
13.1.3 進行超參數調優的原因 394
13.1.4 超參數的重要性排序 394
13.1.5 部分超參數如何影響模型性能 395
13.1.6 部分超參數的合適範圍 396
13.2 網路訓練中的超參數調整策略 397
13.2.1 超參數最佳化的一般過程 397
13.2.2 如何調試模型 397
13.2.3 學習率調整的原因 398
13.2.4 學習率調整的策略 398
13.2.5 在極端批樣本數量下訓練網路 402
13.3 合理使用預訓練網路 403
13.3.1 什麼是微調 403
13.3.2 微調的方式 403
13.3.3 微調先凍結底層而訓練頂層的原因 404
13.3.4 在不同的數據集下如何進行微調 404
13.3.5 在目標檢測中使用預訓練模型的優劣 404
13.3.6 目標檢測如何從零開始訓練 405
13.4 自動化超參數搜尋方法 405
13.4.1 格線搜尋 405
13.4.2 隨機搜尋 406
13.4.3 基於模型的超參數最佳化 406
13.5 自動機器學習AutoML 406
13.5.1 為什麼需要AutoML 406
13.5.2 AutoML的問題構成 407
13.5.3 常見的AutoML框架 407
13.5.4 神經架構搜尋(NAS) 408
第14章 模型壓縮、加速和移動端部署 410
14.1 模型壓縮 410
14.2 為什麼需要模型壓縮和加速 410
14.3 模型壓縮方法 411
14.3.1 前端壓縮和後端壓縮對比 411
14.3.2 網路剪枝 411
14.3.3 典型剪枝方法的對比 413
14.3.4 網路蒸餾 413
14.3.5 前端壓縮 413
14.3.6 後端壓縮 414
14.3.7 低秩分解 416
14.3.8 總體壓縮效果評價指標 416
14.4 網路壓縮的未來研究方向 417
14.5 模型最佳化加速方法 418
14.5.1 模型最佳化加速方法類別 418
14.5.2 TensorRT加速原理 418
14.5.3 TensorRT如何最佳化重構模型 420
14.5.4 TensorRT的加速效果 420
14.6 如何選擇壓縮和加速方法 420
14.7 高效CNN網路設計的準則 421
14.7.1 分組卷積 421
14.7.2 深度可分離卷積 422
14.7.3 當輸入/輸出的通道數相等時,MAC最小 424
14.7.4 減少分組卷積的數量 424
14.7.5 降低網路碎片化程度(分支數量) 425
14.7.6 減少元素級操作 426
14.8 常用的輕量級網路 426
14.8.1 SequeezeNet 426
14.8.2 MobileNet 429
14.8.3 MobileNet-v2 432
14.8.4 MobileNet-v1和MobileNet-v2微結構比較 433
14.8.5 ResNet和MobileNet-v2微結構比較 434
14.8.6 Xception 434
14.8.7 ShuffleNet-v1 436
14.8.8 ShuffleNet-v2 438
14.9 現有的移動端開源框架及其特點 440
14.9.1 NCNN 440
14.9.2 QNNPACK 441
14.9.3 Prestissimo 443
14.9.4 MDL 445
14.9.5 Paddle-Mobile 446
14.9.6 MACE 446
14.9.7 FeatherCNN 448
14.9.8 TensorFlow Lite 449
14.9.9 PocketFlow 450
14.9.10 MDL、NCNN和TFLite對比 452
14.10 移動端開源框架部署 453

作者簡介

談繼勇 主編
南方科技大學和哈爾濱工業大學聯合培養博士(在讀),現任瀚維智慧型醫療技術總監,深圳工信局專家庫專家,兼任南方科技大學、四川大學研究生企業導師,南方科技大學和瀚維智慧型醫療聯合實驗室副主任,北京探工所特聘技術專家,曾先後在中科院信工所、香港中文大學(深圳)、FOXCONN機器人與人工智慧實驗室、順豐科技等單位任職。主要專注於智慧型感知與控制、實時智慧型與計算機視覺方向的研究,主持/主研國家自然科學基金、省重點研發計畫、深圳戰略性新興產業計畫等項目20餘項,發表SCI/EI論文20餘篇,申請發明專利40餘項,獲全國發明金獎。
郭子釗 副主編
四川大學計算機科學專業博士,碩士畢業於四川大學自動化系,主要從事AI晶片、深度學習、行為檢測識別、人臉檢測識別等相關研究工作。
李劍 副主編
同濟大學計算機科學專業博士,浙江農林大學副教授、碩士生導師,主要從事推薦系統、排序學習、凸最佳化等機器學習領域的科研和教學工作,發表SCI論文10餘篇,曾獲浙江省科技進步二等獎等多項省部級獎項。
佃松宜 副主編
日本東北大學博士,四川大學電氣工程學院教授、自動化系系主任,四川省信息與自動化技術重點實驗室主任。主要專注於先進控制理論與人工智慧算法研究、嵌入式計算與實時智慧型系統的研究與開發、機器人與智慧型裝備的智慧型感知與控制技術的研究、工業測控與智慧型物聯的研究。近5年來主持包括國家重點研發計畫、基金、國網總部項目等各類科研項目近30項,累計總經費近2200萬元;發表論文100多篇,其中SCI/EI檢索近40篇,ESI高引論文1篇。參與編撰專著3部(其中英文專著1部),參編國家九五規劃教材1部。
王晉東 特邀編委
中科院計算所博士,微軟亞洲研究院機器學習研究員,主要從事遷移學習和機器學習方向的研究工作,在IJCAI、CVPR、ICDM、UbiComp、ACMMM、PERCOM、IJCNN、PRICAI、IEEE TNNLS、NEUNET、PRL、PMCJ、IMWUT、IJMLC、ICME、ACM TIST等國際權威期刊和會議上發表論文20餘篇,多次獲得“最佳論文”獎。作品有《遷移學習簡明手冊》等。
王超鋒
上海大學碩士,百度計算機視覺算法工程師,主研圖像處理,深度學習等方向。曾多次在國內外各類知名計算機視覺挑戰賽中獲得優異成績。
郭曉鋒
中國科學院碩士,愛奇藝算法工程師,主要從事圖像處理、深度學習等方向的研究,曾獲“2017華為軟體精英挑戰賽”複賽第6名。
黃偉
華南理工大學碩士,順豐科技機器人算法工程師,主要從事計算機視覺和自然語言處理方向的研究。曾在相關領域國際期刊、會議上發表論文,並在相關競賽中獲得優異成績。
陳方傑(Amusi)
上海大學碩士,CVer(計算機視覺知識分享和學習交流平台)創始人。
李元偉
國防科技大學碩士,深圳瀚維智慧型醫療科技公司高級算法工程師,南方科技大學和瀚維智慧型醫療聯合實驗室委員,主要從事機器視覺、圖像處理及深度學習方向的研究工作,參編普通高等教育十三五規劃教材《圖像通信基礎》,在IEEE TCSVT、COGN COMPUT等發表學術論文多篇,曾獲湖南省/全軍優秀碩士論文。
陳琳
北京航空航天大學博士(在讀),研究方向為無人機智慧型控制與決策、仿生智慧型計算。

相關詞條

熱門詞條

聯絡我們