本書介紹深度學(xué)習(xí)領(lǐng)域一個(gè)十分活躍的分支——生成對(duì)抗網(wǎng)絡(luò)(GAN)。書中覆蓋了深度學(xué)習(xí)的基礎(chǔ)、對(duì)抗網(wǎng)絡(luò)背后的原理以及構(gòu)建方式等內(nèi)容。同時(shí)本書還介紹了多個(gè)真實(shí)世界中使用對(duì)抗網(wǎng)絡(luò)構(gòu)建智能應(yīng)用的案例并提供了具體的代碼以及部署方法,旨在幫助讀者在真正的生產(chǎn)環(huán)境中使用生成對(duì)抗網(wǎng)絡(luò)。本書適合數(shù)據(jù)科學(xué)家、算法工程師、數(shù)據(jù)挖掘工程師以及其他機(jī)器學(xué)習(xí)領(lǐng)域相關(guān)的從業(yè)人員,以幫助他們?cè)诠ぷ髦袘?yīng)用生成對(duì)抗模型;也適合機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的愛好者、初學(xué)者來了解深度學(xué)習(xí)領(lǐng)域的新魔力。
Kuntal Ganguly是一位大數(shù)據(jù)分析工程師,其利用機(jī)器學(xué)習(xí)和大數(shù)據(jù)框架來搭建大規(guī)模數(shù)據(jù)驅(qū)動(dòng)系統(tǒng)。Kuntal具有七年的大數(shù)據(jù)和機(jī)器學(xué)習(xí)應(yīng)用構(gòu)建經(jīng)驗(yàn)。Kuntal為云上客戶提供搭建實(shí)時(shí)分析系統(tǒng)的解決方案。這其中利用到了托管式的云服務(wù)和開源Hadoop生態(tài)系統(tǒng)工具,諸如Spark、Kafka、Storm、Solr以及機(jī)器學(xué)習(xí)和深度學(xué)習(xí)框架。Kuntal也喜歡親自動(dòng)手參與軟件的開發(fā)過程,并且曾經(jīng)獨(dú)自一人完成了多個(gè)大規(guī)模分布式應(yīng)用從構(gòu)思、架構(gòu)、開發(fā)一直到部署的整個(gè)過程。他也是一個(gè)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的從業(yè)者,其十分熱衷于構(gòu)建智能應(yīng)用。下面是他的Linkedin主頁鏈接:https://www.linkedin.com/in/kuntal-ganguly- 59564088/。
劉夢(mèng)馨,一個(gè)做過前端、后端和測(cè)試的運(yùn)維人員,在阿里巴巴挖寶,順便去點(diǎn)亮 DBA 的技能樹。關(guān)注Docker,虛擬化和云計(jì)算技術(shù)。現(xiàn)任靈雀云架構(gòu)師,譯有《Mesos:大數(shù)據(jù)資源調(diào)度與大規(guī)模容器運(yùn)行最佳實(shí)踐》。
前言 XII
1 深度學(xué)習(xí)概述 1
1.1 深度學(xué)習(xí)的演化 1
1.1.1 sigmoid激發(fā) 3
1.1.2 修正線性單元(ReLU) 3
1.1.3 指數(shù)線性單元(ELU) 4
1.1.4 隨機(jī)梯度下降(SGD) 5
1.1.5 學(xué)習(xí)速率調(diào)優(yōu) 6
1.1.6 正則化 7
1.1.7 權(quán)重分享以及池化 8
1.1.8 局部感受野 10
1.1.9 卷積網(wǎng)絡(luò)(ConvNet) 11
1.2 逆卷積/轉(zhuǎn)置卷積 13
1.2.1 遞歸神經(jīng)網(wǎng)絡(luò)和LSTM 13
1.2.2 深度神經(jīng)網(wǎng)絡(luò) 14
1.2.3 判別模型和生成模型的對(duì)比 16
1.3 總結(jié) 16
2 無監(jiān)督學(xué)習(xí)GAN 17
2.1 利用深度神經(jīng)網(wǎng)絡(luò)自動(dòng)化人類任務(wù) 17
2.1.1 GAN的目的 18
2.1.2 現(xiàn)實(shí)世界的一個(gè)比喻 19
2.1.3 GAN的組成 20
2.2 GAN的實(shí)現(xiàn) 22
2.2.1 GAN的應(yīng)用 25
2.2.2 在Keras上利用DCGAN實(shí)現(xiàn)圖像生成 26
2.2.3 利用TensorFlow實(shí)現(xiàn)SSGAN 29
2.3 GAN模型的挑戰(zhàn) 38
2.3.1 啟動(dòng)及初始化的問題 38
2.3.2 模型坍塌 38
2.3.3 計(jì)數(shù)方面的問題 39
2.3.4 角度方面的問題 39
2.3.5 全局結(jié)構(gòu)方面的問題 40
2.4 提升GAN訓(xùn)練效果的方法 41
2.4.1 特征匹配 41
2.4.2 小批量 42
2.4.3 歷史平均 42
2.4.4 單側(cè)標(biāo)簽平滑 42
2.4.5 輸入規(guī)范化 42
2.4.6 批規(guī)范化 42
2.4.7 利用ReLU和MaxPool避免稀疏梯度 43
2.4.8 優(yōu)化器和噪聲 43
2.4.9 不要僅根據(jù)統(tǒng)計(jì)信息平衡損失 43
2.5 總結(jié) 43
3 圖像風(fēng)格跨域轉(zhuǎn)換 45
3.1 彌補(bǔ)監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)之間的空隙 45
3.2 條件GAN介紹 46
3.2.1 利用CGAN生成時(shí)尚衣柜 47
3.2.2 利用邊界均衡固化GAN訓(xùn)練 51
3.3 BEGAN的訓(xùn)練過程 52
3.3.1 BEGAN的架構(gòu) 52
3.3.2 利用TensorFlow實(shí)現(xiàn)BEGAN 53
3.4 利用CycleGAN實(shí)現(xiàn)圖像風(fēng)格的轉(zhuǎn)換 57
3.4.1 CycleGAN的模型公式 58
3.4.2 利用TensorFlow將蘋果變成橘子 58
3.4.3 利用CycleGAN將馬變?yōu)榘唏R 61
3.5 總結(jié) 63
4 從文本構(gòu)建逼真的圖像 65
4.1 StackGAN介紹 65
4.1.1 條件強(qiáng)化 66
4.1.2 StackGAN的架構(gòu)細(xì)節(jié) 68
4.1.3 利用TensorFlow從文本生成圖像 69
4.2 利用DiscoGAN探索跨域的關(guān)系 72
4.2.1 DiscoGAN架構(gòu)以及模型公式 73
4.2.2 DiscoGAN的實(shí)現(xiàn) 75
4.3 利用PyTorch從邊框生成手提包 78
4.4 利用PyTorch進(jìn)行性別轉(zhuǎn)換 80
4.5 DiscoGAN和CycleGAN的對(duì)比 82
4.6 總結(jié) 82
5 利用多種生成模型生成圖像 83
5.1 遷移學(xué)習(xí)介紹 84
5.1.1 遷移學(xué)習(xí)的目的 84
5.1.2 多種利用預(yù)訓(xùn)練模型的方法 85
5.1.3 利用Keras對(duì)車、貓、狗和花進(jìn)行分類 86
5.2 利用Apache Spark進(jìn)行大規(guī)模深度學(xué)習(xí) 90
5.2.1 利用Spark深度學(xué)習(xí)模塊運(yùn)行預(yù)訓(xùn)練模型 91
5.2.2 利用BigDL運(yùn)行大規(guī)模手寫數(shù)字識(shí)別 94
5.2.3 利用SRGAN生成高清晰度圖像 98
5.2.4 SRGAN的架構(gòu) 99
5.3 利用DeepDream生成夢(mèng)幻的藝術(shù)圖像 105
5.4 在TensorFlow上利用VAE生成手寫數(shù)字 107
5.5 VAE在真實(shí)世界的比喻 108
5.6 GAN和VAE兩個(gè)生成模型的比較 111
5.7 總結(jié) 111
6 將機(jī)器學(xué)習(xí)帶入生產(chǎn)環(huán)境 113
6.1 利用DCGAN構(gòu)建一個(gè)圖像矯正系統(tǒng) 113
6.1.1 構(gòu)建圖像矯正系統(tǒng)的步驟 115
6.1.2 在生產(chǎn)環(huán)境部署模型的挑戰(zhàn) 117
6.2 利用容器的微服務(wù)架構(gòu) 118
6.2.1 單體架構(gòu)的缺陷 118
6.2.2 微服務(wù)架構(gòu)的優(yōu)點(diǎn) 118
6.2.3 使用容器的優(yōu)點(diǎn) 119
6.3 部署深度模型的多種方法 120
6.3.1 方法1——離線建模和基于微服務(wù)的容器化部署 120
6.3.2 方法2——離線建模和無服務(wù)器部署 121
6.3.3 方法3——在線學(xué)習(xí) 121
6.3.4 方法4——利用托管機(jī)器學(xué)習(xí)服務(wù) 121
6.4 在Docker上運(yùn)行基于Keras的深度模型 121
6.5 在GKE上部署深度模型 124
6.6 利用AWS Lambda和Polly進(jìn)行無服務(wù)器的圖像識(shí)別并生成音頻 127
6.6.1 修改Lambda環(huán)境下代碼和包的步驟 137
6.6.2 利用云托管服務(wù)進(jìn)行人臉識(shí)別 138
6.7 總結(jié) 145