深度學習與計算機視覺 : 算法原理、框架應用與代碼實現 (Deep Learning & Computer Vision:Algorithms and Examples) 深度学习与计算机视觉:算法原理、框架应用与代码实现

葉韻

買這商品的人也買了...

商品描述

全書共13章,分為2篇。第1篇基礎知識,介紹了人工智能發展里程、電腦視覺概要、深度學習和電腦視覺中的基礎數學知識、神經網絡及其相關的機器學習基礎、捲積神經網絡及其一些常見結構,後對前沿的趨勢進行了簡單探討。第2篇實例精講,介紹了Python基礎、OpneCV基礎、簡單的分類神經網絡、圖像識別、利用Caffe做回歸、遷移學習和模型微調、目標檢測、度量學習和圖像風格遷移等常見的電腦視覺應用場景。從第5章開始包含了很多有趣和實用的代碼示例。從第7章開始的所有實例都基於當前流行的深度學習框架中的Caffe和MXNet。

作者簡介

博士,現在京東從事深度學習和計算機視覺算法研發。加入京東之前,曾在ProPlus Design Solutions矽谷和北京研發中心任職研發經理,負責統計建模算法研發,後加入Siemens Corporate Technology擔任Research Scientist,專注計算影像和計算機視覺的研究。葉博士於2007年7月獲得北京大學微電子學士學位,2011年4月獲得Arizona State University的Electrical Engineering博士學位。

目錄大綱

序言
前言

第1篇基礎知識

第1章引言2 
1.1人工智能的新焦點——深度學習2 
1.1.1人工智能——神話傳說到影視漫畫2 
1.1.2人工智能的誕生3 
1.1.3神經科學的研究4 
1.1.4人工神經網絡的興起5 
1.1.5神經網絡的第一次寒冬6 
1.1.6神經網絡的第一次復興8 
1.1.7神經網絡的第二次寒冬9 
1.1.8 2006年— —深度學習的起點10 
1.1.9生活中的深度學習11 
1.1.10常見深度學習框架簡介12 
1.2給計算機一雙眼睛——計算機視覺14 
1.2.1計算機視覺簡史14 
1.2.2 2012年——計算機視覺的新起點16 
1.2.3計算機視覺的應用17 
1.2.4常見計算機視覺工具包19 
1.3基於深度學習的計算機視覺19 
1.3.1從ImageNet競賽到AlphaGo戰胜李世石——計算機視覺超越人類19 
1.3.2 GPU和並行技術——深度學習和計算視覺發展的加速器21 
1.3.3基於卷積神經網絡的計算機視覺應用22 

第2章深度學習和計算機視覺中的基礎數學知識27 
2. 1線性變換和非線性變換27 
2.1.1線性變換的定義27 
2.1.2高中教科書中的小例子28 
2.1.3點積和投影28 
2.1.4矩陣乘法的幾何意義(1) 30 
2.1.5本徵向量和本徵值34 
2.1.6矩陣乘法的幾何意義(2) 37 
2.1.7奇異值分解38 
2.1.8線性可分性和維度39 
2.1.9非線性變換42 
2.2概率論及相關基礎知識43 
2.2.1條件概率和獨立43 
2.2.2期望值、方差和協方差44 
2.2.3熵45 
2.2.4最大似然估計(Maximum Likelihood Estimation,MLE) 47 
2.2.5 KL散度(Kullback—Leibler divergence ) 49 
2.2.6 KL散度和MLE的聯繫49 
2.3維度的詛咒50 
2.3.1採樣和維度50 
2.3.2高維空間中的體積51 
2.3.3高維空間中的距離53 
2.3.4中心極限定理和高維樣本距離分佈的近似54 
2.3.5數據實際的維度56 
2.3.6局部泛化58 
2.3.7函數對實際維度的影響59 
2.3.8 PCA——什麼是主成分60 
2.3.9 PCA ——通過本徵向量和本徵值求主成分60 
2.3.10 PCA——通過主成分分析 降維61 
2.3.11 PCA——歸一化和相關性係數63 
2.3.12 PCA——什麼樣的數據適合PCA 64 
2.3.13其他降維手段65 
2.4卷積66 
2.4.1點積和卷積66 
2.4.2一維卷積67 
2.4.3卷積和互相關68 
2.4.4二維卷積和圖像響應69 
2.4.5卷積的計算70 
2.5數學優化基礎71 
2.5.1最小值和梯度下降72 
2.5.2衝量(Momentum) 73 
2.5.3牛頓法75 
2.5.4學習率和自適應步長77 
2.5.5學習率衰減(Learning Rate Decay) 78 
2.5.6 AdaGrad:每個變量有自己的節奏78 
2.5.7 AdaDelta的進一步改進79 
2.5.8其他自適應算法80 
2.5.9損失函數81 
2.5.10分類問題和負對數似然82 
2.5.11邏輯回歸83 
2.5.12 Softmax:將輸出轉換為概率84 
2.5.13鍊式求導法則84 

第3章神經網絡和機器學習基礎87 
3.1感知機87 
3.1.1基本概念87 
3.1.2感知機和線性二分類87 
3.1.3激活函數88 
3.2神經網絡基礎89 
3.2.1從感知機到神經網絡89 
3.2.2最簡單的神經網絡二分類例子90 
3.2.3隱層神經 數量的作用93 
3.2.4更加複雜的樣本和更複雜的神經網絡94 
3.3後向傳播算法95 
3.3.1求神經網絡參數的梯度95 
3.3.2計算圖(Computational Graph) 95 
3.3.3利用後向傳播算法計算一個神經網絡參數的梯度97 
3.3.4梯度消失99 
3.3.5修正線性單元(ReLU) 100 
3.3.6梯度爆炸101 
3.3.7梯度檢查(gradient check) 102 
3.3.8從信息傳播的角度看後向傳播算法103 
3.4隨機梯度下降和批量梯度下降104 
3.4.1全量數據(full—batch)梯度下降104 
3.4.2隨機梯度下降(SGD)和小批量數據(mini—batch) 104 
3.4.3數據均衡和數據增加(data augmentation) 106 
3.5數據、訓練策略和規範化108 
3.5.1欠擬合和過擬合108 
3.5.2訓練誤差和測試誤差109 
3.5.3奧卡姆剃刀沒有免費午餐111 
3.5 .4數據集劃分和提前停止112 
3.5.5病態問題和約束113 
3.5.6 L2規範化(L2 Regularization) 113 
3.5.7 L1規範化(L1 Regularization) 114 
3.5.8集成(E nsemble)和隨機失活(Dropout) 115 
3.6監督學習、非監督學習、半監督學習和強化學習117 
3.6.1監督學習、非監督學習和半監督學習117 
3.6.2強化學習(reinforcement learning) 118 

第4章深度卷積神經網絡120 
4.1卷積神經網絡120 
4.1.1基本概念120 
4.1.2卷積層和特徵響應圖121 
4.1.3參數共享123 
4.1.4稀疏連接124 
4.1.5多通道卷積125 
4.1.6激活函數125 
4.1.7池化、不變性和感受野126 
4.1.8分佈式表徵(Distributed Representation) 128 
4.1.9分佈式表徵和局部泛化130 
4.1.10分層表達131 
4.1. 11卷積神經網絡結構131 
4.2 LeNet——第一個卷積神經網絡132 
4.3新起點——AlexNet 133 
4.3.1網絡結構133 
4.3.2局部響應歸一化(Local Response Normalization,LRN) 136 
4.4更深的網絡——GoogLeNet 136 
4.4.11×1卷積和Network In Network 136 
4.4.2 Inception結構138 
4.4.3網絡結構138 
4.4.4批規一化(Batch Normalization,BN) 140 
4.5更深的網絡 —ResNet 142 
4.5.1困難的深層網絡訓練:退化問題142 
4.5.2殘差單元142 
4.5.3深度殘差網絡144 
4.5.4從集成的角度看待ResNet 144 
4.5.5結構更複雜的網絡146 

第2篇實例精講

第5章Python基礎148 
5.1 Python簡介148 
5.1.1 Python簡史148 
5.1.2安裝和使用Python 149 
5.2 Python基本語法150 
5.2.1基本數據類型和運算150 
5.2.2容器153 
5.2 .3分支和循環156 
5.2.4函數、生成器和類159 
5.2.5 map、reduce和filter 162 
5.2.6列表生成(list comprehension) 163 
5.2.7字符串163 
5.2.8文件操作和pickle 164 
5.2 .9異常165 
5.2.10多進程(multiprocessing) 165 
5.2.11 os模塊166 
5.3 Python的科學計算包——NumPy 167 
5.3.1基本類型(array) 167 
5.3.2線性代數模塊(linalg) 172 
5.3. 3隨機模塊(random) 173 
5.4 Python的可視化包——matplotlib 175 
5.4.12D圖表175 
5.4.23D圖表178 
5.4.3圖像顯示180 

第6章OpenCV基礎182 
6.1 OpenCV簡介182 
6.1.1 OpenCV的結構182 
6.1 .2安裝和使用Ope nCV 183 
6.2 Python—OpenCV基礎184 
6.2.1圖像的表示184 
6.2.2基本圖像處理185 
6.2.3圖像的仿射變換188 
6.2.4基本繪圖190 
6.2.5視頻功能192 
6.3用OpenCV實現數據增加小工具193 
6.3.1隨機裁剪194 
6.3.2隨機旋轉194 
6.3.3隨機顏色和明暗196 
6.3.4多進程調用加速處理196 
6.3.5代碼:圖片數據增加小工具196 
6.4用OpenCV實現物體標註小工具203 
6.4.1窗口循環203 
6.4.2鼠標和鍵盤事件205 
6.4.3代碼:物體檢測標註的小工具206 

第7章Hello World!212 
7.1用MXNet實現一個神經網絡212 
7.1.1基礎工具、NVIDIA驅動和CUDA安裝212 
7.1.2安裝MXNet 213 
7.1.3 MXNet基本使用214 
7.1.4用MXNet實現一個兩層神經網絡215 
7.2用Caffe實現一個神經網絡219 
7.2.1安裝Caffe 219 
7.2.2 Caffe的基本概念220 
7.2.3用Caffe實現一個兩層神經網絡221 

第8章最簡單的圖片分類——手寫數字識別227 
8.1準備數據——MNIST 227 
8.1.1下載MNIST 227 
8.1.2生成MNIST的圖片227 
8.2基於Caffe的實現228 
8.2.1製作LMDB數據229 
8.2.2訓練LeNet—5230 
8.2.3測試和評估235 
8.2.4識別手寫數字239 
8.2 .5增加平移和旋轉擾動240 
8.3基於MXNet的實現242 
8.3.1製作Image Recordio數據242 
8.3.2用Module模塊訓練LeNet—5243 
8.3.3測試和評估245 
8.3.4識別手寫數字247 

第9章利用Caffe做回歸249 
9.1回歸的原理249 
9.1.1預測值和標籤值的歐式距離249 
9.1.2 EuclideanLoss層250 
9.2預測隨機噪聲的頻率250 
9.2.1生成樣本:隨機噪聲250 
9.2. 2製作多標籤HDF5數據252 
9.2.3網絡結構和Solver定義253 
9.2.4訓練網絡259 
9.2.5批量裝載圖片並利用GPU預測260 
9.2.6卷積核可視化262 

第10章遷移學習和模型微調264 
10.1吃貨必備——通過Python採集美食圖片264 
10.1.1通過關鍵詞和圖片搜索引擎下載圖片264 
10.1.2數據預處理——去除無效和不相關圖片267 
10.1.3數據預處理——去除重複圖片267 
10.1.4生成訓練數據269 
10.2美食分類模型271 
10.2.1遷移學習271 
10.2.2模型微調法(Finetune) 272 
10.2.3混淆矩陣(Confusion Matrix) 276 
10.2.4 P—R曲線和ROC曲線278 
10.2.5全局平均池化和激活響應圖284 

第11章目標檢測288 
11.1目標檢測算法簡介288 
11.1.1滑窗法288 
11.1.2 PASCAL VOC、mAP和IOU簡介289 
11.1.3 Selective Search和R —CNN簡介290 
11.1.4 SPP、ROI Pooling和Fast R—CNN簡介291 
11.1.5 RPN和Faster R—CNN簡介293 
11.1.6 YOLO和SSD簡介294 
11.2基於PASCAL VOC數據集訓練SSD模型296 
11. 2.1 MXNet的SSD實現296 
11.2.2下載PASCAL VOC數據集297 
11.2.3訓練SSD模型298 
11.2.4測試和評估模型效果299 
11.2.5物體檢測結果可視化299 
11.2.6製作自己的標註數據302 

第12章度量學習304 
12.1距離和度量學習304 
12.1.1歐氏距離和馬氏距離304 
12.1.2歐式距離和余弦距離305 
12.1.3非線性度量學習和Siamese網絡306 
12.1.4 Contrastive Loss:對比損失函數307 
12.2用MNIST訓練Siamese網絡307 
12.2.1數據準備307 
12.2.2參數共享訓練309 
12.2.3結果和可視化314 
12.2.4用τ—SNE可視化高維特徵316 

第13章圖像風格遷移317 
13.1風格遷移算法簡介317 
13.1.1通過梯度下降法進行圖像重建317 
13.1.2圖像風格重建和Gram矩陣318 
13.1.3圖像風格遷移320 
13.2 MXNet中的圖像風格遷移例子320 
13.2.1 MXNet的風格遷移實現321 
13.2 .2對圖片進行風格遷移326