--- created: 2025-08-03 21:19:11 tags: - "Research" - "基础" - "Diffusion" - "重参数化" - "随机变量" --- ## 1. 什么是重参数化? 重参数化 (Reparameterization) 是指, 通过某种变换(也就是重参数化), 将一个 **随机变量** (例如我们在[[Diffusion]]中添加的[[正态分布|高斯噪声]]) 的 *生成过程* 表示为一个 **可微分的函数**(连续且可求导的形式). 这样就可以在训练中使用*梯度下降*等基于梯度的优化算法来训练模型. ### 1.1 Q: 为什么要转换为可微的方式? A: 只有可微的函数才能求导, 梯度下降等优化算法正是通过不断求导(计算梯度)来优化训练模型的. ### 1.3 Q: 这里的随机变量是什么 A: 假设我们有一个随机变量 $z$ 从某个概率分布 $p(z)$ 中采样得到。例如,$z$ 可能是从[[正态分布#^b6efe4|标准正态分布]] $N(0,1)$ 中采样得到的。在这个过程中,每次采样都是一个独立的随机事件,结果是不确定的。 ### 1.2 Q: 为什么对随机变量进行采样时不可微的? A: 1. 非确定性 采样过程是非确定性的,即每次采样得到的结果是随机的。这种随机性使得采样过程不是一个确定的函数,而是依赖于某种随机机制(如随机数生成器)。因此,采样过程不能表示为一个连续的、确定性的函数。 2. 梯度不存在 由于采样过程是非确定性的,我们无法通过传统的微积分方法来计算其梯度。具体来说,假设我们有一个函数 $f(z)$,其中 $z$ 是从某个分布中采样得到的。如果我们试图通过反向传播来计算 $f(z)$ 关于模型参数 $\theta$ 的梯度,我们会发现 $z$ 的变化是离散的、随机的,无法用导数来描述。 举个例子: 假设我们有一个随机变量 $z$ 从 *伯努利分布* $Bernoulli(p)$ 中采样得到,其中 $p$ 是成功概率。如果我们直接对 $z$ 进行采样,结果只能是 0 或 1。这种二值化的结果使得 $z$ 的变化是**离散**的,**无法用导数来描述**。 ## 2. 为什么要重参数化? 在训练生成模型时,通常我们需要从某个分布中采样,例如[[正态分布|高斯分布]]。如果直接从分布中采样并计算损失,就无法计算梯度,因为采样过程本身不可微分。 为了解决这个问题, 就要将不可微变成可微, 这就是重参数化. 举个例子: 假设我们有一个高斯分布 $p(x) = \mathcal{N}(\mu, \sigma^2)$,如果我们希望从中采样,可以直接通过随机数生成器采样一个值 $x$ ,但这个过程并不容易计算梯度。因此,通过重参数化技巧,我们可以将采样过程转化为以下形式: $x = \mu + \sigma \cdot z$ . 其中 $Z\sim \mathcal{N}(0,1)$,即采样的随机变量 $z$ 服从标准正态分布(均值为0,方差为1)。这样我们就能通过 $\mu$ 和 $\sigma$ 的梯度来优化模型。 ## 3. 一般如何重参数化? 以下是几种常见的重参数化方式: - **正态分布**:对一个标准正态分布 $\mathcal{N}(0, 1)$,通过线性变换得到任意均值 $\mu$ 和标准差 $\sigma$ 的高斯分布: $$x = \mu + \sigma \cdot z, \quad z \sim \mathcal{N}(0, 1)$$ - **伯努利分布**:对于伯努利分布,我们可以通过引入一个均匀分布的随机变量 $u \sim \mathcal{U}(0, 1)$ 来进行重参数化: $$x = \mathbb{1}_{u < p}​$$ 其中 $p$ 是事件发生的概率,$\mathbb{1}$ 是指示函数。 - **其他分布**:对于其他分布,比如拉普拉斯分布或Gamma分布,可以根据其参数化的形式进行类似的重参数化。 ## 4. 实例与原理 最通常的做法是吧随机性通过一个独立的随机变量( $\epsilon$ )引导过去。举个例子,如果要从高斯分布 $z\sim\mathcal{N}(z;\mu_\theta,\sigma_\theta^2\mathbf{I})$ 采样一个$z$,我们可以写成: $$z=\mu_\theta+\sigma_\theta\odot\epsilon,\epsilon\sim\mathcal{N}(0,\mathbf{I})$$ 上式的z依旧是有随机性的, 且满足均值为 $\mu_\theta$ 方差为 $\sigma_\theta^2$ 的高斯分布。这里的$\mu_\theta$,,$\sigma_\theta^2$可以是由参数 $\theta$ 的神经网络推断得到的。整个“采样”过程依旧梯度可导,**随机性被转嫁到了 $\epsilon$ 上**。