Zero-Shot Text-to-Image Generation
一. 簡介
機構(gòu):openai
代碼:https://github.com/openai/DALL-E
人們常說自然語言處理是人工智能皇冠上的明珠,這些年transformer以及大規(guī)模語言模型LLM的蓬勃發(fā)展,讓這顆明珠更加熠熠生輝。除此之外,ViT,MAE等方法也充分驗證了圖像在transformer以及大規(guī)模預訓練之路上的可行性,那么近一步的思考,就是如何跨越圖像,文本等多種模態(tài)的鴻溝,讓機器真正實現(xiàn)智能?理解人類生活中存在的各種模態(tài)?接收人類的指令,與物理世界交互?實現(xiàn)視,聽,說,觸等人類感知在機器上的應用。這份思考也讓多模態(tài)這個領(lǐng)域這些年如火如荼,模態(tài)可能不只包括圖像,文本,視頻,音頻等,除此之外,人體姿態(tài),3D模型等等都可以視作一種廣義上的模態(tài),但一般上更關(guān)注圖像以及文本,一方面:圖像文本是人類世界分布最廣的兩種媒介,蘊含著巨大的信息,另一方面:各種模態(tài)之間往往也可以相互轉(zhuǎn)化,比如音頻轉(zhuǎn)化為文本,視頻切幀為圖像。
就圖像和文本而言,有多種benchmark任務建立起兩種模態(tài)之間的橋梁,包括但不限于多模態(tài)檢索:文本檢索圖像,圖像檢索文本,多模態(tài)生成:文本生成圖像,圖像生成文本,多模態(tài)問答:VQA等。其中文本生成圖像是一個備受關(guān)注的領(lǐng)域,之前的技術(shù)路線多是基于VAE,GAN等,在特定數(shù)據(jù)集或者特定域進行生成,比如CUB或者MS-COCO,生成效果差,細節(jié)不逼真,離通用,泛化性強的生成能力還相去甚遠,這兩年DALL-E的一鳴驚人,加上后來diffusion model的井噴式發(fā)展,讓人看到了機器擁有藝術(shù)創(chuàng)造以及設(shè)計的希望,其生成的圖像往往能夠以假亂真,在真實性,多樣性,創(chuàng)造性等方面,遠遠超過之前的模型。
今天,我們先聊一聊DALL-E。按照中文的諧音,DALL-E 音同 dali,所謂大力出奇跡,在這兒仿佛也算是如其名,有氣吞山河山河之勢。參考https://mp.pdnews.cn/Pc/ArtInfoApi/article?id=28457810 才知道openai的初衷是"讓機器擁有頂級藝術(shù)家,設(shè)計師的創(chuàng)造力,因此結(jié)合了藝術(shù)以及機器的兩位代表性標桿:藝術(shù)家薩爾瓦多·達利(Salvador Dali)

和皮克斯《機器人總動員》中的 WALL-E,用DALL-E向他們致敬。

摘要:
Text-to-image generation has traditionally focused on finding better modeling assumptions for training on a fixed dataset. These assumptions might involve complex architectures, auxiliary losses, or side information such as object part labels or segmentation masks supplied during training. We describe a simple approach for this task based on a transformer that autoregressively models the text and image tokens as a single stream of data. With sufficient data and scale, our approach is competitive with previous domain-specific models when evaluated in a zero-shot fashion.
論文的摘要比較樸實,其指出先前的文本生成圖像任務在特定的數(shù)據(jù)集上展開,往往訓練過程伴隨著復雜的網(wǎng)絡(luò)結(jié)果,額外的損失函數(shù)或者監(jiān)督信息。而DALL-E用transformer(12億參數(shù))自回歸地建模圖像以及文本tokens,當給定足夠的數(shù)據(jù)(文中用了2.5億網(wǎng)絡(luò)圖文對),往往能以一種zero-shot的方式,與在某個特定域的專精模型相匹敵。當然,筆者其實對這個zero-shot一直打一個天大的問號,也不太清楚為什么DALL-E主打zero-shot這個點。
二. 方法
整體思路借鑒了:VQ-VAE與VQ-VAE2,即對圖像并不直接在像素級別上自回歸,而是將圖像編碼為離散的tokens,再進行建模,這樣能夠降低復雜度以及長序列的建模難度。具體而言,方法分為了兩個階段:
-
第一階段:訓練一個離散自編碼器dVAE,將 256 ? 256 256 * 256 256?256的RGB圖像壓縮為 32 ? 32 32 * 32 32?32個tokens,每個token都有8192個可能的選擇,即code book的大小是8192。這樣transformer建模的上下文大小從 256 ? 256 ? 3 256 * 256 * 3 256?256?3 降低到 32 ? 32 32 * 32 32?32,壓縮了192倍,但視覺質(zhì)量卻沒有很大的損失(但其實細節(jié),會有一些損失,比如下圖)
-
第二階段:將256個BPE編碼的文本token,與上面的 32 ? 32 = 1024 32 * 32 = 1024 32?32=1024個視覺token進行concate,然后用一個自回歸transformer建模圖像和文本token的聯(lián)合分布。
那么整體的文本生成圖像的優(yōu)化目標,可以視作優(yōu)化一個關(guān)于圖像 x x x,文本描述 y y y,視覺token z z z的ELB。

- q ? q_\phi q?? denotes the distribution over the 32 × 32 image tokens generated by the dVAE encoder given the RGB image x x x;(注意論文在這一句有一個注釋:We assume that y is conditionally independent of x x x given z z z.,有誰知道這句話的目的是什么嗎?)
- p θ p_\theta pθ? denotes the distribution over the RGB images generated by the dVAE decoder given the image tokens;
-
p
ψ
p_\psi
pψ? denotes the joint distribution over the text and image tokens modeled by the transformer.
其實上面的ELB與VAE的ELB在公式上,長得很相似:

具體公式的推導可以見:
整體DALL-E的方法流程圖可見:
2.1. 第一階段:Learning the visual codebook
訓練dVAE,即最大化關(guān)于
?
\phi
?和
θ
\theta
θ 的ELB,初始化先驗
ψ
\psi
ψ為在codebook vectors上的均勻類別分布。
2.1.1 回顧VQ-VAE
這兒,我們先簡單回顧一下VQ-VAE的相關(guān)內(nèi)容:

VQ-VAE是DALL-E的前身,不同于VAE,VQ-VAE將圖像編碼成離散的token,具體的做法是定義了一個
K
?
d
K * d
K?d的code book或者叫做embedding space,其是可以學習的,類似一個nn.embedding層,然后對于一個輸入的圖像,經(jīng)過encder得到
z
e
z_e
ze? ,它的維度是
m
?
n
?
d
m * n * d
m?n?d,然后將
m
?
n
m * n
m?n個網(wǎng)格的特征,分別與code book里面的K個特征算一個距離,找到最近鄰,其code book中的index當作對應位置的離散編碼
z
z
z,并填充對應的d維特征,形成
z
q
z_q
zq?,當作decoder的輸入,并重建得到圖像。其為了避免最近鄰查找中argmax帶來的不可導問題,引入了直通估計來設(shè)計其損失函數(shù):
在DALL-E里面,這兒的VQ-VAE也被叫做dVAE,其相關(guān)的配置如下
image_size | 256 × \times × 256 |
codebook_size | 8192 |
encoding image size | 32 × 32 \times 32 ×32 |
β \beta β (上面KL散度的權(quán)重) | 6.6 |
如上所說,訓練dVAE就是在最大化
?
\phi
?和
θ
\theta
θ的ELB,初始化先驗
p
ψ
p_{\psi}
pψ?為在codebook vectors上的均勻類別分布。
目前存在的問題:
- p ψ p_{\psi} pψ?是離散分布,涉及到不可導的問題
- p θ p_{\theta} pθ?分布和像素不匹配的問題
2.1.2 p ψ p_{\psi} pψ?是離散分布,不可導的問題 -> gumbel-softmax
首先我們介紹一下什么是gumbel分布

它的分布函數(shù)是:
F
(
x
;
μ
,
β
)
=
e
?
e
?
(
x
?
μ
)
/
β
F(x;\mu,\beta)=e^{-e^{-(x-\mu)/\beta}}
F(x;μ,β)=e?e?(x?μ)/β
采樣:
x
=
F
?
1
(
μ
)
=
μ
?
β
ln
?
(
?
ln
?
(
μ
)
)
,
μ
~
U
n
i
f
o
r
m
(
0
,
1
)
x = F^{-1}(\mu)=\mu-\beta\ln(-\ln(\mu)), \mu\sim Uniform(0,1)
x=F?1(μ)=μ?βln(?ln(μ)),μ~Uniform(0,1)
標準分布:
μ
=
0
,
β
=
1
\mu=0,\beta=1
μ=0,β=1
- F ( x ; 0 , 1 ) = e ? e ( ? x ) F(x;0,1)=e^{-e^(-x)} F(x;0,1)=e?e(?x)
- 采樣: x = F ? 1 ( μ ) = ? ln ? ( ? l n ( μ ) ) , μ ~ U n i f o r m ( 0 , 1 ) x=F^{-1}(\mu)=-\ln(-ln(\mu)), \mu \sim Uniform(0,1) x=F?1(μ)=?ln(?ln(μ)),μ~Uniform(0,1)
gumbel softmax
[1] E. Jang, S. Gu, and B. Poole. Categorical reparameterization with gumbel-softmax. arXiv preprint arXiv:1611.01144, 2016.
針對離散變量采樣過程無法求導這個固有性質(zhì),上面的文獻[1]提出了連續(xù)且可導的近似采樣替代方案gumbel softmax。文章來源:http://www.zghlxwxcb.cn/news/detail-824948.html
假設(shè)離散變量
z
z
z的值域有k個可能的取值
z
1
,
z
2
,
.
.
.
,
z
k
{z_1, z_2, ..., z_k}
z1?,z2?,...,zk?,對應的概率分布向量為
p
=
[
p
1
,
p
2
,
.
.
.
,
p
k
]
p=[p_1,p_2,...,p_k]
p=[p1?,p2?,...,pk?],那么整個采樣的過程就變成了
z
=
o
n
e
h
o
t
(
a
r
g
m
a
x
i
[
g
i
+
log
?
p
i
]
)
z=one_{hot}(argmax_i[g_i + \log p_i])
z=onehot?(argmaxi?[gi?+logpi?]),其中
g
i
g_i
gi?是從gumbel(0,1)中獨立同分布采樣得到。然后用連續(xù)可導的計算代替argmax近似得到采樣向量
y
y
y。
y
i
=
e
(
log
?
(
p
i
)
+
g
i
)
/
τ
∑
j
=
1
k
e
(
log
?
(
p
j
)
+
g
j
)
/
τ
f
o
r
?
i
=
1
,
.
.
.
,
k
y_i=\frac{e^{(\log(p_i)+g_i)/\tau}}{\sum_{j=1}^k e^{(\log(p_j) + g_j)/\tau}} for\ i = 1,...,k
yi?=∑j=1k?e(log(pj?)+gj?)/τe(log(pi?)+gi?)/τ?for?i=1,...,k文章來源地址http://www.zghlxwxcb.cn/news/detail-824948.html
到了這里,關(guān)于AIGC之論文筆記DALL-E的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!