重参数化技巧
1. 核心思想
重参数化(Reparameterization) 是一种处理含随机采样目标函数的梯度估计技巧。考虑如下形式的期望:
这类目标函数广泛出现在变分自编码器(VAE)、文本 GAN 以及强化学习中(此时
重参数化技巧的核心思想是:将随机变量
这样,期望对
只要
2. 连续情形:正态分布
以正态分布为例,假设隐变量服从:
直接从中采样得到
此时随机性完全来自与参数无关的
对应的伪代码如下:
python
def reparameterize(z_mean, z_log_var):
epsilon = K.random_normal(shape=K.shape(z_mean))
return z_mean + K.exp(0.5 * z_log_var) * epsilon补充说明:上述代码中
z_log_var表示对数方差,取指数后得到标准差,这种参数化方式可避免方差为负,并改善数值稳定性。
3. 在 VAE 中的应用
变分自编码器的证据下界(ELBO)包含如下期望项:
为计算该期望,需要从近似后验
利用重参数化技巧,采样过程可写为:
其中
第一项 KL 散度有解析解,可直接计算;第二项重建似然则通过重参数化采样后进行蒙特卡洛估计。编码器输出均值与方差,解码器从采样的
4. 小结
- 重参数化技巧将“从参数化分布中采样”转换为“对无参数噪声进行确定性变换”,从而保留梯度信息。
- 在连续分布中,最常见的形式是
。 - 该技巧是 VAE 能够进行端到端梯度训练的关键:它使得隐变量采样过程可导,同时随机性仍来自外部噪声变量。