內容提要
《實戰GAN:TensorFlow與Keras生成對抗網路構建》通過多個不同的生成對抗網路(GAN)架構的實現來幫助讀者更好地理解生成對抗網路背後的原理及其構建方式。書中還提供了大量易於理解並可以直接使用的GAN代碼及其部署方式和數據集,以幫助讀者更快地上手解決工作中所面臨的問題並積極應對相關挑戰。
《實戰GAN:TensorFlow與Keras生成對抗網路構建》適合數據科學家、
算法工程師、數據挖掘工程師以及機器學習領域相關的從業人員用來學習使用全新的深度學習技術解決工作中的問題,也適合機器學習和深度學習的愛好者、初學者用來體驗深度學習的魅力。
目錄
序言 1
第1章 什麼是生成對抗網路 7
簡介 7
生成模型和判別模型 8
工作流程 8
工作原理 9
神經網路的“愛情故事” 10
工作流程 10
工作原理 11
深度神經網路 11
工作流程 11
工作原理 12
架構基礎 13
工作流程 13
工作原理 14
基本構建塊——生成器 15
工作流程 15
工作原理 15
基本構建塊——判別器 16
工作流程 16
工作原理 17
基本構建塊——損失函式 18
工作流程 18
工作原理 18
訓練 20
工作流程 20
工作原理 20
以不同方式組織GAN 20
工作流程 21
工作原理 21
GAN的輸出是什麼 22
工作流程 22
工作原理 22
理解GAN架構的優點 24
工作流程 24
工作原理 25
練習 25
第2章 數據優先、環境和數據準備 27
簡介 27
數據是否如此重要 27
準備工作 28
工作流程 28
工作原理 29
更多內容 29
搭建開發環境 29
準備工作 30
工作流程 30
更多內容 35
數據類型 35
準備工作 36
工作流程 36
工作原理 38
更多內容 40
數據預處理 41
準備工作 41
工作流程 41
工作原理 42
更多內容 45
異常數據 46
準備工作 46
工作流程 46
更多內容 49
平衡數據 49
準備工作 49
工作流程 49
更多內容 53
數據強化 54
準備工作 54
工作流程 55
工作原理 56
更多內容 57
練習 58
第3章 用100行代碼實現第一個GAN 59
簡介 59
從理論到實踐——一個簡單例子 59
準備工作 60
工作流程 60
參考內容 62
使用Keras和TensorFlow構建神經網路 62
準備工作 63
工作流程 63
參考內容 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創造新的室外結構 89
簡介 89
什麼是DCGAN?一個簡單的偽代碼樣例 89
準備工作 90
工作流程 90
參考內容 93
工具——是否需要特殊的工具 93
準備工作 93
工作流程 94
更多內容 97
參考內容 97
解析數據——數據是否獨特 97
準備工作 97
工作流程 98
代碼實現——生成器 100
準備工作 100
工作流程 100
參考內容 103
代碼實現——判別器 103
準備工作 104
工作流程 104
參考內容 107
訓練 107
準備工作 107
工作流程 107
評估——如何判斷它是否有效 114
準備工作 115
工作原理 115
調整參數最佳化性能 116
工作流程 116
練習 118
第5章 Pix2Pix圖像轉換 119
簡介 119
使用偽代碼介紹Pix2Pix 119
準備工作 120
工作流程 120
數據集解析 122
準備工作 122
工作流程 123
代碼實現——生成器 124
準備工作 124
工作流程 125
代碼實現——GAN 127
準備工作 127
工作流程 128
代碼實現——判別器 129
準備工作 129
工作流程 129
訓練 131
準備工作 131
工作流程 132
練習 139
第6章 使用CycleGAN進行圖像風格轉換 141
簡介 141
偽代碼——工作原理 141
準備工作 142
工作流程 142
解析CycleGAN數據集 144
準備工作 144
工作流程 145
代碼實現——生成器 147
準備工作 147
工作流程 148
代碼實現——判別器 150
準備工作 150
工作流程 151
代碼實現——GAN 153
準備工作 153
工作流程 154
訓練 155
準備工作 155
工作流程 156
練習 162
第7章 利用SimGAN使用模擬圖像製作具有真實感的眼球圖片 163
簡介 163
SimGAN架構的工作原理 163
準備工作 164
工作流程 164
偽代碼——工作原理 165
準備工作 165
工作流程 165
如何使用訓練數據 166
準備工作 166
工作流程 166
代碼實現——損失函式 169
準備工作 169
工作流程 169
代碼實現——生成器 170
準備工作 170
工作流程 171
代碼實現——判別器 173
準備工作 173
工作流程 174
代碼實現——GAN 176
準備工作 176
工作流程 177
訓練SimGAN 178
準備工作 178
工作流程 179
練習 183
第8章 使用GAN從圖像生成3D模型 185
簡介 185
使用GAN生成3D模型 185
準備工作 186
工作流程 186
環境準備 188
準備工作 189
工作流程 189
對2D數據進行編碼並匹配3D對象 190
準備工作 191
工作流程 191
代碼實現——生成器 193
準備工作 193
工作流程 194
代碼實現——判別器 196
準備工作 196
工作流程 197
代碼實現——GAN 199
準備工作 199
工作流程 199
訓練模型 200
準備工作 201
工作流程 201
練習 208
精彩節摘
作者簡介
關於作者
Josh Kalin是一位物理學家和技術專家,他關注於機器人和機器學習的交叉領域。Josh致力於先進感測器、工業機器人、機器學習和自動化車輛項目的研究。他同時擁有物理學、機械工程以及計算機科學的學位。在業餘時間,他喜歡研究車輛(擁有36輛汽車)、組裝計算機,以及學習機器人和機器學習領域的新技術(例如撰寫本書)。
本書的目標讀者
本書的目標讀者是
數據科學家、機器學習(Machine Learning,ML)開發者,以及需要一個處理GAN領域問題和任務快速索引的深度學習從業者。熟悉機器領域中的相關概念以及工作中使用Python的經驗會幫助你更好地理解本書內容。