【生成式AI】ProlificDreamer论文阅读

ProlificDreamer 论文阅读

Project指路:https://ml.cs.tsinghua.edu.cn/prolificdreamer/

论文简介:截止2023/8/10,text-to-3D的baseline SOTA,提出了VSD优化方法

前置芝士:text-to-3D任务简介

text-to-3D Problem

text-to-3D 解决的问题就是给定一段话,生成视角一致的3D场景,如果了解过这个领域的可以略过不看

研发路线大概是dreamfeild->dreamfusion->polificdreamer

Diffusion Model

text-to-image领域Diffusion Model很厉害,所以基本上就是Extend Diffusion Model to 3D,想看Diffusion Model简介可以看我之前的博文:

生成模型的Basic Idea就是真实图片作为随机分布,每个text是条件。

  • Diffusion Model训练出了一个条件分布 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)∥ϵϕ(αtx0+σtϵ)−ϵ∥22]

text-to-3D 基本思路

  • θ \theta θ是3D表达的参数, c c c是参数,那么3D渲染的本质是 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)),去优化 θ \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)

优化目标

优化一个参数分布,使得它和Diffusion Model生成的结果接近(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)) μminDKL(q0μ(x0∣y)∥p0(x0∣y))

算法

Loss Function

根据上述优化目标,可以提出如下的Loss

BTW,为什么这个等号成立我是不太理解的(原论文说是KL Divergence的性质),占个坑

我认为这个步骤其实就是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步的图片分布尽可能接近。

这已经是一个非常形式化的优化目标了。接下来考虑优化手段。

Optimization

采用Wasserstein gradient flow of VSD,简单理解就是,用 {   θ   } i = 1 n \set\theta_{i=1}^n {θ}i=1n这n个参数"粒子"去模拟 μ ( θ ∣ y ) \mu(\theta|y) μ(θ∣y),然后优化的时候就是优化每个粒子参数。

基于此,问题转化解如下的一个ODE:

第一项是Diffusion Model生成的带噪音的真实图片的score function,所以它由预训练好的 ϵ p r e t r a i n ( x t , t , y ) \epsilon_{pretrain}(x_t,t,y) ϵpretrain(xt,t,y)生成

第二项是渲染出来图片生成的带噪声的图片的score function,它由根据一个新网络 ϵ ϕ ( x t , t , c , y ) \epsilon_\phi(x_t,t,c,y) ϵϕ(xt,t,c,y)生成,这个网络采用LoRA 技术,微调 ϵ p r e t r a i n \epsilon_{pretrain} ϵpretrain再embedding一个c进去。

所以进一步转化:

并得到了如下的算法


这篇文章的做法到这里介绍完毕。

数学原理

占坑代填,孩子暂时不会泛函推不了

相关推荐
AIGC大时代1 小时前
如何判断一个学术论文是否具有真正的科研价值?ChatGPT如何提供帮助?
大数据·人工智能·物联网·chatgpt·aigc
岁月如歌,青春不败1 小时前
HMSC联合物种分布模型
开发语言·人工智能·python·深度学习·r语言
海域云赵从友2 小时前
香港 GPU 服务器托管引领 AI 创新,助力 AI 发展
运维·服务器·人工智能
四口鲸鱼爱吃盐2 小时前
Pytorch | 利用GRA针对CIFAR10上的ResNet分类器进行对抗攻击
人工智能·pytorch·python·深度学习·计算机视觉
蓝天星空2 小时前
制作一个类似ChatGPT的AI对话网站,模型能力使用ChatGPT
人工智能
汤姆和佩琦2 小时前
24-12-28-pytorch深度学习中音频I/O 中遇到的问题汇总
人工智能·pytorch·python·深度学习·音视频·i/o
静静AI学堂2 小时前
SCSA:探索空间与通道注意力之间的协同效应
人工智能·深度学习·yolo·目标跟踪
小成晓程3 小时前
PyQt6+OpenCV 项目练习
人工智能·opencv·计算机视觉
奔波儿灞爱霸波尔奔4 小时前
人工智能之基于阿里云进行人脸特征检测部署
人工智能·阿里云·云计算
董董灿是个攻城狮4 小时前
003:如何理解 CNN 中的 RGB 图像和通道?
人工智能·计算机视觉·cnn