本書旨在介紹人工智能中深度學習的基礎(chǔ)知識,為即將進入深度學習領(lǐng)域進行研究的讀者奠定基礎(chǔ)。全書共13章,其中,第1~4章為理論部分,第5~13章為應用部分。理論部分介紹了機器學習和深度學習的基本內(nèi)容,以及TensorFlow開發(fā)框架的搭建和使用;應用部分設(shè)置了多個項目案例,并介紹了這些案例詳細的實現(xiàn)步驟和代碼,使讀者在練習中熟悉和掌握相關(guān)知識的應用方法與技巧。
本書采用項目驅(qū)動的編寫方式,做到了理論和實踐的結(jié)合。每個項目案例都提供配套的數(shù)據(jù)源文件和源代碼文件,使讀者可以直接感受案例效果。讀者也可以在相關(guān)案例代碼的基礎(chǔ)上調(diào)整相關(guān)參數(shù),得到不一樣的結(jié)果,以加深理解。
本書適合作為高等院校的人工智能課程教材,也可作為人工智能相關(guān)培訓的教材。
1.細致講解人工智能中深度學習的基礎(chǔ)知識,為即將進入深度學習領(lǐng)域進行研究的讀者奠定基礎(chǔ)。
2.采用任務驅(qū)動的編寫方式,可以直接進行實驗效果體驗,并進行自由調(diào)整,操作性強。
3.提供豐富的教學資源,包括電子課件、習題解答、實驗設(shè)計、指導書等,還提供實踐所需的虛擬機以及其他配套工具軟件,可以輕松上手。
4.逐步建設(shè)在線教學網(wǎng)站,教學資源上傳網(wǎng)上,提供線上與線下同步學習。
許桂秋 《大數(shù)據(jù)導論》《Python編程基礎(chǔ)與應用》《NoSQL數(shù)據(jù)庫原理與應用》《數(shù)據(jù)挖掘與機器學習》等9本系列教材,浙江科技出版社,2019年。
1 章 緒論 1
1.1 人工智能 2
1.1.1 人工智能簡介 2
1.1.2 人工智能三大學派 3
1.2 機器學習 3
1.2.1 機器學習簡介 3
1.2.2 機器學習分類 4
1.3 淺層學習和深度學習 6
1.3.1 淺層學習 6
1.3.2 深度學習 6
1.4 本章小結(jié) 7
第 2 章 深度學習基礎(chǔ) 9
2.1 深層神經(jīng)網(wǎng)絡簡介 10
2.1.1 神經(jīng)元模型 10
2.1.2 單層神經(jīng)網(wǎng)絡 11
2.1.3 深層神經(jīng)網(wǎng)絡 12
2.1.4 深層神經(jīng)網(wǎng)絡節(jié)點 12
2.1.5 深層神經(jīng)網(wǎng)絡參數(shù) 13
2.1.6 節(jié)點輸出值的計算方式 13
2.2 機器學習模型的評估方法 14
2.3 深層神經(jīng)網(wǎng)絡的訓練與優(yōu)化 16
2.3.1 深層神經(jīng)網(wǎng)絡的訓練 16
2.3.2 深層神經(jīng)網(wǎng)絡的優(yōu)化 21
2.4 本章小結(jié) 23
第 3 章 搭建深度學習框架 25
3.1 常見的深度學習框架 26
3.1.1 TensorFlow 26
3.1.2 Caffe 27
3.1.3 Keras 28
3.1.4 Torch 28
3.1.5 MXNet 28
3.1.6 CNTK 29
3.2 安裝 TensorFlow 29
3.2.1 安裝準備 30
3.2.2 在 Python 環(huán)境中安裝 TensorFlow 35
3.2.3 TensorFlow 的使用 36
3.3 TensorFlow Playground 37
3.3.1 菜單選項 38
3.3.2 DATA 區(qū)域 39
3.3.3 FEATURES 區(qū)域 40
3.3.4 HIDDEN LAYERS 區(qū)域 40
3.3.5 OUTPUT 區(qū)域 41
3.4 Keras 的核心組件 43
3.4.1 Models API 45
3.4.2 Layers API 45
3.4.3 Callbacks API 47
3.4.4 Data preprocessing 47
3.4.5 Metrics 50
3.5 使用 TensorFlow 實現(xiàn)神經(jīng)網(wǎng)絡 51
3.6 本章小結(jié) 58
第 4 章 TensorFlow 編程基礎(chǔ) 59
4.1 計算圖與張量 60
4.1.1 初識計算圖與張量 60
4.1.2 TensorFlow 的計算模型--計算圖 60
4.1.3 TensorFlow 的數(shù)據(jù)模型--張量 63
4.2 TensorFlow 的運行模型--會話 65
4.2.1 TensorFlow 系統(tǒng)結(jié)構(gòu) 65
4.2.2 會話的使用 67
4.2.3 會話的配置 68
4.2.4 占位符的使用 69
4.3 TensorFlow 變量 70
4.3.1 變量的創(chuàng)建 70
4.3.2 變量與張量 73
4.3.3 管理變量空間 75
4.4 識別圖像中模糊的手寫數(shù)字 79
4.5 本章小結(jié) 85
第 5 章 使用 Keras 搭建多層感知機識別 MNIST 數(shù)據(jù)集 87
5.1 構(gòu)建項目 88
5.2 下載和預處理 MNIST 數(shù)據(jù)集 88
5.2.1 下載數(shù)據(jù)集 88
5.2.2 預處理數(shù)據(jù)集 89
5.3 搭建并訓練多層感知機 94
5.3.1 搭建模型 94
5.3.2 訓練模型 95
5.4 改進模型 98
5.4.1 搭建模型 98
5.4.2 訓練模型 99
5.5 評估訓練結(jié)果 101
5.5.1 評估模型準確率 101
5.5.2 使用模型進行預測 102
5.5.3 建立混淆矩陣 103
5.6 本章小結(jié) 105
第 6 章 優(yōu)化多層感知機 107
6.1 構(gòu)建項目 108
6.2 搭建帶有隱藏層的模型 108
6.3 誤差與過擬合問題 111
6.3.1 訓練誤差與泛化誤差 111
6.3.2 過擬合問題 112
6.4 過擬合的處理方法 112
6.4.1 增加隱藏層神經(jīng)元 112
6.4.2 加入 Dropout 機制 115
6.4.3 增加隱藏層 117
6.5 保存模型 119
6.5.1 將模型保存為 JSON 格式文件 119
6.5.2 保存模型權(quán)重 122
6.6 本章小結(jié) 123
第 7 章 項目 1:識別 Fashion MNIST 數(shù)據(jù)集 125
7.1 卷積神經(jīng)網(wǎng)絡簡介 126
7.2 LeNet-5 卷積模型 126
7.3 Fashion MNIST 數(shù)據(jù)集 128
7.3.1 Fashion MNIST 數(shù)據(jù)集簡介 128
7.3.2 下載 Fashion MNIST 數(shù)據(jù)集 128
7.3.3 查看數(shù)據(jù) 128
7.4 搭建 LeNet-5 卷積模型并識別 Fashion MNIST 數(shù)據(jù)集 130
7.4.1 預處理數(shù)據(jù) 130
7.4.2 搭建 LeNet-5 卷積模型 131
7.4.3 訓練與評估 LeNet-5 卷積模型 132
7.4.4 識別過程的可視化展示 133
7.5 改進 LeNet-5 卷積模型 136
7.5.1 預處理數(shù)據(jù) 136
7.5.2 改進 LeNet-5 卷積模型 136
7.5.3 訓練和評估改進后的 LeNet-5 卷積模型 138
7.5.4 預測測試集 139
7.5.5 保存改進后的 LeNet-5 卷積模型 141
7.6 預測自然測試集 142
7.6.1 預處理圖像 142
7.6.2 預測結(jié)果 143
7.7 本章小結(jié) 144
第 8 章 項目 2:識別 CIFAR-10 數(shù)據(jù)集 145
8.1 準備工作 146
8.2 下載和查看數(shù)據(jù)集 148
8.2.1 下載數(shù)據(jù)集 149
8.2.2 查看訓練數(shù)據(jù) 149
8.3 搭建模型識別 CIFAR-10 數(shù)據(jù)集 150
8.3.1 預處理數(shù)據(jù)集 150
8.3.2 搭建模型 151
8.3.3 訓練模型 154
8.3.4 測試模型 155
8.4 加深模型的網(wǎng)絡結(jié)構(gòu) 159
8.5 本章小結(jié) 162
第 9 章 項目 3:識別貓狗圖像 163
9.1 準備工作 164
9.2 預處理數(shù)據(jù)集 164
9.2.1 下載和存儲數(shù)據(jù)集 164
9.2.2 處理數(shù)據(jù) 165
9.2.3 讀取和預處理數(shù)據(jù) 168
9.3 搭建模型識別貓狗圖像 169
9.3.1 搭建并訓練模型 169
9.3.2 利用數(shù)據(jù)擴充法解決過擬合問題 172
9.4 本章小結(jié) 177
第 10 章 項目 4:識別人臉表情 179
10.1 準備數(shù)據(jù) 180
10.2 構(gòu)建模型 182
10.3 訓練模型 184
10.4 測試和評估模型 185
10.5 本章小結(jié) 190
第 11 章 構(gòu)建生成對抗網(wǎng)絡生成 MNIST 模擬數(shù)據(jù)集 191
11.1 生成對抗網(wǎng)絡概述 192
11.2 生成對抗網(wǎng)絡的種類 193
11.2.1 DCGAN 193
11.2.2 InfoGAN 195
11.2.3 AEGAN 195
11.2.4 SRGAN 196
11.3 使用 InfoGAN 生成 MNIST 模擬數(shù)據(jù)集 198
11.4 本章小結(jié) 203
第 12 章 項目 5:使用 SRGAN 實現(xiàn) Flowers 數(shù)據(jù)集的超分辨率修復 205
12.1 準備數(shù)據(jù) 206
12.2 構(gòu)建模型 207
12.2.1 構(gòu)建生成器 207
12.2.2 VGG 的預輸入處理 208
12.2.3 計算 VGG 特征空間的損失值 208
12.2.4 構(gòu)建判別器 209
12.2.5 計算損失值,定義優(yōu)化器 210
12.2.6 指定預訓練模型路徑 210
12.3 訓練模型 211
12.4 本章小結(jié) 213