gpt4 book ai didi

tensorflow - tensorflow 是否通过pdf传播梯度

转载 作者:行者123 更新时间:2023-12-03 12:30:25 25 4
gpt4 key购买 nike

可以说,分布函数定义如下:

dist = tf.contrib.distributions.Normal(mu, sigma)

并从分布中抽取样本
val = dist.pdf(x)

并且该值在模型中用于预测变量
X_hat = f(val)
loss = tf.norm(X_pred-X_hat, ord=2)

如果我想优化变量 mu 和 sigma 以减少我的预测误差,我可以执行以下操作吗?
train = tf.train.AdamOptimizer(1e-03).minimize(loss, var_list=[mu, sigma])

我有兴趣知道梯度例程是否通过正态分布传播,或者我应该期待一些问题,因为我正在对定义分布的参数进行梯度

最佳答案

tl;博士:是的,梯度反向传播将与 tf.distributions.Normal 一起正常工作.
dist.pdf(x)不从分布中抽取样本,而是返回x处的概率密度函数.这可能不是你想要的。

要获得随机样本,您真正想要的是调用 dist.sample() .对于许多随机分布,随机样本对参数的依赖性是不平凡的,不一定是可反向传播的。

然而,正如@Richard_wth 所指出的,特别是对于正态分布,可以通过重新参数化来获得对位置和尺度参数(musigma)的简单依赖。

事实上,在 the implementationtf.contrib.distributions.Normal (最近迁移到 tf.distributions.Normal ),这正是 sample实现:

def _sample_n(self, n, seed=None):
...
sampled = random_ops.random_normal(shape=shape, mean=0., stddev=1., ...)
return sampled * self.scale + self.loc

因此,如果您将比例和位置参数作为张量提供,那么反向传播将在这些张量上正常工作。

请注意,这种反向传播本质上是随机的:它将根据正常高斯变量的随机抽取而变化。但是,从长远来看(在许多训练示例中),这可能会按您的预期工作。

关于tensorflow - tensorflow 是否通过pdf传播梯度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49722603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com