1. 程式人生 > >生成對抗網路(CGAN)(37)---《深度學習》

生成對抗網路(CGAN)(37)---《深度學習》

在前面我們簡單介紹了生成對抗網路(GAN)的基本結構和其訓練方式,然而這種方式是基於無監督學習的,沒有指定對應的標籤,使用一個分佈直接進行取樣,從而理論上達到可以完全逼近原始資料,因此生成網路G比較自由,而且當圖片的畫素較多的時候,這樣導致訓練好的生成網路G不可控制,為了使得訓練的生成網路比較可控,我們希望將對原來的無監督學習的對抗網路加一些限制,即將其變為有監督學習的網路,使得其可以更好地在我們的掌控下進行學習!
基本的網路結構可以參考以前的這篇部落格: 生成對抗網路(GAN)簡單入門(33)—《深度學習》,現在主要講一下CGAN和GAN的區別:

這是GAN對應的loss函式:
這裡寫圖片描述
這是CGAN對應的loss函式:


這裡寫圖片描述
對比可以發現CGAN網路相比GAN網路加了標籤y進行限制,這樣就可以無監督的GAN網路轉化為了有監督的CGAN網路,訓練過程和GAN網路一樣,都是交替迭代訓練,穩定住一個網路,然後訓練另一個網路,不過有其啟動順序,即先啟動辨別網路D的訓練,然後在啟動生成網路G網路的訓練,這樣交替迭代,知道二者博弈過程達到一個均衡的過程,此時就達到了一種比較好的訓練過程!具體的訓練過程可以參考前面提到的那篇部落格!

CGAN網路的結構: