ProlificDreamer 論文閱讀
Project指路:https://ml.cs.tsinghua.edu.cn/prolificdreamer/
論文簡介:截止2023/8/10,text-to-3D的baseline SOTA,提出了VSD優(yōu)化方法
前置芝士:text-to-3D任務(wù)簡介
text-to-3D Problem
text-to-3D 解決的問題就是給定一段話,生成視角一致的3D場景,如果了解過這個領(lǐng)域的可以略過不看
研發(fā)路線大概是dreamfeild->dreamfusion->polificdreamer
Diffusion Model
text-to-image領(lǐng)域Diffusion Model很厲害,所以基本上就是Extend Diffusion Model to 3D,想看Diffusion Model簡介可以看我之前的博文:
生成模型的Basic Idea就是真實圖片作為隨機分布,每個text是條件。
- Diffusion Model訓(xùn)練出了一個條件分布 p ( x ∣ y ) p(\mathbf x|y) p(x∣y),x是圖片,y是條件(text),其Loss Function可以表達為 L D i f f ( ? ) : = E x 0 ~ q ( x 0 ) , t ~ U ( 0 , 1 ) , ? ~ N ( 0 , 1 ) [ w ( t ) ∥ ? ? ( α t x 0 + σ t ? ) ? ? ∥ 2 2 ] \mathcal L_{Diff}(\phi) := \mathbb E_{x_0\sim q(x_0),t\sim \mathcal U(0,1),\epsilon \sim \mathcal N(0,1)}[w(t)\|\epsilon_\phi(\alpha_tx_0+\sigma_t\epsilon)-\epsilon\|^2_2] LDiff?(?):=Ex0?~q(x0?),t~U(0,1),?~N(0,1)?[w(t)∥???(αt?x0?+σt??)??∥22?]
text-to-3D 基本思路
- θ \theta θ是3D表達的參數(shù), c c c是參數(shù),那么3D渲染的本質(zhì)是 x = g ( θ , c ) \mathbf{x}=g(\theta, c) x=g(θ,c),如果過程是可微的,稱為DIP(differentiable image parameterization)
- 對于2D, x 0 ~ q ( x 0 ) x_0\sim q(x_0) x0?~q(x0?)代表Sample過程,是真實圖片的分布,而text-to-3D就是把Loss變成 L D i f f ( ? , x = g ( θ , c ) ) \mathcal L_{Diff}(\phi,\mathbf{x}=g(\theta, c)) LDiff?(?,x=g(θ,c)),去優(yōu)化 θ \theta θ
Prolific Dreamer Basic Idea
符號
- prolific dreamer這篇文章進一步研究,認為一個合理的3D表達也是一個分布,也就是 θ ~ μ ( θ ∣ y ) \theta\sim \mu(\theta|y) θ~μ(θ∣y)
- 渲染出來的圖片: q 0 μ ( x 0 ∣ c , y ) : = ∫ q 0 μ ( x 0 ∣ c , y ) p ( c ) d c q_0^\mu(x_0|c,y):=\int q_0^\mu(x_0|c,y)p(c)dc q0μ?(x0?∣c,y):=∫q0μ?(x0?∣c,y)p(c)dc
- diffusion model渲染出來的圖片: p 0 ( x 0 ∣ y ) p_0(x_0|y) p0?(x0?∣y)
優(yōu)化目標(biāo)
優(yōu)化一個參數(shù)分布,使得它和Diffusion Model生成的結(jié)果接近(pretrained)
min
?
μ
D
K
L
(
q
0
μ
(
x
0
∣
y
)
∥
p
0
(
x
0
∣
y
)
)
\min_\mu D_{KL}(q_0^\mu(x_0|y)\| p_0(x_0|y))
μmin?DKL?(q0μ?(x0?∣y)∥p0?(x0?∣y))
算法
Loss Function
根據(jù)上述優(yōu)化目標(biāo),可以提出如下的Loss
BTW,為什么這個等號成立我是不太理解的(原論文說是KL Divergence的性質(zhì)),占個坑
我認為這個步驟其實就是cover Diffusion Model的步驟, q t μ ( x t ∣ y ) : = ∫ q 0 μ ( x 0 ∣ c , y ) p t 0 ( x t ∣ x 0 ) d x 0 q_t^\mu(x_t|y):=\int q_0^\mu(x_0|c,y)p_{t0}(x_t|x_0)dx_0 qtμ?(xt?∣y):=∫q0μ?(x0?∣c,y)pt0?(xt?∣x0?)dx0?,也就是給定camera,把某張圖片渲染出來之后拿去上t步高斯噪聲的分布,讓這個分布和Diffsuion Model 第t步的圖片分布盡可能接近。
這已經(jīng)是一個非常形式化的優(yōu)化目標(biāo)了。接下來考慮優(yōu)化手段。
Optimization
采用Wasserstein gradient flow of VSD,簡單理解就是,用 { ? θ ? } i = 1 n \set\theta_{i=1}^n {θ}i=1n?這n個參數(shù)“粒子”去模擬 μ ( θ ∣ y ) \mu(\theta|y) μ(θ∣y),然后優(yōu)化的時候就是優(yōu)化每個粒子參數(shù)。
基于此,問題轉(zhuǎn)化解如下的一個ODE:
第一項是Diffusion Model生成的帶噪音的真實圖片的score function,所以它由預(yù)訓(xùn)練好的
?
p
r
e
t
r
a
i
n
(
x
t
,
t
,
y
)
\epsilon_{pretrain}(x_t,t,y)
?pretrain?(xt?,t,y)生成
第二項是渲染出來圖片生成的帶噪聲的圖片的score function,它由根據(jù)一個新網(wǎng)絡(luò)
?
?
(
x
t
,
t
,
c
,
y
)
\epsilon_\phi(x_t,t,c,y)
???(xt?,t,c,y)生成,這個網(wǎng)絡(luò)采用LoRA 技術(shù),微調(diào)
?
p
r
e
t
r
a
i
n
\epsilon_{pretrain}
?pretrain?再embedding一個c進去。
所以進一步轉(zhuǎn)化:
并得到了如下的算法
這篇文章的做法到這里介紹完畢。文章來源:http://www.zghlxwxcb.cn/news/detail-639141.html
數(shù)學(xué)原理
占坑代填,孩子暫時不會泛函推不了文章來源地址http://www.zghlxwxcb.cn/news/detail-639141.html
到了這里,關(guān)于【生成式AI】ProlificDreamer論文閱讀的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!