本書主要介紹構建和訓練生成對抗網絡(GAN)的方法。全書共12 章,先介紹生成模型以及GAN 的工作原理,并概述它們的潛在用途,然后探索GAN 的基礎結構(生成器和鑒別器),引導讀者搭建一個簡單的對抗系統(tǒng)。
本書給出了大量的示例,教讀者學習針對不同的場景訓練不同的GAN,進而完成生成高分辨率圖像、實現(xiàn)圖像到圖像的轉換、生成對抗樣本以及目標數據等任務,讓所構建的系統(tǒng)變得智能、有效和快速。
1.“深度學習系統(tǒng)的一大進步”——GAN,在圖像生成和數據增強領域有出色表現(xiàn);
2.以Python語言實現(xiàn),很強的實戰(zhàn)性,涵蓋構建、訓練、優(yōu)化全過程;
3.英國創(chuàng)企孵化器Founders Factory計算機視覺領域的聯(lián)合創(chuàng)始人Jakub Langr與美國紐約一家初創(chuàng)公司的高級產品經理Vladimir Bok合力寫就;
4. 獲Simeon Leyzerzon、Dana Robinson、Grigory V. Sapunov、Bachir Chihani等人聯(lián)袂推薦;
5.提供本書示例代碼。
雅各布·朗格爾(Jakub Langr) 英國創(chuàng)企孵化器 Founders Factory計算機視覺領域的聯(lián)合創(chuàng)始人。
弗拉基米爾·博克(Vladimir Bok) 美國紐約一家初創(chuàng)公司的高級產品經理,負責機器學習基礎架構方面的工作和研究團隊的整體運作。
第 一部分 生成對抗網絡(GAN)與生成模型導論
第 1 章 GAN 簡介 3
1.1 什么是 GAN 5
1.2 GAN 是如何工作的 5
1.3 GAN 實戰(zhàn) 6
1.3.1 GAN 的訓練 7
1.3.2 達到平衡 10
1.4 為什么要學 GAN 11
1.5 小結 14
第 2 章 自編碼器生成模型入門 15
2.1 生成模型簡介16
2.2 自編碼器如何用于高級場景 16
2.3 什么是 GAN 的自編碼器 18
2.4 自編碼器的構成 18
2.5 自編碼器的使用 20
2.6 無監(jiān)督學習21
2.6.1 吐故納新 21
2.6.2 使用自編碼器生成 22
2.6.3 變分自編碼器 23
2.7 代碼就是生命23
2.8 為什么要嘗試使用 GAN 30
2.9 小結 32
第 3 章 你的第 一個 GAN 模型:生成手寫數字 . 33
3.1 GAN 的基礎:對抗訓練 33
3.1.1 代價函數 35
3.1.2 訓練過程 35
3.2 生成器和鑒別器 37
3.2.1 對抗的目標 37
3.2.2 混淆矩陣 38
3.3 GAN 訓練算法 38
3.4 教程:生成手寫數字 39
3.4.1 導入模塊并指定模型輸入維度 40
3.4.2 構造生成器 41
3.4.3 構造鑒別器 41
3.4.4 搭建整個模型 42
3.4.5 訓練 43
3.4.6 輸出樣本圖像 44
3.4.7 運行模型 45
3.4.8 檢查結果 45
3.5 結論 46
3.6 小結 46
第 4 章 深度卷積生成對抗網絡(DCGAN)47
4.1 卷積神經網絡48
4.1.1 卷積濾波器 48
4.1.2 參數共享 48
4.1.3 卷積神經網絡可視化 48
4.2 DCGAN 簡史 49
4.3 批歸一化 50
4.3.1 理解歸一化 50
4.3.2 計算批歸一化 51
4.4 教程:用 DCGAN 生成手寫數字 52
4.4.1 導入模塊并指定模型輸入維度 53
4.4.2 構造生成器 53
4.4.3 構造鑒別器 55
4.4.4 構建并運行 DCGAN 57
4.4.5 模型輸出 59
4.5 結論 60
4.6 小結 60
第二部分 GAN 的前沿主題
第 5 章 訓練與普遍挑戰(zhàn):為成功而 GAN 63
5.1 評估 65
5.1.1 評估框架 65
5.1.2 IS 67
5.1.3 FID 68
5.2 訓練中的挑戰(zhàn)70
5.2.1 增加網絡深度 72
5.2.2 游戲設置 73
5.2.3 最小-最大 GAN 73
5.2.4 非飽和 GAN 74
5.2.5 何時停止訓練 76
5.2.6 WGAN77
5.3 總結游戲設置80
5.4 訓練技巧 81
5.4.1 輸入的歸一化 81
5.4.2 批歸一化 81
5.4.3 梯度懲罰 82
5.4.4 對鑒別器進行更多的訓練 82
5.4.5 避免稀疏梯度 83
5.4.6 平滑和帶噪聲的標簽 83
5.5 小結 83
第 6 章 漸進式增長生成對抗網絡(PGGAN) 85
6.1 潛在空間插值 86
6.2 它們發(fā)展如此之快 87
6.2.1 高分辨率層的漸進增長和平滑 87
6.2.2 示例實現(xiàn) 90
6.2.3 小批量標準偏差 91
6.2.4 均衡學習率 92
6.2.5 生成器中的像素級特征歸一化 93
6.3 主要創(chuàng)新點總結 96
6.4 TensorFlow Hub 庫及其實踐 97
6.5 PGGAN 的實際應用 98
6.6 小結 101
第 7 章 半監(jiān)督生成對抗網絡(SGAN) 103
7.1 SGAN 簡介105
7.1.1 什么是 SGAN 106
7.1.2 結構107
7.1.3 訓練過程 107
7.1.4 訓練目標 108
7.2 教程:SGAN 的實現(xiàn) 108
7.2.1 架構圖 108
7.2.2 實現(xiàn)109
7.2.3 設置109
7.2.4 數據集 110
7.2.5 生成器 112
7.2.6 鑒別器 112
7.2.7 搭建整個模型 115
7.2.8 訓練116
7.3 與全監(jiān)督分類器的對比 118
7.4 結論 119
7.5 小結 119
第 8 章 條件生成對抗網絡(CGAN) 121
8.1 動機 121
8.2 什么是 CGAN 122
8.2.1 CGAN 的生成器 123
8.2.2 CGAN 的鑒別器 123
8.2.3 匯總表 124
8.2.4 架構圖 124
8.3 教程:CGAN 的實現(xiàn) 125
8.3.1 實現(xiàn)125
8.3.2 設置125
8.3.3 CGAN 的生成器 126
8.3.4 CGAN 的鑒別器 128
8.3.5 搭建整個模型 130
8.3.6 訓練131
8.3.7 輸出樣本圖像 132
8.3.8 訓練模型 134
8.3.9 檢查輸出:生成目標數據 134
8.4 結論 135
8.5 小結 136
第 9 章 循環(huán)一致性生成對抗網絡(CycleGAN) 137
9.1 圖像到圖像的轉換 137
9.2 循環(huán)一致性損失:再 GAN 一次 139
9.3 對抗損失 140
9.4 恒等損失 140
9.5 架構 142
9.5.1 CycleGAN 架構:構建網絡 143
9.5.2 生成器架構 144
9.5.3 鑒別器架構 146
9.6 GAN 的面向對象設計 146
9.7 教程:CycleGAN 146
9.7.1 構建網絡 148
9.7.2 構建生成器 149
9.7.3 構建鑒別器 151
9.7.4 訓練 CycleGAN 152
9.7.5 運行 CycleGAN 154
9.8 擴展、增強和應用 154
9.8.1 增強 CycleGAN 154
9.8.2 應用155
9.9 小結 156
第三部分 何去何從
第 10 章 對抗樣本 159
10.1 對抗樣本的背景 160
10.2 謊言,該死的謊言及分布 161
10.3 訓練的使用與濫用 162
10.4 信號與噪聲167
10.5 柳暗花明又一村 171
10.6 GAN 的對手 172
10.7 結論 173
10.8 小結 174
第 11 章 GAN 的實際應用 175
11.1 醫(yī)學領域的 GAN 176
11.1.1 利用 GAN 提高診斷準確率 176
11.1.2 方法 178
11.1.3 結果 179
11.2 時尚領域的GAN 180
11.2.1 利用 GAN 設計服裝 181
11.2.2 方法 181目錄
11.2.3 創(chuàng)造新單品以符合個人偏好 182
11.2.4 修改現(xiàn)有單品以更符合個人偏好 184
11.3 結論 187
11.4 小結 187
第 12 章 展望未來 189
12.1 倫理問題189
12.2 GAN 的創(chuàng)新 191
12.2.1 相對生成對抗網絡(RGAN) 192
12.2.2 自注意力生成對抗網絡(SAGAN) 194
12.2.3 BigGAN 196
12.3 拓展閱讀 198
12.4 回顧與總結198
12.5 小結 200