如何在MNIST上構建和訓練條件生成式對抗網路?一文詳解!
GIF/1.7M
圖:pixabay
本教程將介紹如何在MNIST圖像上構建和訓練條件生成式對抗網路(CGAN)。
GAN如何進行工作的
一般來說,生成式對抗模型是同時訓練兩個模型的:一個是學習從未知分布中輸出假樣本的生成器,而另一個是學習區分真假樣本的鑒別器。
CGAN是GAN的條件變體,其中生成器被指示生成具有特定特徵的真實樣本,而不是來自完全分布的通用樣本。這樣的條件可以是與本教程中的圖像相關聯的標籤或者是更為詳細的標籤,如下圖示例所示:
圖片來源:Scott Reed
初始設置
運行本教程需要以下軟體包:
完整的演示是由GitHub提供的以下兩個腳本組成的:
?CGAN_mnist_setup.R:準備數據並定義模型結構
?CGAN_train.R:執行訓練操作
準備數據
我們需要的MNIST數據集可在Kaggle上獲得。一旦我們將train.csv下載到數據/文件夾後,我們就可以將其導入到R中去。
自定義迭代器在iterators.R中定義,並由CGAN_mnist_setup.R導入。
生成器
生成器是一個從2個輸入中創建新樣本(MNIST圖像)的網路:
?雜訊矢量
?定義對象條件的標籤(要生成哪個數字)
雜訊矢量為Generator模型提供了構建塊,它將學習如何將雜訊結構化為樣本。mx.symbol.Deconvolution操作符用於將初始輸入從1x1形狀向上採樣到28x28圖像。
用於生成假樣本的標籤上的信息是由附加到隨機雜訊的標籤索引的獨熱編碼(one-hot encoding)來提供的。對於MNIST來說,0-9索引因此被轉換為長度為10的二進位向量。更複雜的應用將需要的是嵌入而不是簡單的單向編碼來編碼條件。
鑒別器
鑒別器嘗試區分生成器產生的假樣本和從MNIST訓練數據中抽取的真實樣本。
在條件式GAN中,與樣品相關聯的標籤也被提供給鑒別器。而在此次的演示中,這些信息將作為一個獨熱的編碼標籤,以便傳播從而匹配圖像的尺寸(10 - >28x28x10)。
訓練邏輯
鑒別器的訓練過程是最為明顯的:損耗就是一個簡單的二進位TRUE / FALSE響應,而且損耗可以傳播回CNN網路。因此它可以理解為一個簡單的二進位分類問題。
生成器損耗來自鑒別器損耗反向傳播到其產生的輸出。通過將生成器標籤偽裝成真實樣本進入到鑒別器中,鑒別器反向傳播損耗為生成器提供了如何最佳地調整其參數,從而欺騙鑒別器相信假樣本是真實的信息。
這需要將梯度反向傳播到鑒別器的輸入數據中(而在普通前饋網路中通常忽略該輸入梯度)。
上述訓練步驟在CGAN_train.R腳本中執行。
監督訓練
在訓練期間,相機包(imager package)可以方便進行假樣本的視覺質量評估。
以下是在不同訓練階段獲得的樣本。
從噪音開始:
慢慢地得到下面這個結果——迭代200:
根據需要生成指定的數字圖像——迭代2400:
推理
一旦模型被訓練,可以通過用固定標籤而不是訓練期間使用的隨機生成的圖像饋送到生成器來產生所需數字的合成圖像。
在這裡我們會產生假的「9」:
CGAN方法的進一步細節可以在Generative Adversarial Text to Image Synthesis論文中找到。
作者:Jeremie Desgagne-Bouchard
來源:http://dmlc.ml
※看蘋果手把手教你如何將訓練模型轉換至Core ML
※一文弄清深度學習、TensorFlow和張量之間的關係
※為什麼遷移學習的前景這麼大?為什麼PyTorch這麼火?
※東京大學MIL提出web瀏覽器上運行最快的DNN框架
TAG:機器人圈 |
※Uber AI論文:反向傳播訓練可塑神經網路,生物啟發元學習範式
※Uber AI論文:利用反向傳播訓練可塑神經網路,生物啟發的元學習範式
※ICLR oral:清華提出離散化架構WAGE,神經網路訓練推理合二為一
※LPL任棟爆料KT訓練賽強到爆炸!但為什麼上AFS?韓媒給出了解答!
※MXNet 宣布支持 Keras 2,可更加方便快捷地實現 CNN 及 RNN 分散式訓練
※MXNet 宣布支持 Keras 2,可更加方便快捷地實現 CNN 及 RNN 分散式訓練
※MXNet開放支持Keras,高效實現CNN與RNN的分散式訓練
※Joker透露吃雞國服上線遙遙無期!網友:各戰隊開始訓練PPT模式
※為什麼在訓練上總是想走捷徑,你適合HIIT嗎?
※WE從韓國集訓回來為什麼反而變菜了?網友真相:訓練賽約的SKT
※RNG輔助ming因訓練過量背部出現問題,網友:不會影響比賽吧!
※UZI已經回到RNG基地,開始訓練賽!可能在與Snake比賽中回歸!
※CROSSFIT是什麼鬼?為什麼這麼多人喜歡?CROSSFIT訓練又有什麼優點?
※Msi正式賽將至,RNG緊急訓練7個小時,網友:UZI狀態不錯
※學界 | Uber AI論文:利用反向傳播訓練可塑神經網路,生物啟發的元學習範式
※LOL:Uzi已經回到基地訓練,網友:難道之前蛇隊和Uzi結過梁子
※創投觀察|「思維訓練」領域能否誕生下一個 VIPKID?
※用「好故事訓練營」搭建IP孵化器,這是網易文漫的陽謀
※WZ_TC 單人恰恰訓練組合 文智 三節課
※開啟強者模式?GET調整訓練技巧!