【生成式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进去。

所以进一步转化:

并得到了如下的算法


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

数学原理

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

相关推荐
搞科研的小刘选手17 小时前
【南昌大学主办】第五届人工智能、物联网和云计算技术国际会议(AIoTC 2026)
人工智能·物联网·网络安全·大模型·云计算·智慧城市·云安全
A1301609867117 小时前
精准商机赋能,助力金融助贷业务拓展
大数据·数据仓库·人工智能·机器人·信息与通信
ComputerInBook17 小时前
OpenCV图像处理——透视变换
图像处理·人工智能·opencv·透视变换
CodePlayer竟然被占用了17 小时前
Claude Code 出安全插件了:AI 写代码的安全网,终于有人正经做了
人工智能·后端
逻辑君17 小时前
Foresight研究报告【20260006】
人工智能·物理
hughnz17 小时前
从数据到决策:大语言模型在钻井中的潜力
人工智能·语言模型·自然语言处理
Deepoch17 小时前
Deepoc数学大模型:重塑半导体研发与制造的核心算法范式
人工智能·算法·机器学习·半导体·deepoc·数学大模型
哦哦~92117 小时前
AI 赋能复合材料力学:机器学习、PINN 与多尺度仿真实战
人工智能·机器学习·复合材料
咖啡星人k18 小时前
MonkeyCode 新手极速入门与实战指南
人工智能
十六年开源服务商18 小时前
2026商务拓展:WordPress网站建设方案全解析
人工智能