DALL·E 2(內含擴散模型介紹)【論文精讀】
2023-02-15 20:24 作者:halfway_right | 我要投稿

GAN和擴散模型部分筆記
GAN-VAE-VQVAE-DALLE

GAN
- 訓練:兩個網絡互相較量 生成器和判別器
- 優(yōu)點:
- 生成的圖片真實:目標函數(shù)是用來以假亂真的,生成的圖片保真度很高(人眼都未必分得清)--deepfakes
- 好用:訓練所需數(shù)據(jù)不算多;適用于各個場景
- 缺點:
- 由于是兩個網絡同時訓練,涉及到平衡的問題,所以GAN訓練不穩(wěn)定(模式坍塌)
- 由于訓練目標是生成更真實的圖片,因此生成的圖片創(chuàng)造性(多樣性)不夠。(多樣性主要源于G網絡的輸入隨機噪聲)
- GAN不是一個概率模型,生成圖片的中間過程(分布)是隱式的,從這個角度來說不如VAE、擴散模型優(yōu)美

AE 編碼-解碼 壓縮+重構
DAE MAE 有效性源于圖像像素的高冗余性
VAE
- 動機:AE主要用于分類、檢測、分割 而不是數(shù)據(jù)生成(因為潛碼不是在學分布 而是特征),因此為了用En-De的結構來做圖像生成,有了VAE(用bottleneck學分布)

- VAE的結構:前面encoder從x到z表示后驗概率q(z|x),由x~p(x)采樣后學出的z是參數(shù)先驗分布p(z)(一般取高斯);后面decoder由z生成x'表示似然p(x|z)
- 優(yōu)點:生成圖片的多樣性高于GAN(因為VAE學的是分布,生成時是從分布中取樣)
- 后續(xù)改進:VQ-VAE--DALL·E1

VQVAE
- 改進:VQ(vector quantised)將VAE做量化,亦即 分布->k*D(聚類中心個數(shù)*特征圖維數(shù))大小的codebook
- 動機:實際需要處理的數(shù)據(jù)樣本(信號、聲音、圖像)是連續(xù)的,大部分任務都是回歸任務,但是實際解決問題時都將其離散化了(圖像->像素;語音->抽樣;回歸->分類);VAE難以將模型做大,分布也不易學,因此在VQVAE中將中間的分布變?yōu)榱斯潭ǖ目煽氐腸odebook(可理解為聚類中心)也就相當于將z~p(z)這個變量就近離散化為k個固定特征圖
- 優(yōu)點:容易訓練,訓練可控
- 缺點:失去了VAE的隨機性(更像AE而不是VAE,用codebook和特征做high-level任務:分類、檢測)
- 若用于做生成,則需再訓練一個prior網絡(pixel CNN-自回歸),即兩階段生成:圖像輸入經VQVAE訓練得到特征圖,特征圖再通過prior網絡得到生成圖像
DALL-E1相當于 VQVAE2+GPT(把pixel CNN換成了GPT)

擴散模型diffusion model

原理:
前向擴散過程逐步加噪 把圖片變成各向同性的噪聲,這一過程幫助反向過程的訓練,相當于給反向過程的訓練提供了每個階段的模板;
反向過程訓練一個去噪(也就是生成)模型,每一步去噪都是用同一個(單步)模型(共享權值),這使得采樣成本極高(每一小步都需要足夠的采樣來訓練模型),推理也同樣慢(最慢的,T一般取1k,這意味著每次生成需要采隨機噪聲以后將其通過去噪模型1k次)
reverse diffusion過程的模型選?。海ù蟛糠钟玫模︰-Net
發(fā)展史
15年想法有 實際操作做不到
DDPM(2020.06)
- 簡化優(yōu)化目標,預測噪聲(由xt預測eps_t,其中eps_t=xt - xt-1)而非預測每步含噪圖像分布(由xt預測xt-1)(有點像resnet預測殘差)
- 引入time embedding(正弦位置編碼or傅里葉特征)目的是在不同階段生成重點不同(前期先生成一些粗糙輪廓-低頻信息特征,后期慢慢寫實逼真-高頻)
- 再次簡化優(yōu)化:方差固定,只學均值
- 和VAE的比較:比較相似,前向過程類比編碼,逆向過程類比解碼;只不過擴散模型的前向過程是固定的加噪,VAE的編碼是需要學習的,而且VAE有bottleneck而擴散模型每一步的維數(shù)不變,并且擴散模型有步數(shù)的概念并且每一步的UNet共享參數(shù)

Improved DDPM (2020年底)
- 把方差也學了,提高了采樣生成效果
- 添加噪聲的schedule從線性改為余弦
- 模型越大,圖像生成效果越好
Diffusion model beats GAN (21年)
大力出奇跡
- 模型加大加寬:增加自注意力頭的數(shù)量并采用多頭自注意;
- 新歸一化方式:adaptive group normalization(根據(jù)步數(shù)做自適應);
- classifier guidance (y)引導模型做采樣和生成,提高生成圖像的逼真程度,加速反向采樣速度--可以只做25次采樣就能生成很好的圖片
guidance的動機:在beats GAN這篇文章之前,擴散模型生成的圖片已經非常逼真了,但是inception score(IS FID等)不如GAN,如何提供一些人為指導來幫助模型采樣和學習,提高分數(shù)和采樣速度?
- classifier guided diffusion指導方式y(tǒng)有很多種方式可選:
- 簡單的圖像分類器(下圖,圖中所示為反向過程,f是UNet表示的函數(shù);反向過程中,訓練UNet的同時,再訓練一個簡單的圖像分類器classifier(通常在加噪處理后的ImageNet上訓練,訓練采用交叉熵目標函數(shù)g),使用g的梯度(大致表示圖像中有沒有物體或者物體屬不屬于某一類???)來指導UNet采樣和生成(相當于犧牲了一些多樣性來換取生成圖片的寫實性,但是多樣性仍然比GAN好)----這種機制幫助擴散模型在各類分數(shù)上beat了GAN)
- CLIP代替分類器,將文本和圖像聯(lián)系起來,借用文本信息指導UNet
- 基于重構做像素級引導;特征引導;風格引導等等等等。。。

classifier guided diffusion 缺點在于引入了一個新的需要訓練的模型,訓練過程不可控且需要額外耗時
- classifier free guidance
上圖紫色部分 計算有無條件得到的生成差距
廣泛用于GLIDE DALLE2 Imagen 從此DALLE2不再用1的VQVAE了,而是換用了擴散模型
從GLIDE到DALLE2還增加了很多技巧,如prior網絡、層級式生成等
標簽: