本書通過多個不同的生成對抗網(wǎng)絡(luò)(GAN)架構(gòu)的實現(xiàn)來幫助讀者更好地理解生成對抗網(wǎng)絡(luò)背后的原理及其構(gòu)建方式。書中還提供了大量易于理解并可以直接使用的GAN代碼及其部署方式和數(shù)據(jù)集,以幫助讀者更快地上手解決工作中所面臨的問題并積極應(yīng)對相關(guān)挑戰(zhàn)。本書適合數(shù)據(jù)科學家、算法工程師、數(shù)據(jù)挖掘工程師以及機器學習領(lǐng)域相關(guān)的從業(yè)人員用來學習使用全新的深度學習技術(shù)解決工作中的問題,也適合機器學習和深度學習的愛好者、初學者用來體驗深度學習的魅力。
Josh Kalin 是一位物理學家和技術(shù)專家,他關(guān)注于機器人學和機器學習的交叉領(lǐng)域。Josh致力于先進的傳感器,工業(yè)機器人,機器學習和自動化車輛研究項目。他同時擁有物理學,機械工程以及計算機科學的學位。在業(yè)余時間,他喜歡研究車輛(擁有36輛汽車),組裝計算機以及學習機器人以及機器學習領(lǐng)域的新技術(shù)(例如撰寫本書)。
劉夢馨,北京大學碩士研究生,曾在阿里技術(shù)保障部擔任系統(tǒng)工程師,后加入靈雀云從事容器云平臺調(diào)度系統(tǒng)和容器網(wǎng)絡(luò)相關(guān)方向的開發(fā),專注于分布式系統(tǒng)和機器學習的研究和動向;譯有《Java微服務(wù)測試:基于Arquillian、Hoverfly、AssertJ、JUnit、Selenium與Mockito》《GAN:實戰(zhàn)生成對抗網(wǎng)絡(luò)》《Mesos:大數(shù)據(jù)資源調(diào)度與大規(guī)模容器運行*佳實踐》等書。
目錄
序言 1
第1章 什么是生成對抗網(wǎng)絡(luò) 7
簡介 7
生成模型和判別模型 8
工作流程 8
工作原理 9
神經(jīng)網(wǎng)絡(luò)的“愛情故事” 10
工作流程 10
工作原理 11
深度神經(jīng)網(wǎng)絡(luò) 11
工作流程 11
工作原理 12
架構(gòu)基礎(chǔ) 13
工作流程 13
工作原理 14
基本構(gòu)建塊——生成器 15
工作流程 15
工作原理 15
基本構(gòu)建塊——判別器 16
工作流程 16
工作原理 17
基本構(gòu)建塊——損失函數(shù) 18
工作流程 18
工作原理 18
訓練 20
工作流程 20
工作原理 20
以不同方式組織GAN 20
工作流程 21
工作原理 21
GAN的輸出是什么 22
工作流程 22
工作原理 22
理解GAN架構(gòu)的優(yōu)點 24
工作流程 24
工作原理 25
練習 25
第2章 數(shù)據(jù)優(yōu)先、環(huán)境和數(shù)據(jù)準備 27
簡介 27
數(shù)據(jù)是否如此重要 27
準備工作 28
工作流程 28
工作原理 29
更多內(nèi)容 29
搭建開發(fā)環(huán)境 29
準備工作 30
工作流程 30
更多內(nèi)容 35
數(shù)據(jù)類型 35
準備工作 36
工作流程 36
工作原理 38
更多內(nèi)容 40
數(shù)據(jù)預(yù)處理 41
準備工作 41
工作流程 41
工作原理 42
更多內(nèi)容 45
異常數(shù)據(jù) 46
準備工作 46
工作流程 46
更多內(nèi)容 49
平衡數(shù)據(jù) 49
準備工作 49
工作流程 49
更多內(nèi)容 53
數(shù)據(jù)強化 54
準備工作 54
工作流程 55
工作原理 56
更多內(nèi)容 57
練習 58
第3章 用100行代碼實現(xiàn)第一個GAN 59
簡介 59
從理論到實踐——一個簡單例子 59
準備工作 60
工作流程 60
參考內(nèi)容 62
使用Keras和TensorFlow構(gòu)建神經(jīng)網(wǎng)絡(luò) 62
準備工作 63
工作流程 63
參考內(nèi)容 66
解釋你的第一個GAN組件——判別器 66
準備工作 67
工作流程 67
解釋你的第二個GAN組件——生成器 71
準備工作 71
工作流程 71
組合GAN組件 75
準備工作 76
工作流程 76
訓練你的第一個GAN 78
準備工作 78
工作流程 78
訓練模型并理解GAN的輸出 84
準備工作 84
工作流程 84
工作原理 86
練習 87
第4章 使用DCGAN創(chuàng)造新的室外結(jié)構(gòu) 89
簡介 89
什么是DCGAN?一個簡單的偽代碼樣例 89
準備工作 90
工作流程 90
參考內(nèi)容 93
工具——是否需要特殊的工具 93
準備工作 93
工作流程 94
更多內(nèi)容 97
參考內(nèi)容 97
解析數(shù)據(jù)——數(shù)據(jù)是否獨特 97
準備工作 97
工作流程 98
代碼實現(xiàn)——生成器 100
準備工作 100
工作流程 100
參考內(nèi)容 103
代碼實現(xiàn)——判別器 103
準備工作 104
工作流程 104
參考內(nèi)容 107
訓練 107
準備工作 107
工作流程 107
評估——如何判斷它是否有效 114
準備工作 115
工作原理 115
調(diào)整參數(shù)優(yōu)化性能 116
工作流程 116
練習 118
第5章 Pix2Pix圖像轉(zhuǎn)換 119
簡介 119
使用偽代碼介紹Pix2Pix 119
準備工作 120
工作流程 120
數(shù)據(jù)集解析 122
準備工作 122
工作流程 123
代碼實現(xiàn)——生成器 124
準備工作 124
工作流程 125
代碼實現(xiàn)——GAN 127
準備工作 127
工作流程 128
代碼實現(xiàn)——判別器 129
準備工作 129
工作流程 129
訓練 131
準備工作 131
工作流程 132
練習 139
第6章 使用CycleGAN進行圖像風格轉(zhuǎn)換 141
簡介 141
偽代碼——工作原理 141
準備工作 142
工作流程 142
解析CycleGAN數(shù)據(jù)集 144
準備工作 144
工作流程 145
代碼實現(xiàn)——生成器 147
準備工作 147
工作流程 148
代碼實現(xiàn)——判別器 150
準備工作 150
工作流程 151
代碼實現(xiàn)——GAN 153
準備工作 153
工作流程 154
訓練 155
準備工作 155
工作流程 156
練習 162
第7章 利用SimGAN使用模擬圖像制作具有真實感的眼球圖片 163
簡介 163
SimGAN架構(gòu)的工作原理 163
準備工作 164
工作流程 164
偽代碼——工作原理 165
準備工作 165
工作流程 165
如何使用訓練數(shù)據(jù) 166
準備工作 166
工作流程 166
代碼實現(xiàn)——損失函數(shù) 169
準備工作 169
工作流程 169
代碼實現(xiàn)——生成器 170
準備工作 170
工作流程 171
代碼實現(xiàn)——判別器 173
準備工作 173
工作流程 174
代碼實現(xiàn)——GAN 176
準備工作 176
工作流程 177
訓練SimGAN 178
準備工作 178
工作流程 179
練習 183
第8章 使用GAN從圖像生成3D模型 185
簡介 185
使用GAN生成3D模型 185
準備工作 186
工作流程 186
環(huán)境準備 188
準備工作 189
工作流程 189
對2D數(shù)據(jù)進行編碼并匹配3D對象 190
準備工作 191
工作流程 191
代碼實現(xiàn)——生成器 193
準備工作 193
工作流程 194
代碼實現(xiàn)——判別器 196
準備工作 196
工作流程 197
代碼實現(xiàn)——GAN 199
準備工作 199
工作流程 199
訓練模型 200
準備工作 201
工作流程 201
練習 208