paper-reading4

paper-reading about 3D generation

NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

论文链接https://arxiv.org/abs/2003.08934

Neural Radiance Field Scene Representation 场景表示

用MLP拟合一个函数来表示场景

输入为空间中一个粒子的信息,为三维坐标,为二维的视角方向,输出为这个位置上粒子的体积密度和颜色

体积密度的视角不变性

体积密度与视角没有关系,视角只影响这个位置发出的光。
所以在MLP中,先输入位置x,经过一个MLP后输出体积密度和一个特征向量。
将这个特征向量与视角d拼接后,再经过一个MLP后输出颜色c。

位置编码

实验中发现,模型对高频信息的拟合效果不好,需要对输入进行位置编码,主要就是将低维的输入转为高维向量。

编码方程为

将这个方程分别应用于输入的每一维,就得到了实际的输入

Volume Rendering with Radiance Fields 体积渲染

得到三维场景的表示后,用传统的渲染方法得到二维图片,与真实图片进行对比,用loss函数进行训练。

二维图片中,一个像素的颜色对应一条光线,其颜色

T(t)代表在t点之前,光线没有被阻碍的概率

将其离散化,将区间分为N段,每个粒子在一段中处于均匀分布。

proof:

我们假定每一段粒子的密度颜色相同,考虑一段的光强

分层采样

对于一条光线。平均分之后采样不是很高效,考虑根据模型预测的体积密度采样。

训练两个模型,一个为coarse模型,另一个为fine模型,先用coarse模型预测体积密度,然后根据体积密度用fine模型采样,将两个模型采样结果合并进行优化。

Deep Marching Tetrahedra: a Hybrid Representation for High-Resolution 3D Shape Synthesis

Sticking the Landing: Simple, Lower-Variance Gradient Estimators for Variational Inference

论文链接https://arxiv.org/abs/1703.09194

研究的对象为变分估计(Variational inference)

目标是最大化ELBO,对ELBO的无偏估计使得可以通过随机梯度下降来学习参数,我们需要减小这个估计的方差。

ELBO本身方差

可以有三种不同的estimator

作者提出:

  1. 当pq两个分布都是多元高斯(multivariate Gaussians)时,最后一个等式最好,因为可以数值解出KL散度,减少了用Monte Carlo估计的量。
  2. 当变分估计是精准的,即时,第一个等式最好,因为这个估计的值是确定的,即与采样出来的z无关,则估计的方差为0。

ELBO梯度方差

当变分估计精准时,虽然第一个estimator的ELBO估计的方差为0,但是这个估计关于的梯度却不为0。

利用重参数化技巧,可以把z表示为随机变量和参数的函数,即

TD means total derivative。

pq分布相同时,path derivative项为0,score function项不为0,所以总方差不为0。
在参数更新前计算梯度时,可以忽略score function项,可以更快收敛。

DREAMFUSION: TEXT-TO-3D USING 2D DIFFUSION

利用NeRF,将3D模型的信息储存在MLP的权重中,用预训练的文生图模型指导这些权重的更新,类似于蒸馏。

流程

For each text prompt, we train a randomly initialized NeRF from scratch. Each iteration of DreamFusion optimization performs the following:
1. randomly sample a camera and light
2. render an image of the NeRF from that camera and shade with the light
3. compute gradients of the SDS loss with respect to the NeRF parameters
4. update the NeRF parameters using an optimizer.

SDS Loss

SDS Loss的选取是最关键的

预训练文生图模型的loss

可以看做模型在学习一系列的score function

对应的分布为

先考虑直接将其应用于本问题,即

但是实验效果不好

考虑loss的梯度

忽略U-Net Jacobian term并将吸收入w(t),有

可以证明

proof:

B项可以与关联起来

A项为0,因为方差是固定的

根据Sticking the Landing: Simple, Lower-Variance Gradient Estimators for Variational Inference,作者忽略了score项,则

实验中发现保持,可以减小方差,加速训练。

ProlificDreamer: High-Fidelity and Diverse Text-to-3D Generation with Variational Score Distillation

一些数学知识

核方法

参考

  1. https://xiaohan-wang.github.io/2020/06/16/%E6%A0%B8%E6%96%B9%E6%B3%95-%E6%A0%B8%E5%87%BD%E6%95%B0-%E6%A0%B8%E6%8A%80%E5%B7%A7/
  2. https://www.cnblogs.com/zhangcn/p/13289236.html

核函数

Cover’s theorem指出,在低维空间中线性不可分的数据,通过非线性变换将其投影到高维空间之后,大概率会变为线性可分的数据。

希尔伯特空间:具有完备性的内积空间。

为映射函数,,其中是输入空间,是特征空间,特征空间需要是希尔伯特空间。

特征空间的内积可以表示为输入空间的核函数,即

从而简化内积的计算。

核函数满足一些性质:

  1. 半正定性:对于任意的定义的gram矩阵是半正定的。
  2. 对称性
  3. 只要K是一个核函数,就存在一个特征空间和一个映射,使得

再生核希尔伯特空间(RKHS)

是一个希尔伯特空间,其元素为函数

定义一

若函数满足:
1. 对于任意的,即中的元素。
2. 再生性质:对于任意的x,,有

则称k为再生核函数再生核希尔伯特空间
k的再生性质不能脱离空间而存在。

对于再生核k,可以很容易定义映射函数,根据再生性质,令,有

此为的映射函数。

定义二

先定义求值泛函
对于一个固定的,定义一个映射,满足,则是在x点的求值泛函。

是RKHS当且仅当任取有界,即存在一个与x有关的常量,使得对于任意的,有

性质
  1. Hilbert 空间和 RKHS 最本质的区别是Cauchy 列收敛条件。Hilbert 空间是完备的,所以 Hilbert 空间中的所有 Cauchy 列都是收敛的,即假设 是 Hilbert 空间中的 Cauchy 列,则对任意的 ,存在自然数 ,使得 时,有 。而在 RKHS 中,条件要求更严格,要要求所有的 Cauchy 列依点态收敛,即 ,式子 都成立。
  2. 对于一个核函数,可以对应多个希尔伯特特征空间,但是作为再生核只对应一个RKHS,同时,RKHS是所有特征空间最为精简的一个,这里的精简体现在,无论在中得到怎样的分类模型,在RKHS中都存在一个f可以得到和它相同的效果,因此对于某个核函数,RKHS代表了它最本征的信息。
  3. 任何核函数都可作为再生核函数对应一个RKHS。
  4. 再生核和再生核希尔伯特空间是一一对应的
  5. 因为我们已经找到了映射函数,所以对于中的元素f,可以表示为

Kernelized Stein Discrepancy

参考https://zhuanlan.zhihu.com/p/701255885

Stein's Identity

对于一个有光滑密度的分布p(x)以及任意一个函数f(x),并满足

为Stein算子。

Stein Discrepancy

可以看出,pq两个分布的差异可以通过来衡量。

为了消除f的影响,取形式为

Kernelized Stein Discrepancy

限定f为RKHS的元素,根据可再生性,有

则优化问题可以定义为

很容易看出f和同向,即

Stein Variational Gradient Descent

在基于粒子的概率估计算法中,需要知道粒子移动的方向。设粒子的位移函数为

需要满足

u表示粒子当前的分布,Tu表示更新后的分布,表示想要拟合的分布。
可以证明:

而先前已经证明了

Variational Score Distillation

SDS的问题:over-saturation, over-smoothing, and low-diversity problems

SDS的思路是,给定一个文本,找到的一个点估计,使得渲染出的图片最符合预训练模型,而VDS考虑让的分布对应的渲染出的图片的分布,与预训练模型产生的图像分布接近: 这是一个变分推断问题(variational inference problem),用变分分布去近似目标分布。

但是上面的形式不好处理,因为p0比较稀疏,不容易预测梯度。所以采用下面的形式。

可以证明两个优化目标是等价的,即:

为了解决这个问题,使用particle-based variational inference:,用代表当前的分布,不断对其进行更新,使得其逼近目标分布。更新规则为:

其中被预训练模型估计,估计,这个由下面的公式训练:

的更新规则可以写成下面这样:

对比一下SDS的更新规则:

VDS可以利用y来指导更新,比SDS含了更多信息,因此更遵从文本。