【发布时间】:2018-05-10 20:46:50
【问题描述】:
可以说,分布函数定义如下:
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])
我很想知道梯度例程是否通过正态分布传播,或者我是否应该预料到一些问题,因为我在定义分布的参数上采用梯度
【问题讨论】:
-
理论上不会,但是有一个众所周知的重新参数化技巧。生成一个标准的高斯噪声
z(可能是tf.random_normal),然后做x = z * std + mu。 -
感谢您的回复。我喜欢你优化 std 和 mu 的方法。
标签: tensorflow