深入淺出 GAN 生成對抗網絡 : 原理剖析與 TensorFlow 實踐

廖茂文 潘志宏

  • 深入淺出 GAN 生成對抗網絡 : 原理剖析與 TensorFlow 實踐-preview-1
  • 深入淺出 GAN 生成對抗網絡 : 原理剖析與 TensorFlow 實踐-preview-2
深入淺出 GAN 生成對抗網絡 : 原理剖析與 TensorFlow 實踐-preview-1

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

商品描述

本書首先從Python基本語法開始討論,逐步介紹必備的數學知識與神經網絡的基本知識,
並利用討論的內容編寫一個深度學習框架TensorPy,
有了這些知識作為鋪墊後,就開始討論生成對抗網絡(GAN)相關的內容。
然後,本書使用比較簡單的語言來描述GAN涉及的思想、
模型與數學原理,接著便通過TensorFlow實現傳統的GAN,
並討論為何一定需要生成器或判別器。
接下來,重點介紹GAN各種常見的變體,包括捲積生成對抗網絡、
條件對抗生成網絡、循環一致性、改進生成對抗網絡、漸近增強式生成對抗網絡等內容。
本書從模型與數學的角度來理解GAN變體,希望通過數學符號表達出不同GAN變體的核心思想,
適合人工智能、機器學習、計算機視覺相關專業的人員學習使用。

作者簡介

廖茂文

遊戲AI研究員、高級工程師、中國人工智能學會高級會員。
研究興趣為自然語言處理、生成對抗網絡、遊戲AI,曾參與多項機器學習項目。

潘志宏

高級工程師,中山大學新華學院“百名骨干教師”,
中國人工智能學會高級會員、中國計算機學會會員。
研究興趣為機器學習、深度學習、物聯網。
主持和參與省市級、校級項目10餘項,其中主持廣東省普通高校青年創新人才項目、
教育部產學合作協同育人項目各一項。
發表論文18篇,其中SCI、EI、北大核心期刊12篇,
第一作者論文獲得北大核心期刊優秀論文、東莞市計算機學會優秀論文。
申請發明專利、實用新型專利共8項,其中已授權3項,
獲得軟件著作權3項,已出版教材3部。
指導學生獲得***和省級競賽獎項50餘項,多次獲得***和省級優秀指導教師獎。

目錄大綱

第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