预购商品
书目分类
特别推荐
第Ⅰ部分 深度學習基礎 第1 章 概述••••••••••••••••••••••••••••••••••••••3 1.1 計算機視覺••••••••••••••••••• 4 1.1.1 視覺感知的定義••••••••• 4 1.1.2 視覺系統•••••••••••••••••• 4 1.1.3 感知設備•••••••••••••••••• 6 1.1.4 解譯設備•••••••••••••••••• 7 1.2 CV 應用••••••••••••••••••••••• 8 1.2.1 圖像分類•••••••••••••••••• 9 1.2.2 目標檢測與定位••••••••10 1.2.3 生成藝術(風格遷移) •••11 1.2.4 圖像生成•••••••••••••••••11 1.2.5 人臉識別•••••••••••••••••12 1.2.6 圖片推薦系統•••••••••••13 1.3 計算機視覺管道概覽•••••• 14 1.4 圖像輸入••••••••••••••••••••• 15 1.4.1 圖像的函數表達••••••••16 1.4.2 計算機讀取圖像••••••••17 1.4.3 彩色圖像•••••••••••••••••17 1.5 影像處理••••••••••••••••••••• 19 1.6 特徵提取••••••••••••••••••••• 21 1.6.1 計算機視覺中特徵的 定義•••••••••••••••••••••••22 1.6.2 有用特徵的定義••••••••23 1.6.3 手動與自動的特徵 提取•••••••••••••••••••••••25 1.7 分類器學習演算法•••••••••••• 27 1.8 本章小結••••••••••••••••••••• 28 第2 章 深度學習和神經網路••••••••• 29 2.1 理解感知機•••••••••••••••••• 30 2.1.1 感知機的定義•••••••••••31 2.1.2 感知機的學習機制•••••34 2.1.3 單層感知機的 局限性••••••••••••••••••••35 2.2 多層感知機•••••••••••••••••• 36 2.2.1 多層感知機架構••••••••37 2.2.2 關於隱藏層••••••••••••••38 2.2.3 隱藏層的設計•••••••••••38 2.2.4 本節內容拓展•••••••••••40 2.3 啟動函數••••••••••••••••••••• 41 2.3.1 線性轉移函數•••••••••••42 2.3.2 Heaviside 階躍函數 (二元分類器) ••••••••••••43 2.3.3 Sigmoid/logistic 函數•••••••••••••••••••••••43 2.3.4 Softmax 函數••••••••••••46 2.3.5 雙_3恄黖衉J曲正切函數 2.5.1 誤差函數的定義••••••••55 2.5.2 誤差函數的意義••••••••55 2.5.3 誤差為正的必要性•••••55 2.5.4 均方誤差損失函數•••••56 2.5.5 交叉熵損失函數••••••••57 2.5.6 關於誤差和權重的補充 說明•••••••••••••••••••••••58 2.6 優化演算法••••••••••••••••••••• 59 2.6.1 優化的定義••••••••••••••59 2.6.2 批梯度下降••••••••••••••62 2.6.3 隨機梯度下降•••••••••••67 2.6.4 小批梯度下降•••••••••••68 2.6.5 梯度下降總結•••••••••••68 2.7 反向傳播••••••••••••••••••••• 69 2.7.1 反向傳播的定義••••••••70 2.7.2 反向傳播總結•••••••••••72 2.8 本章總結••••••••••••••••••••• 73 第3 章 卷積神經網路•••••••••••••••••••••75 3.1 使用MLP 進行圖像 分類••••••••••••••••••••••••••• 76 3.1.1 輸入層••••••••••••••••••••76 3.1.2 隱藏層••••••••••••••••••••78 3.1.3 輸出層••••••••••••••••••••78 3.1.4 組合•••••••••••••••••••••••78 3.1.5 MLP 處理圖像的 缺點•••••••••••••••••••••••80 3.2 CNN 架構•••••••••••••••••••• 82 3.2.1 概述•••••••••••••••••••••••83 3.2.2 特徵提取詳解•••••••••••84 3.2.3 分類詳解•••••••••••••••••85 3.3 CNN 的基本組件••••••••••• 85 3.3.1 卷積層••••••••••••••••••••86 3.3.2 池化層或下採樣••••••••92 3.3.3 全連接層•••••••••••••••••96 3.4 使用CNN 進行圖像 分類••••••••••••••••••••••••••• 98 3.4.1 構建模型體系架構•••••98 3.4.2 參數(權重)的數量••••100 3.5 添加dropout 層以避免 過擬合•••••••••••••••••••••• 101 3.5.1 過擬合定義••••••••••••101 3.5.2 dropout 層定義••••••••102 3.5.3 dropout 層的重要 意義•••••••••••••••••••••102 3.5.4 dropout 層在CNN 架構中的位置•••••••••103 3.6 彩色(3D)圖像的卷積•••• 104 3.6.1 彩色圖像的卷積••••••105 3.6.2 計算複雜度的變化•••107 3.7 練習項目:彩色圖像 分類••••••••••••••••••••••••• 109 3.8 本章總結••••••••••••••••••• 118 第4 章 構造DL 項目以及超參數 調優•••••••••••••••••••••••••••••••••119 4.1 定義性能指標••••••••••••• 120 4.1.1 選擇評價模型的最佳 指標•••••••••••••••••••••120 4.1.2 混淆矩陣•••••••••••••••120 4.1.3 精確度和召回率••••••121 4.1.4 F1 得分•••••••••••••••••122 4.2 設計基準模型••••••••••••• 122 4.3 為訓練準備數據•••••••••• 124 4.3.1 劃分數據集••••••••••••124 4.3.2 數據處理•••••••••••••••125 4.4 評估模型並解釋其 性能••••••••••••••••••••••••• 127 4.4.1 診斷過擬合和 欠擬合••••••••••••••••••127 4.4.2 繪製學習曲線•••••••••129 4.4.3 練習項目:構建、 訓練和評估網路••••••129 4.5 網路改進和超參數 調優••••••••••••••••••••••••• 132 4.5.1 收集更多數據與超 參數調優•••••••••••••••132 4.5.2 參數與超參數•••••••••133 4.5.3 神經網路超參數••••••133 4.5.4 網路架構•••••••••••••••134 4.6 學習和優化•••••••••••••••• 135 4.6.1 學習率及其衰減 策略•••••••••••••••••••••135 4.6.2 找到最佳學習率的 系統性方法••••••••••••138 4.6.3 學習率衰減和自我調整 學習•••••••••••••••••••••138 4.6.4 小批大小•••••••••••••••139 4.7 優化演算法••••••••••••••••••• 141 4.7.1 動量梯度下降•••••••••142 4.7.2 Adam ••••••••••••••••••••142 4.7.3 訓練輪數和早停 標準•••••••••••••••••••••143 4.7.4 Early stopping••••••••••144 4.8 正則化技術•••••••••••••••• 144 4.8.1 L2 正則化••••••••••••••145 4.8.2 Dropout 層•••••••••••••146 4.8.3 數據增強•••••••••••••••146 4.9 批歸一化••••••••••••••••••• 147 4.9.1 協變數偏移問題••••••148 4.9.2 神經網路中的協變數 偏移•••••••••••••••••••••148 4.9.3 批歸一化的工作 原理•••••••••••••••••••••149 4.9.4 批歸一化在keras 中的 實現•••••••••••••••••••••150 4.9.5 批歸一化回顧•••••••••151 4.10 練習項目:實現高準確度 的圖像分類•••••••••••••• 151 4.11 本章小結••••••••••••••••• 157 第Ⅱ部分 圖像分類和檢測 第5 章 先進的CNN 架構•••••••••••• 161 5.1 CNN 設計模式•••••••••••• 162 5.2 LeNet-5 ••••••••••••••••••••• 164 5.2.1 LeNet 架構•••••••••••••164 5.2.2 LeNet-5 在Keras 中的 實現•••••••••••••••••••••165 5.2.3 設置學習超參數••••••167 5.2.4 LeNet 在MNIST 數據 集上的性能••••••••••••168 5.3 AlexNet••••••••••••••••••••• 168 5.3.1 AlexNet 網路架構••••169 5.3.2 AlexNet 的新特性••••169 5.3.3 Keras 中的AlexNet 實現•••••••••••••••••••••171 5.3.4 設置學習超參數••••••174 5.3.5 AlexNet 的性能•••••••174 5.4 VGGNet •••••••••••••••••••• 175 5.4.1 VGGNet 新特性•••••••175 5.4.2 VGGNet 配置••••••••••176 5.4.3 學習超參數••••••••••••179 5.4.4 VGGNet 性能••••••••••179 5.5 Inception 和 GoogLeNet •••••••••••••••• 179 5.5.1 Inception 新特性••••••180 5.5.2 Inception 模組: Naive 版•••••••••••••••••181 5.5.3 Inception 模組與維數 約減•••••••••••••••••••••182 5.5.4 Inception 體系架構••••184 5.5.5 GoogLeNet 的Keras 實現•••••••••••••••••••••185 5.5.6 學習參數•••••••••••••••190 5.5.7 Inception 在CIFAR 數據集上的性能••••••190 5.6 ResNet •••••••••••••••••••••• 191 5.6.1 ResNet 新特性•••••••••191 5.6.2 殘差塊••••••••••••••••••193 5.6.3 keras 中的ResNet 實現•••••••••••••••••••••195 5.6.4 學習超參數••••••••••••197 5.6.5 ResNet 在CIFAR 數據集上的性能••••••197 5.7 本章小結••••••••••••••••••• 198 第6 章 遷移學習••••••••••••••••••••••••••199 6.1 遷移學習的必要性••••••• 200 6.2 遷移學習的定義•••••••••• 201 6.3 遷移學習的工作原理•••• 207 6.3.1 神經網路如何學習 特徵•••••••••••••••••••••208 6.3.2 網路後期提取的特徵 的可遷移性••••••••••••210 6.4 遷移學習方法••••••••••••• 210 6.4.1 使用預訓練網路作為 分類器••••••••••••••••••210 6.4.2 使用預訓練網路作為 特徵提取器••••••••••••212 6.4.3 微調•••••••••••••••••••••213 6.5 選擇合適的遷移學習 方法••••••••••••••••••••••••• 215 6.5.1 場景1:目標數據集 較小且與源數據集 相似•••••••••••••••••••••215 6.5.2 場景2:目標數據集 較大且與源數據集 相似•••••••••••••••••••••216 6.5.3 場景3:目標數據集 較小且與源數據集 不同•••••••••••••••••••••216 6.5.4 場景4:目標數據集 較大且與源數據集 不同•••••••••••••••••••••216 6.5.5 遷移學習場景總結•••216 6.6 開源數據集•••••••••••••••• 217 6.6.1 MNIST ••••••••••••••••••217 6.6.2 Fashion-MNIST •••••••218 6.6.3 CIFAR ••••••••••••••••••218 6.6.4 ImageNet •••••••••••••••219 6.6.5 MS COCO ••••••••••••••221 6.6.6 Google Open Images•••••••••••••••••••222 6.6.7 Kaggle•••••••••••••••••••222 6.7 項目1:預訓練網路作為 特徵提取器•••••••••••••••• 222 6.8 項目2:微調•••••••••••••• 228 6.9 本章小結••••••••••••••••••• 235 第7 章 使用R-CNN、SSD 和YOLO 進行目標檢測•••••••••••••••••• 237 7.1 目標檢測的通用框架•••• 238 7.1.1 候選區域•••••••••••••••239 7.1.2 網路預測•••••••••••••••240 7.1.3 非極大值抑制 (NMS) •••••••••••••••••••241 7.1.4 目標檢測器的評價 指標•••••••••••••••••••••241 7.2 R-CNN•••••••••••••••••••••• 244 7.2.1 R-CNN ••••••••••••••••••244 7.2.2 Fast R-CNN ••••••••••••248 7.2.3 Faster R-CNN ••••••••••250 7.2.4 R-CNN 家族總結•••••256 7.3 SSD(Single-shot detector) •••••••••••••••••••• 259 7.3.1 SSD 架構總覽•••••••••259 7.3.2 基礎網路•••••••••••••••261 7.3.3 多尺度特徵層•••••••••263 7.3.4 NMS•••••••••••••••••••••266 7.4 YOLO(you only look once)(320) ••••••••••••••••• 267 7.4.1 YOLO v3 的工作 機制•••••••••••••••••••••268 7.4.2 YOLOv3 架構•••••••••270 7.5 項目:在自動駕駛中 應用SSD 網路•••••••••••• 272 7.5.1 步驟1:構建模型••••274 7.5.2 步驟2:模型配置••••275 7.5.3 步驟3:創建模型••••276 7.5.4 步驟3:載入數據••••276 7.5.5 步驟5:訓練模型••••278 7.5.6 步驟6:視覺化 損失•••••••••••••••••••••279 7.5.7 步驟7:預測••••••••••280 7.6 本章小結••••••••••••••••••• 281 第Ⅲ部分 生成模型與視覺嵌入 第8 章 生成對抗網路•••••••••••••••••••285 8.1 GAN 架構•••••••••••••••••• 286 8.1.1 Deep convolutional GANs(DCGANs) ••••••288 8.1.2 鑒別器模型••••••••••••288 8.1.3 生成器模型••••••••••••290 8.1.4 訓練GAN ••••••••••••••293 8.1.5 GAN 極小極大值 函數•••••••••••••••••••••296 8.2 評估GAN 模型••••••••••• 297 8.2.1 Inception score•••••••••298 8.2.2 Fréchet inception distance (FID)•••••••••••••••••••••298 8.2.3 評估方案選擇•••••••••299 8.3 GAN 的主流應用••••••••• 299 8.3.1 文本生成圖像(Text-tophoto synthesis)••••••••299 8.3.2 圖像翻譯(Pix2Pix GAN) ••••••••••••••••••••300 8.3.3 圖像超解析度 GAN(SRGAN)•••••••••301 8.3.4 準備好動手了嗎••••••302 8.4 練習項目:構建自己的 GAN •••••••••••••••••••••••• 302 8.5 本章小結••••••••••••••••••• 311 第9 章 DeepDream 和神經風格 遷移•••••••••••••••••••••••••••••••• 313 9.1 打開CNN 的黑盒•••••••• 314 9.1.1 CNN 工作原理 回顧•••••••••••••••••••••314 9.1.2 CNN 特徵視覺化•••••315 9.1.3 特徵視覺化工具的 實現•••••••••••••••••••••318 9.2 DeepDream •••••••••••••••• 321 9.2.1 DeepDream 演算法的工作 原理•••••••••••••••••••••322 9.2.2 DeepDream 的Keras 實現•••••••••••••••••••••324 9.3 神經風格遷移••••••••••••• 327 9.3.1 內容損失•••••••••••••••329 9.3.2 風格損失(style loss) ••••••••••••••••••••••330 9.3.3 總變分損失(total variance loss)••••••••••••••••••••••332 9.3.4 網路訓練•••••••••••••••332 9.4 本章小結••••••••••••••••••• 333 第10 章 視覺嵌入••••••••••••••••••••••••335 10.1 視覺嵌入的應用•••••••• 336 10.1.1 人臉識別••••••••••••337 10.1.2 圖片推薦系統••••••337 10.1.3 目標重識別系統•••339 10.2 學習嵌入••••••••••••••••• 340 10.3 損失函數••••••••••••••••• 341 10.3.1 問題建立和 形式化•••••••••••••••342 10.3.2 交差熵損失•••••••••342 10.3.3 對比損失••••••••••••343 10.3.4 三元組損失•••••••••344 10.3.5 損失的簡單實現和 運行分析••••••••••••345 10.4 挖掘資訊數據••••••••••• 347 10.4.1 數據載入器•••••••••347 10.4.2 資訊型數據挖掘:尋找 有用的三元組••••••349 10.4.3 Batch All(BA)•••••••350 10.4.4 Batch Hard(BH) ••••351 10.4.5 batch weighted (BW)••••••••••••••••••353 10.4.6 Batch Sample (BS)•••••••••••••••••••354 10.5 練習項目:訓練嵌入 網路••••••••••••••••••••••••• 355 10.5.1 時尚圈:查找相似的 衣服••••••••••••••••••356 10.5.2 車輛重識別•••••••••356 10.5.3 實現••••••••••••••••••357 10.5.4 測試訓練的模型•••358 10.6 突破準確度的限制••••• 362 10.7 本章小結••••••••••••••••• 363 參考文獻•••••••••••••••••••••••••••••••••••••••• 365 附錄A •••••••••••••••••••••••••••••••••••••••••••• 369 A.1 下載代碼庫••••••••••••••• 369 A.2 安裝Anaconda ••••••••••• 369 A.3 設置DL 環境••••••••••••• 370 A.3.1 手動設置你的開發 環境•••••••••••••••••••••370 A.3.2 使用本書的repo 中的 conda 環境••••••••••••••371 A.3.3 保存和載入環境••••••372 A.4 設置AWS EC2 環境•••• 372 A.4.1 創建AWS 帳號••••••372 A.4.2 遠端連接到此 實例•••••••••••••••••••••373 A.4.3 運行Jupyter Notebook••••••••••••••••374
Mohamed Elgendy是Rakuten(樂天)公司的工程副總裁。作為一名經驗豐富的人工智慧專家,他曾就職於Amazon和Twilio並致力於AI產品的構建和管理。
客服公告
热门活动
订阅电子报