1. 程式人生 > >生成式對抗網路(GAN)綜述——粗淺入門

生成式對抗網路(GAN)綜述——粗淺入門

第一頁

今天我要給大家介紹的是GAN(GenerativeAdversarial Networks)生成式對抗網路的研究進展與展望,GAN是一個比較新的生成模型方法,在2014年由Hinton的博士生lan Goodfellow提出,隨後關於GAN的改進型在學術界研究的如火如荼,到目前為止仍有很大的發展空間,所以如果對GAN感興趣的話可以隨後深入探索,當然,對於初學者,小柴小有告誡:做我們感興趣的事,才能如痴如醉,樂此不疲,並且打定只做這一件事,才能把事情做好,貪多隻會心力交瘁,一事無成。共勉之。下面以一個小故事進入正題:就是說,男朋友在給女朋友照相,照好後拿給女朋友看,女票說,不行不行,角度不好,顯得臉多大啊。於是,男朋友尋找合適角度重新照,照好後又拿給女票看,女票說,不行不行,採光不好,都成黑臉包公了。於是,男朋友繼續改進。。。尋找合適位置充分採光,照好後又拿給女票看,女票喜上眉梢,笑著說,這次可以了。這個小故事雖然簡單,但卻形象的展現了生成式對抗網路的思想,請大家記住這個故事,後續詳細介紹將會進行印證。

第二頁

1、GAN的提出背景。2、基本核心理論。3、實現模型和應用領域。4、結論。5、思考與展望

這是本文將要介紹的章節目錄,在第3章的實現模型和應用領域裡,我會重點介紹一下GAN在影象生成、P圖軟體、聊天機器人等軟體方面的應用。

第三頁

1、GAN的提出背景

(1)人工智慧的熱潮

隨著計算能力的提高和各行業資料量的劇增 , 人工智慧取得了快速發展。學術界普遍認為人工智慧分為兩個階段 :感知階段和認知階段。在認知階段 , 機器能夠對世界的本質有一定的理解 , , 理解無論對人類還是人工智慧都是內在的表現 , 無法直接測量 , 只能間接從其他方面推測 . 如何衡量人工智慧的理解程度?著名學者 Feynman 有句名言 “What I cannot create, I do not understand. ( 不可造者 , 未能知也 .)”。 而 GAN 作為典型的生成式模型 , 其生成器具有生成資料樣本的能力 . 這種能力在一定程度上反映了它對事物的理解 . 因此 ,GAN 有望加深人工智慧的理解層面的研究。

(2)生成模型的積累

生成式模型不僅在人工智慧領域佔有重要地位 ,生成方法本身也具有很大的研究價值 .GAN 提出之前 , 生成式模型已經有一定研究積累,模型訓練過程和生成資料過程中的目標函式難解、計算複雜度較高、效率較低等侷限無疑是生成式模型的障礙。

(3)神經網路的深化

隨著深度學習技術在各個領域取得巨大成功 , 神經網路研究再度崛起 . 神經網路作為深度學習的模型結構 , 得益於計算能力的提升和資料量的增大 , 一定程度上解決了自身引數多、訓練難的問題 , 被廣泛應用於解決各類問題中 。而GAN的生成器和判別器均為神經網路。

(4)對抗思想的成功

從機器學習到人工智慧 , 對抗思想被成功引入若干領域併發揮作用 . 博弈、競爭中均包含著對抗的思想。

第四頁

2、GAN的基本核心理論


Fig.1 生成式對抗網路的計算流程和一般結構


一個GAN主要包含兩個獨立的神經網路:生成器(Generator)和判別器(Discriminator)。生成器的任務是,從一個隨機均勻分佈裡取樣一個噪聲z,然後輸出合成數據G(z);判別器獲得一個真實資料x或者合成數據G(z)作為輸入,輸出這個樣本為“真”的概率。 在訓練的過程中,生成器努力地欺騙判別器,而判別器努力地學習如何正確區分真假樣本,這樣,兩者就形成了對抗的關係,最終我們的目標就是生成器生成足以以假亂真的偽樣本。上述小故事正好形象化的描述了GAN的基本原理。

第五頁

u判別模型的目標函式u整個優化模型的目標函式

GAN的目標函式如公式所示。D(x)表示判別器認為x是真實樣本的概率,而1-D(G(z))則是判別器認為合成樣本為假的概率,取對數相加就能得到公式1的形式。訓練GAN的時候,判別器希望目標函式最大化,也就是使判別器判斷真實樣本為“真”,判斷合成樣本為“假”的概率最大化;與之相反,生成器希望該目標函式最小化,也就是降低判別器對資料來源判斷正確的概率。

第六頁

u最大最小化(max-min)目標函式的優化方法

假設在訓練開始時,真實樣本分佈、生成樣本分佈以及判別模型分別是圖中的黑線、綠線和藍線。可以看出,在訓練開始時,判別模型是無法很好地區分真實樣本和生成樣本的。接下來當我們固定生成模型,而優化判別模型時,優化結果如第二幅圖所示,可以看出,這個時候判別模型已經可以較好的區分生成資料和真實資料了。第三步是固定判別模型,改進生成模型,試圖讓判別模型無法區分生成圖片與真實圖片,在這個過程中,可以看出由模型生成的圖片分佈與真實圖片分佈更加接近,這樣的迭代不斷進行,直到最終收斂,生成分佈和真實分佈重合。

GAN也存在一些問題。實際應用中,由於生成器的更新依賴於判別器,所以,如果判別器學習得不好,生成器也會學習得不好。為了緩解這個問題,在實際訓練中,我們常常讓判別器更新若干次之後,再讓生成器更新一次。

第七頁

3.實現模型與應用領域
         ——GAN
在優化方法上的改進


GAN的訓練過程還是非常不穩定,而且生成的資料的多樣性仍不如真實樣本,此謂“模式收縮”(mode collapse)。後來,研究者們通過一系列的理論研究,發現導致訓練不穩定以及模式收縮的主要原因是,最早的GAN中對真實分佈與模擬分佈的距離度量方法不合適,於是提出用更平滑的度量來代替原來的方法,使用Wasserstein距離代替Jensen-Shannon距離。並依據Wasserstein距離設計了相應的演算法,即WGAN。新的演算法與原始GAN相比,引數更加不敏感,訓練過程更加平滑。

第八頁

3.實現模型與應用領域

         ——GAN在計算機視覺上的應用

Fig.1生成某種類別的影象(PPGN模型)

Fig.2根據文字描述生成影象(PPGN模型)


影象生成的任務主要分兩種,第一種是生成某種類別的影象,第二種是根據使用者的描述生成符合描述的影象。第一種影象生成的任務已經取得了很好的效果,其生成的火山影象整體上已經可以達到以假亂真的效果。但在多物體的複雜影象上效果就差得多,這個任務的難點在於,生成器並不是學到了如何生成每個物體之後把它們組合起來,而是嘗試一次到位生成整張影象。如圖2所示,根據文字生成的影象只能夠讓人分辨出大概的內容。

第九頁

3.實現模型與應用領域

         ——GAN在計算機視覺上的應用


Fig.1 風格遷移(CycleGAN模型)

Fig.2 人臉變換(IcGAN模型)

Fig.3 看圖寫作(RTT-GAN模型)

影象轉換可以包含很多種,例如把一張夏天的影象轉換成冬天的樣子。普通馬與斑馬的相互變換。對人臉做變換的例子,從黑髮變金髮、從直髮變爆炸頭、把微笑變成露齒笑甚至改變性別。根據圖片中的事物自動生成描述文章。

第十頁

3.實現模型與應用領域

         ——DCGAN模型舉例


Fig.1 影象生成的判別模型:CNN

Fig.2 影象生成的生成模型:DCGAN

在影象生成過程中,如何設計生成模型和判別模型呢?深度學習裡,對影象分類建模,刻畫影象不同層次,抽象資訊表達的最有效的模型是:CNN(convolutional neural network,卷積神經網路)。CNN是深度神經網路的一種,可以通過卷積層(convolutional layer)提取不同層級的資訊,如上圖所示。CNN模型以圖片作為輸入,以圖片、類別抽象表達作為輸出,如:紋理、形狀等等。前幾天做了CNN綜述PTT(http://download.csdn.net/download/sir_chai/10168463

那麼生成影象的模型應該是什麼樣子的呢?想想小時候上美術課,我們會先考慮構圖,再勾畫輪廓,然後再畫細節,最後填充顏色,這事實上也是一個多層級的過程,就像是把影象理解的過程反過來,於是,人們為影象生成設計了一種類似反捲積的結構:Deep convolutional NN for GAN(DCGAN)。DCGAN採用一個隨機噪聲向量作為輸入,如高斯噪聲。輸入通過與CNN類似但是相反的結構,將輸入放大成二維資料。通過採用這種結構的生成模型和CNN結構的判別模型,DCGAN在圖片生成上可以達到相當可觀的效果。 以前做了DCGAN在影象取證系統中的應用PPT(http://download.csdn.net/download/sir_chai/10154183)

第十一頁

3.實現模型與應用領域

         ——GAN在自然語言處理上的應用


Seq-GAN運用了強化學習中的策略梯度方法。

4.結論

GAN  通過訓練得到的生成式模型和判別式模型, 在影象和視覺計算、語音和語言處理、資訊保安等領域具有重大的應用價值 .

5.思考與展望


下一步發展,應該是能根據不同任務自動設計神經網路模型的演算法了,讓我們拭目以待




20171222