从VAE到Diffusion:生成模型中的重参数化技术演进
在生成模型的演进历程中,重参数化技术扮演着关键角色。这项技术最初在变分自编码器(VAE)中被提出,用于解决随机节点梯度传递的难题;随后在扩散模型(Diffusion Models)中焕发新生,成为控制噪声过程的核心机制。本文将系统梳理这项技术从理论雏形到工业级应用的完整发展脉络。
1. 重参数化的理论基础
重参数化(Reparameterization)本质上是将随机过程转化为确定性计算的数学技巧。它的核心思想可以概括为:将不可导的随机采样操作,转换为可导的确定性计算与外部噪声的组合。这种转换使得梯度能够穿透原本阻断的随机节点,实现端到端的优化。
1.1 概率图模型中的随机变量
在传统概率图模型中,随机变量的采样过程会阻断梯度流动。考虑一个简单的例子:
# 不可导的原始采样方式
mu, sigma = neural_net(input) # 神经网络输出分布参数
z = np.random.normal(mu, sigma) # 直接采样阻断梯度
这种直接采样方式导致无法计算z对mu和sigma的梯度,使得基于梯度的优化算法失效。
1.2 重参数化的数学形式
重参数化技巧通过引入辅助变量ϵ解决这个问题。对于高斯分布的情况,变换形式为:
z = μ + σ ⊙ ϵ, 其中 ϵ ∼ N(0,I)
这种表达将随机性转移到与参数无关的ϵ上,使得z成为μ和σ的确定性函数。在PyTorch中的实现示例:
def reparameterize(mu, log_var):
std = torch.exp(0.5*log_var)
eps = torch.randn_like(std)
retur


6147

被折叠的 条评论
为什么被折叠?



