圖解深度學習與神經網絡:從張量到 TensorFlow 實現 图解深度学习与神经网络:从张量到TensorFlow实现

張平

立即出貨

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

相關主題

商品描述

290張圖+110個可執行的TensorFlow示例程序+算法示例易懂的神經網絡深度學習人工智能參考書源代碼文件供下載本書適合神經網絡、深度學習、TensorFlow 的入門者閱讀。

作者簡介

張平,數學與應用數學專業,數學功底深厚,算法工程師。
主要從事圖像算法研究和產品的應用開發。
此外,還從事有關深度學習、機器學習、數據挖掘算法的應用研發工作。

目錄大綱

1深度學習及TensorFlow簡介1 

1.1深度學習. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 
1.2 TensorFlow簡介及安裝. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 

2基本的數據結構及運算6 
2.1張量. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 
2.1.1張量的定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 
2.1.2 Tensor與Numpy的ndarray轉換. . . . . . . . . . . . . . . . . . . . . . 9 
2.1.3張量的尺寸. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 
2.1.4圖像轉換為張量. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2隨機數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 
2.2.1均勻(平均)分佈隨機數. . . . . . . . . . . . . . . . . . . . . . . . . . . 14 
2.2.2正態(高斯)分佈隨機數. . . . . . . . . . . . . . . . . . . . . . . . . . . 15 
2.3單個張量的運算. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 
2.3.1改變張量的數據類型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 
2.3.2訪問張量中某一個區域的值. . . . . . . . . . . . . . . . . . . . . . . . . 19 
2.3.3轉置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 
2.3.4改變形狀. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 
2.3.5歸約運算:求和、平均值、最大(小)值. . . . . . . . . . . . . . . . . 29
2.3.6最大(小)值的位置索引. . . . . . . . . . . . . . . . . . . . . . . . . . . 34 
2.4多個張量之間的運算. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 
2.4.1基本運算:加、減、乘、除. . . . . . . . . . . . . . . . . . . . . . . . . 35 
2.4.2乘法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 
2.4.3張量的連接. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 
2.4.4張量的堆疊. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 
2.4.5張量的對比. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 
2.5佔位符. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.6 Variable對象. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 

3梯度及梯度下降法52 
3.1梯度. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 
3.2導數計算的鏈式法則. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 
3.2.1多個函數和的導數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 
3.2.2複合函數的導數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 
3.2.3單變量函數的駐點、極值點、鞍點. . . . . . . . . . . . . . . . . . . . . 55 
3.2.4多變量函數的駐點、極值點、鞍點. . . . . . . . . . . . . . . . . . . . . 57 
3.2.5函數的泰勒級數展開. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 
3.2.6梯度下降法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.3梯度下降法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 
3.3.1 Adagrad法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 
3.3.2 Momentum法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 
3.3.3 NAG法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 
3.3.4 RMSprop法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 
3.3.5具備動量的RMSprop法. . . . . . . . . . . . . . . . . . . . . . . . . . . 80 
3.3.6 Adadelta法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 
3.3.7 Adam法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
3.3.8 Batch梯度下降. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 
3.3.9隨機梯度下降. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 
3.3.10 mini-Batch梯度下降. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 
3.4參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 

4回歸分析88 
4.1線性回歸分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 
4.1.1一元線性回歸. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 
4.1. 2保存和加載回歸模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 
4.1.3多元線性回歸. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.2非線性回歸分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 

5全連接神經網絡102 
5.1基本概念. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 
5.2計算步驟. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 
5.3神經網絡的矩陣表達. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 
5.4激活函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 
5.4.1 sigmoid激活函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 
5.4.2 tanh激活函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 
5.4. 3 ReLU激活函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
5.4.4 leaky relu激活函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 
5.4.5 elu激活函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 
5.4.6 crelu激活函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 
5.4.7 selu激活函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 
5.4.8 relu6激活函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 
5.4 .9 softplus激活函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 
5.4.10 softsign激活函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 
5.5參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 

6神經網絡處理分類問題125
6.1 TFRecord文件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 
6.1.1將ndarray寫入TFRecord文件. . . . . . . . . . . . . . . . . . . . . . . . 125 
6.1.2從TFRecord解析數據. . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 
6.2建立分類問題的數學模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 
6.2.1數據類別(標籤) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 
6.2.2圖像與TFRecrder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 
6.2.3建立模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 
6.3損失函數與訓練模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
6.3.1 sigmoid損失函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 
6.3.2 softmax損失函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 
6.3.3訓練和評估模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 
6.4全連接神經網絡的梯度反向傳播. . . . . . . . . . . . . . . . . . . . . . . . . . . 151 
6.4.1數學原理及示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 
6.4.2梯度消失. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 

7一維離散卷積168 
7.1一維離散卷積的計算原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 
7.1.1 full卷積. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
7.1.2 valid卷積. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 
7.1.3 same卷積. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 
7.1.4 full、same、valid卷積的關係. . . . . . . . . . . . . . . . . . . . . . . . 171 
7.2一維卷積定理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 
7.2.1一維離散傅里葉變換. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 
7.2.2卷積定理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 
7.3具備深度的一維離散卷積. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 
7.3.1具備深度的張量與卷積核的捲積. . . . . . . . . . . . . . . . . . . . . . . 182 
7.3.2具備深度的張量分別與多個卷積核的捲積. . . . . . . . . . . . . . . . . 183
7.3.3多個具備深度的張量分別與多個卷積核的捲積. . . . . . . . . . . . . . . 185 

8二維離散卷積187 
8.1二維離散卷積的計算原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 
8.1.1 full卷積. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 
8.1.2 same卷積. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 
8.1.3 valid卷積. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 
8.1.4 full、same、valid卷積的關係. . . . . . . . . . . . . . . . . . . . . . . . 192 
8.1 .5卷積結果的輸出尺寸. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 
8.2離散卷積的性質. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
8.2.1可分離的捲積核. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 
8.2.2 full和same卷積的性質. . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 
8.2.3快速計算卷積. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 
8.3二維卷積定理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 
8.3.1二維離散傅里葉變換. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 
8.3.2二維與一維傅里葉變換的關係. . . . . . . . . . . . . . . . . . . . . . . . 201 
8.3.3卷積定理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 
8.3.4利用卷積定理快速計算卷積. . . . . . . . . . . . . . . . . . . . . . . . . 203 
8.4多深度的離散卷積. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
8.4.1基本的多深度卷積. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 
8.4.2一個張量與多個卷積核的捲積. . . . . . . . . . . . . . . . . . . . . . . . 207 
8.4.3多個張量分別與多個卷積核的捲積. . . . . . . . . . . . . . . . . . . . . 208 
8.4.4在每一深度上分別卷積. . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 
8.4.5單個張量與多個卷積核在深度上分別卷積. . . . . . . . . . . . . . . . . 212 
8.4.6分離卷積. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 

9池化操作218 
9.1 same池化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 
9.1.1 same最大值池化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 
9.1.2多深度張量的same池化. . . . . . . . . . . . . . . . . . . . . . . . . . . 221
9.1.3多個三維張量的same最大值池化. . . . . . . . . . . . . . . . . . . . . . 223 
9.1.4 same平均值池化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 
9.2 valid池化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 
9.2.1多深度張量的vaild池化. . . . . . . . . . . . . . . . . . . . . . . . . . . 228 
9.2.2多個三維張量的valid池化. . . . . . . . . . . . . . . . . . . . . . . . . . 229 

10卷積神經網絡231 
10.1淺層卷積神經網絡. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 
10.2 LeNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 
10.3 AlexNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
10.3.1 AlexNet網絡結構詳解. . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 
10.3.2 dropout及其梯度下降. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 
10.4 VGGNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 
10.5 GoogleNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 
10.5.1網中網結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 
10.5.2 Batch Normalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 
10.5.3 BN與卷積運算的關係. . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 
10.5.4指數移動平均. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
10.5.5帶有BN操作的捲積神經網絡. . . . . . . . . . . . . . . . . . . . . . . . 276 
10.6 ResNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 
10.7參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 

11卷積的梯度反向傳播286 
11.1 valid卷積的梯度. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 
11.1.1已知卷積核,對未知張量求導. . . . . . . . . . . . . . . . . . . . . . . . 286 
11.1.2已知輸入張量,對未知卷積核求導. . . . . . . . . . . . . . . . . . . . . 290 
11.2 same卷積的梯度. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 
11.2.1已知卷積核,對輸入張量求導. . . . . . . . . . . . . . . . . . . . . . . . 294
11.2.2已知輸入張量,對未知卷積核求導. . . . . . . . . . . . . . . . . . . . . 298 

12池化操作的梯度303 
12.1平均值池化的梯度. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 
12.2最大值池化的梯度. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 

13 BN的梯度反向傳播311 
13.1 BN操作與卷積的關係. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 
13.2示例詳解. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 

14 TensorFlow搭建神經網絡的主要函數324