GAN : 實戰生成對抗網絡 GAN:实战生成对抗网络

昆塔勒·甘古力 (Kuntal Ganguly)

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

商品描述

《GAN:實戰生成對抗網絡》內容提要
《GAN:實戰生成對抗網絡》介紹深度學習領域一個十分活躍的分支——生成對抗網絡(GAN)。《GAN:實戰生成對抗網絡》中覆蓋了深度學習的基礎、對抗網絡背後的原理以及構建方式等內容。同時《GAN:實戰生成對抗網絡》還介紹了多個真實世界中使用對抗網絡構建智能應用的案例並提供了具體的代碼以及部署方法,旨在幫助讀者能夠在真正的生產環境中使用生成對抗網絡。
《GAN:實戰生成對抗網絡》適合數據科學家、算法工程師、數據挖掘工程師以及其他機器學習領域相關的從業人員,以幫助他們在工作中應用生成對抗模型;也適合機器學習和深度學習的愛好者、初學者來瞭解深度學習領域的最新魔力。

作者簡介

Kuntal Ganguly是一位大數據分析工程師,其利用機器學習和大數據框架來搭建大規模數據驅動系統。Kuntal具有7年的大數據和機器學習應用構建經驗。
Kuntal為雲上客戶提供搭建實時分析系統的解決方案。這其中利用到了託管式的雲服務和開源Hadoop生態系統工具,諸如Spark、Kafka、Storm、Solr以及機器學習和深度學習框架。
Kuntal也喜歡親自動手參與軟件的開發過程,並且曾經獨自一人完成了多個大規模分佈式應用從構思、架構、開發一直到部署的整個過程。

目錄大綱

前言 XII
1 深度學習概述 1
1.1 深度學習的演化 1
1.1.1 sigmoid激發 3
1.1.2 修正線性單元(ReLU) 3
1.1.3 指數線性單元(ELU) 4
1.1.4 隨機梯度下降(SGD) 5
1.1.5 學習速率調優 6
1.1.6 正則化 7
1.1.7 權重分享以及池化 8
1.1.8 局部感受野 10
1.1.9 卷積網路(ConvNet) 11
1.2 逆卷積/轉置卷積 13
1.2.1 遞迴神經網路和LSTM 13
1.2.2 深度神經網路 14
1.2.3 判別模型和生成模型的對比 16
1.3 總結 16

2 無監督學習GAN 17
2.1 利用深度神經網路自動化人類任務 17
2.1.1 GAN的目的 18
2.1.2 現實世界的一個比喻 19
2.1.3 GAN的組成 20
2.2 GAN的實現 22
2.2.1 GAN的應用 25
2.2.2 在Keras上利用DCGAN實現圖像生成 26
2.2.3 利用TensorFlow實現SSGAN 29
2.3 GAN模型的挑戰 38
2.3.1 啟動及初始化的問題 38
2.3.2 模型坍塌 38
2.3.3 計數方面的問題 39
2.3.4 角度方面的問題 39
2.3.5 全局結構方面的問題 40
2.4 提升GAN訓練效果的方法 41
2.4.1 特徵匹配 41
2.4.2 小批量 42
2.4.3 歷史平均 42
2.4.4 單側標籤平滑 42
2.4.5 輸入規範化 42
2.4.6 批規範化 42
2.4.7 利用ReLU和MaxPool避免稀疏梯度 43
2.4.8 優化器和雜訊 43
2.4.9 不要僅根據統計資訊平衡損失 43
2.5 總結 43

3 圖像風格跨域轉換 45
3.1 彌補監督學習和無監督學習之間的空隙 45
3.2 條件GAN介紹 46
3.2.1 利用CGAN生成時尚衣櫃 47
3.2.2 利用邊界均衡固化GAN訓練 51
3.3 BEGAN的訓練過程 52
3.3.1 BEGAN的架構 52
3.3.2 利用TensorFlow實現BEGAN 53
3.4 利用CycleGAN實現圖像風格的轉換 57
3.4.1 CycleGAN的模型公式 58
3.4.2 利用TensorFlow將蘋果變成橘子 58
3.4.3 利用CycleGAN將馬變為斑馬 61
3.5 總結 63

4 從文本構建逼真的圖像 65
4.1 StackGAN介紹 65
4.1.1 條件強化 66
4.1.2 StackGAN的架構細節 68
4.1.3 利用TensorFlow從文本生成圖像 69
4.2 利用DiscoGAN探索跨域的關係 72
4.2.1 DiscoGAN架構以及模型公式 73
4.2.2 DiscoGAN的實現 75
4.3 利用PyTorch從邊框生成手提包 78
4.4 利用PyTorch進行性別轉換 80
4.5 DiscoGAN和CycleGAN的對比 82
4.6 總結 82

5 利用多種生成模型生成圖像 83
5.1 遷移學習介紹 84
5.1.1 遷移學習的目的 84
5.1.2 多種利用預訓練模型的方法 85
5.1.3 利用Keras對車、貓、狗和花進行分類 86
5.2 利用Apache Spark進行大規模深度學習 90
5.2.1 利用Spark深度學習模組運行預訓練模型 91
5.2.2 利用BigDL運行大規模手寫數位識別 94
5.2.3 利用SRGAN生成高清晰度圖像 98
5.2.4 SRGAN的架構 99
5.3 利用DeepDream生成夢幻的藝術圖像 105
5.4 在TensorFlow上利用VAE生成手寫數位 107
5.5 VAE在真實世界的比喻 108
5.6 GAN和VAE兩個生成模型的比較 111
5.7 總結 111

6 將機器學習帶入生產環境 113
6.1 利用DCGAN構建一個圖像矯正系統 113
6.1.1 構建圖像矯正系統的步驟 115
6.1.2 在生產環境部署模型的挑戰 117
6.2 利用容器的微服務架構 118
6.2.1 單體架構的缺陷 118
6.2.2 微服務架構的優點 118
6.2.3 使用容器的優點 119
6.3 部署深度模型的多種方法 120
6.3.1 方法1——離線建模和基於微服務的容器化部署 120
6.3.2 方法2——離線建模和無伺服器部署 121
6.3.3 方法3——線上學習 121
6.3.4 方法4——利用託管機器學習服務 121
6.4 在Docker上運行基於Keras的深度模型 121
6.5 在GKE上部署深度模型 124
6.6 利用AWS Lambda和Polly進行無伺服器的圖像識別並生成音頻 127
6.6.1 修改Lambda環境下代碼和包的步驟 137
6.6.2 利用雲託管服務進行人臉識別 138
6.7 總結 145