本書首先從Python 基本語法開始討論,逐步介紹必備的數學知識與神經網路的基本知識,並利用討論的內容編寫一個深度學習框架TensorPy,有了這些知識作為鋪墊後,就開始討論生成對抗網路(GAN)相關的內容。
然後,本書使用比較簡單的語言來描述GAN 涉及的思想、模型與數學原理,接著便通過TensorFlow實現傳統的GAN,並討論為何一定需要生成器或判別器。接下來,重點介紹GAN 各種常見的變體,包括卷積生成對抗網路、條件對抗生成網路、迴圈一致性、改進生成對抗網路、漸近增強式生成對抗網路等內容。
本書從模型與數學的角度來理解GAN 變體,希望通過數學符號表達出不同GAN 變體的核心思想,適合人工智慧、機器學習、電腦視覺相關專業的人員學習使用。
作者介紹
廖茂文:遊戲AI研究員、高級工程師、中國人工智慧學會高級會員。研究興趣為自然語言處理、生成對抗網路、遊戲AI,曾參與多項機器學習項目。
潘志宏:高級工程師,中山大學新華學院“百名骨幹教師”,中國人工智慧學會高級會員、中國電腦學會會員。研究興趣為機器學習、深度學習、物聯網。主持和參與省市級、校級專案10餘項,其中主持廣東省普通高校青年創新人才項目、教育部產學合作協同育人項目各一項。
發表論文18篇,其中SCI、EI、北大核心期刊12篇,第一作者論文獲得北大核心期刊優秀論文、東莞市電腦學會優秀論文。申請發明專利、實用新型專利共8項,其中已授權3項,獲得軟體著作權3項,已出版教材3部。
潘志宏:高級工程師,中山大學新華學院“百名骨幹教師”,中國人工智慧學會高級會員、中國電腦學會會員。研究興趣為機器學習、深度學習、物聯網。主持和參與省市級、校級專案10餘項,其中主持廣東省普通高校青年創新人才項目、教育部產學合作協同育人項目各一項。
發表論文18篇,其中SCI、EI、北大核心期刊12篇,第一作者論文獲得北大核心期刊優秀論文、東莞市電腦學會優秀論文。申請發明專利、實用新型專利共8項,其中已授權3項,獲得軟體著作權3項,已出版教材3部。
目錄
第 1 章 優雅Python 1
1.1 Anaconda 1
1.2 Python 基礎 4
1.2.1 常用資料類型 5
1.2.2 流程控制 7
1.2.3 函式定義 8
1.3 Python 進階 8
1.3.1 生成式 9
1.3.2 可反覆運算對象與反覆運算器 9
1.3.3 生成器 11
1.3.4 裝飾器 11
1.4 小結 13
第 2 章 優雅的數學 14
2.1 向量與矩陣 14
2.1.1 向量的概念 14
2.1.2 向量的基本運算 15
2.1.3 矩陣的概念 17
2.1.4 矩陣的運算 19
2.2 微積分 24
2.2.1 圓的面積 24
2.2.2 古典微積分 25
2.2.3 重建微積分 28
2.2.4 常用的公式 29
2.2.5 偏導數 31
2.2.6 方向導數 31
2.2.7 鏈式法則 33
2.3 概率論 34
2.3.1 隨機變數 34
2.3.2 條件概率 36
2.3.3 貝葉斯定理 38
2.3.4 常見的概率分佈 39
2.4 資訊理論 41
2.4.1 信息熵 41
2.4.2 條件熵 43
2.4.3 互信息 43
2.4.4 相對熵(KL 散度) 44
2.4.5 交叉熵 45
2.5 小結 46
第 3 章 初識神經網路 47
3.1 什麼是神經網路 47
3.1.1 神經網路的歷史 47
3.1.2 神經網路的優勢 54
3.2 神經網路中常見的概念 55
3.2.1 前向傳播演算法 55
3.2.2 損失函數 57
3.2.3 梯度下降演算法 58
3.2.4 各種梯度下降演算法 63
3.2.5 反向傳播演算法 67
3.2.6 過擬合與欠擬合 70
3.3 動手實現深度學習框架TensorPy 71
3.3.1 實現計算圖 71
3.3.2 實現Session 物件 74
3.3.3 實現感知器前向傳播演算法 76
3.3.4 實現對數損失 79
3.3.5 實現梯度下降演算法與反向傳播演算法 81
3.3.6 實現多層感知器 86
3.4 TensorFlow 簡介 89
3.4.1 TensorFlow 安裝與介紹 89
3.4.2 TensorFlow 基本概念 90
3.4.3 TensorFlow 實現多層感知器 91
3.4.4 TensorBoard 視覺化 93
3.4.5 TensorFlow 模型保存方法 98
3.5 小結 99
第 4 章 初識生成對抗網路 101
4.1 什麼是生成對抗網路 101
4.1.1 什麼是GAN 101
4.1.2 GAN 使用範圍 103
4.2 GAN 基本原理 104
4.2.1 GAN 模型詳情 104
4.2.2 對抗的本質 106
4.3 TensorFlow 實現樸素GAN 108
4.3.1 樸素GAN 生成MNIST
資料集 108
4.3.2 訓練與效果展示 114
4.4 關於GAN 的幾個問題 117
4.4.1 為什麼生成器G 生成資料需要判別器D 介入 117
4.4.2 為什麼判別器D 不自己
生成資料 120
4.4.3 為什麼選擇GAN 121
4.5 小結 122
第 5 章 生成對抗網路的數學原理 123
5.1 擬合真實分佈 123
5.1.1 最大似然估計 123
5.1.2 最大似然估計擬合分佈 125
5.1.3 最大似然估計與KL散度的關係 126
5.2 生成對抗網路 127
5.2.1 生成器擬合分佈 127
5.2.2 判別器計算分佈的差異 128
5.2.3 GAN 的數學推導 129
5.2.4 GAN 的本質 131
5.3 統一框架F-GAN 134
5.3.1 f 散度 134
5.3.2 凸共軛 137
5.3.3 f 散度與GAN 之間的關係 138
5.4 GAN 訓練過程視覺化 139
5.5 小結 144
第 6 章 卷積生成對抗網路 145
6.1 初識卷積神經網路 145
6.1.1 什麼是卷積神經網路 145
6.1.2 CNN 識別圖像過程 147
6.1.3 CNN 核心概念 151
6.2 TensorFlow 實現卷積網路 154
6.2.1 構建CNN 計算圖 154
6.2.2 訓練CNN 網路 160
6.2.3 Dropout 操作 161
6.2.4 DCGAN:CNN 與GAN
有機結合 162
6.2.5 Batch Normalization 164
6.3 TensorFlow 實現DCGAN 網路 166
6.3.1 TensorFlow 實現DCGAN 的生成器 .167
6.3.2 TensorFlow 實現DCGAN 的
判別器 170
6.3.3 獲得測試樣例 171
6.3.4 構建DCGAN 整體 172
6.3.5 訓練DCGAN 173
6.3.6 RussellCould 使用 179
6.3.7 結果展示 185
6.4 小結 189
第 7 章 條件對抗生成網路 190
7.1 如何實現圖像間風格轉換 190
7.1.1 傳統神經網路的缺陷 190
7.1.2 普通GAN 的缺陷 191
7.2 條件對抗生成網路 192
7.2.1 GAN 詳解 192
7.2.2 CGAN 訓練流程 193
7.3 ColorGAN 的實現 194
7.3.1 生成器與判別器的構建 194
7.3.2 圖像資料預處理 197
7.3.3 ColorGAN 訓練學習 200
7.3.4 ColorGAN 訓練結果 203
7.3.5 圖像轉圖像的討論 208
7.4 實現文字轉圖像 209
7.4.1 獨熱向量 209
7.4.2 fashion-mnist 資料集 210
7.4.3 FashionCGAN 判別器和生成器 211
7.4.4 訓練FashionCGAN 213
7.5 實現句子轉圖像 215
7.5.1 word2vec 技術 215
7.5.2 RNN、LSTM 與GRU 218
7.5.3 Skip-Thought Vector 223
7.5.4 實現Skip-Thought 226
7.5.5 實現句子轉圖像 234
7.6 小結 237
第 8 章 迴圈一致性 238
8.1 以無監督的方式實現風格轉換 238
8.2 CycleGAN 240
8.2.1 CycleGAN 的架構與目標函數 241
8.2.2 CycleGAN 做的改變 243
8.2.3 TensorFlow 實現CycleGAN生成器與判別器 251
8.2.4 TensorFlow 搭建與訓練CycleGAN 254
8.2.5 效果展示 258
8.3 StarGAN 262
8.3.1 StarGAN 的結構與目標函數 262
8.3.2 TensorFlow 構建StarGAN模型 265
8.3.3 構建StarGAN 的損失 268
8.3.4 效果展示 272
8.4 語義樣式不變的圖像跨域轉換 275
8.4.1 Domain Transfer Network介紹 276
8.4.2 DTN 代碼結構 278
8.4.3 XGAN 介紹 283
8.5 小結 287
第 9 章 改進生成對抗網路 289
9.1 傳統GAN 存在的問題 289
9.1.1 梯度消失 289
9.1.2 模式崩潰 293
9.2 Wasserstein GAN 295
9.2.1 EM 距離 295
9.2.2 EM 距離使用在GAN 上 298
9.2.3 EM 距離與判別器的關係 299
9.2.4 TensorFlow 實現WGAN 302
9.3 Improved WGAN(WGAN-GP) 306
9.3.1 WGAN 存在的問題 306
9.3.2 gradient penalty 308
9.3.3 TensorFlow 實現WGAN-GP 310
9.4 SN-GAN 314
9.4.1 SN-GAN 介紹 314
9.4.2 Spectral Normalization方法與SN-GAN 315
9.4.3 TensorFlow 實現SNGAN 321
9.5 小結 326
第 10 章 漸近增強式生成對抗網路 327
10.1 堆疊式生成對抗網路StackGAN 327
10.1.1 StackGAN-v1 327
10.1.2 棋盤效應 330
10.1.3 StackGAN-v2 333
10.1.4 TensorFlow 實現StackGAN-v2 335
10.2 TensorFlow 資料處理 348
10.2.1 placeholder 讀取數據 348
10.2.2 Queue 方式讀取資料 348
10.2.3 tf.data 讀取數據 353
10.3 漸近增長生成對抗網路PGGAN .
10.3.1 PGGAN 介紹 355
10.3.2 PGGAN 的改進點 356
10.3.3 TensorFlow 實現PGGAN 361
10.4 小結 369
第 11 章 GAN 進行特徵學習 370
11.1 近似推斷 370
11.1.1 變分推斷思想 371
11.1.2 平均場 372
11.2 InfoGAN 375
11.2.1 資料特徵與互資訊 376
11.2.2 InfoGAN 數學原理與模型結構 377
11.2.3 TensorFlow 實現InfoGAN 381
11.2.4 使用InfoGAN 生成圖像 385
11.3 VAE-GAN 390
11.3.1 AutoEncoder 自編碼器 390
11.3.2 變分自編碼器 392
11.3.3 數學角度看VAE 394
11.3.4 TensorFlow 實現VAE 400
11.3.5 VAE 與GAN 的結合體VAE-GAN 405
11.3.6 TensorFlow 實現VAE-GAN 407
11.4 小結 414
第 12 章 GAN 在NLP 中的運用 415
12.1 GAN 在文本生成中遇到的境 415
12.2 GAN 生成離散資料的方法 418
12.2.1 判別器直接獲取生成器的輸出 418
12.2.2 Gumbel-softmax 420
12.3 強化學習簡述 422
12.3.1 強化學習演算法 423
12.3.2 Policy Gradient 424
12.3.3 GAN+RL 作用于文本生成 428
12.3 SeqGAN 429
12.3.1 SeqGAN 結構與演算法 429
12.3.2 Highway Network 432
12.3.3 SeqGAM 生成器與rollout結構的實現 434
12.3.4 SeqGAN 中目標LSTM 與判別器的實現 445
12.3.5 SeqGAN 中生成器與判別器預訓練 453
12.3.6 SeqGAN 對抗訓練 459
12.4 MaskGAN 461
12.4.1 MaskGAN 結構與演算法 461
12.4.2 TensorFlow 實現MaskGAN 的生成器與判別器 465
12.4.3 TensorFlow 實現MaskGAN 的Actor-Critic 與目標函數 472
12.4.4 TensorFlow 實現MaskGAN 的結構與訓練邏輯 476
12.5 小結 480
1.1 Anaconda 1
1.2 Python 基礎 4
1.2.1 常用資料類型 5
1.2.2 流程控制 7
1.2.3 函式定義 8
1.3 Python 進階 8
1.3.1 生成式 9
1.3.2 可反覆運算對象與反覆運算器 9
1.3.3 生成器 11
1.3.4 裝飾器 11
1.4 小結 13
第 2 章 優雅的數學 14
2.1 向量與矩陣 14
2.1.1 向量的概念 14
2.1.2 向量的基本運算 15
2.1.3 矩陣的概念 17
2.1.4 矩陣的運算 19
2.2 微積分 24
2.2.1 圓的面積 24
2.2.2 古典微積分 25
2.2.3 重建微積分 28
2.2.4 常用的公式 29
2.2.5 偏導數 31
2.2.6 方向導數 31
2.2.7 鏈式法則 33
2.3 概率論 34
2.3.1 隨機變數 34
2.3.2 條件概率 36
2.3.3 貝葉斯定理 38
2.3.4 常見的概率分佈 39
2.4 資訊理論 41
2.4.1 信息熵 41
2.4.2 條件熵 43
2.4.3 互信息 43
2.4.4 相對熵(KL 散度) 44
2.4.5 交叉熵 45
2.5 小結 46
第 3 章 初識神經網路 47
3.1 什麼是神經網路 47
3.1.1 神經網路的歷史 47
3.1.2 神經網路的優勢 54
3.2 神經網路中常見的概念 55
3.2.1 前向傳播演算法 55
3.2.2 損失函數 57
3.2.3 梯度下降演算法 58
3.2.4 各種梯度下降演算法 63
3.2.5 反向傳播演算法 67
3.2.6 過擬合與欠擬合 70
3.3 動手實現深度學習框架TensorPy 71
3.3.1 實現計算圖 71
3.3.2 實現Session 物件 74
3.3.3 實現感知器前向傳播演算法 76
3.3.4 實現對數損失 79
3.3.5 實現梯度下降演算法與反向傳播演算法 81
3.3.6 實現多層感知器 86
3.4 TensorFlow 簡介 89
3.4.1 TensorFlow 安裝與介紹 89
3.4.2 TensorFlow 基本概念 90
3.4.3 TensorFlow 實現多層感知器 91
3.4.4 TensorBoard 視覺化 93
3.4.5 TensorFlow 模型保存方法 98
3.5 小結 99
第 4 章 初識生成對抗網路 101
4.1 什麼是生成對抗網路 101
4.1.1 什麼是GAN 101
4.1.2 GAN 使用範圍 103
4.2 GAN 基本原理 104
4.2.1 GAN 模型詳情 104
4.2.2 對抗的本質 106
4.3 TensorFlow 實現樸素GAN 108
4.3.1 樸素GAN 生成MNIST
資料集 108
4.3.2 訓練與效果展示 114
4.4 關於GAN 的幾個問題 117
4.4.1 為什麼生成器G 生成資料需要判別器D 介入 117
4.4.2 為什麼判別器D 不自己
生成資料 120
4.4.3 為什麼選擇GAN 121
4.5 小結 122
第 5 章 生成對抗網路的數學原理 123
5.1 擬合真實分佈 123
5.1.1 最大似然估計 123
5.1.2 最大似然估計擬合分佈 125
5.1.3 最大似然估計與KL散度的關係 126
5.2 生成對抗網路 127
5.2.1 生成器擬合分佈 127
5.2.2 判別器計算分佈的差異 128
5.2.3 GAN 的數學推導 129
5.2.4 GAN 的本質 131
5.3 統一框架F-GAN 134
5.3.1 f 散度 134
5.3.2 凸共軛 137
5.3.3 f 散度與GAN 之間的關係 138
5.4 GAN 訓練過程視覺化 139
5.5 小結 144
第 6 章 卷積生成對抗網路 145
6.1 初識卷積神經網路 145
6.1.1 什麼是卷積神經網路 145
6.1.2 CNN 識別圖像過程 147
6.1.3 CNN 核心概念 151
6.2 TensorFlow 實現卷積網路 154
6.2.1 構建CNN 計算圖 154
6.2.2 訓練CNN 網路 160
6.2.3 Dropout 操作 161
6.2.4 DCGAN:CNN 與GAN
有機結合 162
6.2.5 Batch Normalization 164
6.3 TensorFlow 實現DCGAN 網路 166
6.3.1 TensorFlow 實現DCGAN 的生成器 .167
6.3.2 TensorFlow 實現DCGAN 的
判別器 170
6.3.3 獲得測試樣例 171
6.3.4 構建DCGAN 整體 172
6.3.5 訓練DCGAN 173
6.3.6 RussellCould 使用 179
6.3.7 結果展示 185
6.4 小結 189
第 7 章 條件對抗生成網路 190
7.1 如何實現圖像間風格轉換 190
7.1.1 傳統神經網路的缺陷 190
7.1.2 普通GAN 的缺陷 191
7.2 條件對抗生成網路 192
7.2.1 GAN 詳解 192
7.2.2 CGAN 訓練流程 193
7.3 ColorGAN 的實現 194
7.3.1 生成器與判別器的構建 194
7.3.2 圖像資料預處理 197
7.3.3 ColorGAN 訓練學習 200
7.3.4 ColorGAN 訓練結果 203
7.3.5 圖像轉圖像的討論 208
7.4 實現文字轉圖像 209
7.4.1 獨熱向量 209
7.4.2 fashion-mnist 資料集 210
7.4.3 FashionCGAN 判別器和生成器 211
7.4.4 訓練FashionCGAN 213
7.5 實現句子轉圖像 215
7.5.1 word2vec 技術 215
7.5.2 RNN、LSTM 與GRU 218
7.5.3 Skip-Thought Vector 223
7.5.4 實現Skip-Thought 226
7.5.5 實現句子轉圖像 234
7.6 小結 237
第 8 章 迴圈一致性 238
8.1 以無監督的方式實現風格轉換 238
8.2 CycleGAN 240
8.2.1 CycleGAN 的架構與目標函數 241
8.2.2 CycleGAN 做的改變 243
8.2.3 TensorFlow 實現CycleGAN生成器與判別器 251
8.2.4 TensorFlow 搭建與訓練CycleGAN 254
8.2.5 效果展示 258
8.3 StarGAN 262
8.3.1 StarGAN 的結構與目標函數 262
8.3.2 TensorFlow 構建StarGAN模型 265
8.3.3 構建StarGAN 的損失 268
8.3.4 效果展示 272
8.4 語義樣式不變的圖像跨域轉換 275
8.4.1 Domain Transfer Network介紹 276
8.4.2 DTN 代碼結構 278
8.4.3 XGAN 介紹 283
8.5 小結 287
第 9 章 改進生成對抗網路 289
9.1 傳統GAN 存在的問題 289
9.1.1 梯度消失 289
9.1.2 模式崩潰 293
9.2 Wasserstein GAN 295
9.2.1 EM 距離 295
9.2.2 EM 距離使用在GAN 上 298
9.2.3 EM 距離與判別器的關係 299
9.2.4 TensorFlow 實現WGAN 302
9.3 Improved WGAN(WGAN-GP) 306
9.3.1 WGAN 存在的問題 306
9.3.2 gradient penalty 308
9.3.3 TensorFlow 實現WGAN-GP 310
9.4 SN-GAN 314
9.4.1 SN-GAN 介紹 314
9.4.2 Spectral Normalization方法與SN-GAN 315
9.4.3 TensorFlow 實現SNGAN 321
9.5 小結 326
第 10 章 漸近增強式生成對抗網路 327
10.1 堆疊式生成對抗網路StackGAN 327
10.1.1 StackGAN-v1 327
10.1.2 棋盤效應 330
10.1.3 StackGAN-v2 333
10.1.4 TensorFlow 實現StackGAN-v2 335
10.2 TensorFlow 資料處理 348
10.2.1 placeholder 讀取數據 348
10.2.2 Queue 方式讀取資料 348
10.2.3 tf.data 讀取數據 353
10.3 漸近增長生成對抗網路PGGAN .
10.3.1 PGGAN 介紹 355
10.3.2 PGGAN 的改進點 356
10.3.3 TensorFlow 實現PGGAN 361
10.4 小結 369
第 11 章 GAN 進行特徵學習 370
11.1 近似推斷 370
11.1.1 變分推斷思想 371
11.1.2 平均場 372
11.2 InfoGAN 375
11.2.1 資料特徵與互資訊 376
11.2.2 InfoGAN 數學原理與模型結構 377
11.2.3 TensorFlow 實現InfoGAN 381
11.2.4 使用InfoGAN 生成圖像 385
11.3 VAE-GAN 390
11.3.1 AutoEncoder 自編碼器 390
11.3.2 變分自編碼器 392
11.3.3 數學角度看VAE 394
11.3.4 TensorFlow 實現VAE 400
11.3.5 VAE 與GAN 的結合體VAE-GAN 405
11.3.6 TensorFlow 實現VAE-GAN 407
11.4 小結 414
第 12 章 GAN 在NLP 中的運用 415
12.1 GAN 在文本生成中遇到的境 415
12.2 GAN 生成離散資料的方法 418
12.2.1 判別器直接獲取生成器的輸出 418
12.2.2 Gumbel-softmax 420
12.3 強化學習簡述 422
12.3.1 強化學習演算法 423
12.3.2 Policy Gradient 424
12.3.3 GAN+RL 作用于文本生成 428
12.3 SeqGAN 429
12.3.1 SeqGAN 結構與演算法 429
12.3.2 Highway Network 432
12.3.3 SeqGAM 生成器與rollout結構的實現 434
12.3.4 SeqGAN 中目標LSTM 與判別器的實現 445
12.3.5 SeqGAN 中生成器與判別器預訓練 453
12.3.6 SeqGAN 對抗訓練 459
12.4 MaskGAN 461
12.4.1 MaskGAN 結構與演算法 461
12.4.2 TensorFlow 實現MaskGAN 的生成器與判別器 465
12.4.3 TensorFlow 實現MaskGAN 的Actor-Critic 與目標函數 472
12.4.4 TensorFlow 實現MaskGAN 的結構與訓練邏輯 476
12.5 小結 480
網路書店
類別
折扣
價格
-
新書87折$517