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