生成式對抗網絡


簡介

示例

  • 圖像着色
  • 圖像超像素
  • 背景模糊
  • 人臉生成
  • 人臉定制
  • 文本生成圖片
  • 字體變換
    *風格變換
  • 圖像修復
    ……

基礎

生成模型和GAN


生成模型不嚴謹的定義:一個能夠生成我們想要的數據的模型(圖模型、函數、神經網絡)
生成式對抗網絡(GAN)的目的是訓練這樣一個生成模型,生成我們想要的數據。
生成式對抗網絡中生成一詞的由來。

GAN

框架

工作原理

隨機噪聲z:從一個先驗分布(人為定義,一般是均勻分布或者正態分布)中隨機采樣的向量。
就像下面這樣的分布:

真實樣本x:從數據庫中采樣的樣本;合成樣本G(z):生成模型G輸出的樣本。
判別器(Discrimination):區分真實(real)樣本和虛假(fake)樣本。對於真實樣本,盡可能給出高的評分1;對於虛假數據,盡可能給出低的評分0.

生成器(Generator):欺騙判別器 。生成虛假數據,使得判別器D能夠盡可能給出高的評分1 .

目標函數

訓練算法

1.隨機初始化生成器和判別器
2.交替訓練判別器D和生成器G,直到收斂
(1)步驟1:固定生成器G,訓練判別器D區分真實圖像與合成圖像。

生成器無需優化可以mask掉
**簡單:用監督訓練的方式學習一個兩類別的分類器! **
步驟2:固定判別器D,訓練生成器G欺騙判別器D。
更新生成器參數,使其合成的圖片被生成器D賦予高分

訓練策略

KL散度和JS散度

數據分布

極大似然估計


極大似然估計 等價於 最小化生成數據分布和真實分布的KL散度
高斯分布去擬合數據分布,結果並不滿意。需要一個更通用的模型!

cGAN條件生成式對抗網絡

為什么要控制生成數據的類型?
很多有意義的任務都需要學習條件生成模型!

很難剛好生成對應類型的數據,為什么呢?
條件是狐狸,但生成狐狸或狗時都能欺騙成功。

GAN V.S cGAN

DCGAN

原始GAN,使用全連接網絡作為判別器和生成器

  • 不利於建模圖像信息
  • 參數量大,難以優化
    DCGAN,使用卷積神經網絡作為判別器和生成器

判別器:滑動卷積

生成器:滑動反卷積

批歸一化

激活函數



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM