伽马分布。
继承自:Distribution
用法
tf.compat.v1.distributions.Gamma(
concentration, rate, validate_args=False, allow_nan_stats=True,
name='Gamma'
)
参数
-
concentration
浮点张量,分布的浓度参数。必须只包含正值。 -
rate
浮点张量,分布的反比例参数。必须只包含正值。 -
validate_args
Pythonbool
,默认False
。尽管可能会降低运行时性能,但检查True
分发参数的有效性时。当False
无效输入可能会默默呈现不正确的输出。 -
allow_nan_stats
Pythonbool
,默认True
。当True
时,统计信息(例如,均值、众数、方差)使用值“NaN
”来指示结果未定义。当False
时,如果一个或多个统计数据的批处理成员未定义,则会引发异常。 -
name
Pythonstr
名称以此类创建的 Ops 为前缀。
抛出
-
TypeError
如果concentration
和rate
是不同的数据类型。
属性
-
allow_nan_stats
Pythonbool
说明未定义统计信息时的行为。统计数据在有意义时返回 +/- 无穷大。例如,柯西分布的方差是无穷大的。但是,有时统计数据是未定义的,例如,如果分布的 pdf 在分布的支持范围内没有达到最大值,则模式是未定义的。如果均值未定义,则根据定义,方差未定义。例如: df = 1 的 Student's T 的平均值是未定义的(没有明确的方式说它是 + 或 - 无穷大),因此方差 = E[(X - mean)**2] 也是未定义的。
-
batch_shape
来自单个事件索引的单个样本的形状作为TensorShape
.可能部分定义或未知。
批次维度是该分布的独立、不同参数化的索引。
-
concentration
浓度参数。 -
dtype
Tensor
的DType
由此Distribution
处理。 -
event_shape
单个批次的单个样品的形状作为TensorShape
.可能部分定义或未知。
-
name
此Distribution
创建的所有操作前的名称。 -
parameters
用于实例化此Distribution
的参数字典。 -
rate
速率参数。 -
reparameterization_type
说明如何重新参数化分布中的样本。目前这是静态实例
distributions.FULLY_REPARAMETERIZED
或distributions.NOT_REPARAMETERIZED
之一。 -
validate_args
Pythonbool
表示启用了可能昂贵的检查。
Gamma 分布是使用参数concentration
(又名"alpha")和rate
(又名"beta")在正实数上定义的。
数学细节
概率密度函数 (pdf) 是,
pdf(x; alpha, beta, x > 0) = x**(alpha - 1) exp(-x beta) / Z
Z = Gamma(alpha) beta**(-alpha)
其中:
concentration = alpha
,alpha > 0
,rate = beta
,beta > 0
,Z
是归一化常数,并且,Gamma
是伽玛函数。
累积密度函数 (cdf) 为,
cdf(x; alpha, beta, x > 0) = GammaInc(alpha, beta x) / Gamma(alpha)
其中 GammaInc
是下不完全 Gamma 函数。
这些参数可以通过它们与均值和标准差的关系来直观理解,
concentration = alpha = (mean / stddev)**2
rate = beta = mean / stddev**2 = concentration / mean
分布参数在所有函数中自动广播;有关详细信息,请参见示例。
警告:这种分布的样本总是非负的。但是,小于 np.finfo(dtype).tiny
的样本会被四舍五入到这个值,所以它出现的频率比它应该的要高。仅当concentration
非常小或rate
非常大时才会注意到这一点。请参阅 tf.random.gamma
文档字符串中的注释。
该分布的样本被重新参数化(路径可微)。导数是使用 (Figurnov et al., 2018) 中说明的方法计算的。
例子
import tensorflow_probability as tfp
tfd = tfp.distributions
dist = tfd.Gamma(concentration=3.0, rate=2.0)
dist2 = tfd.Gamma(concentration=[3.0, 4.0], rate=[2.0, 3.0])
计算样本的梯度 w.r.t.参数:
concentration = tf.constant(3.0)
rate = tf.constant(2.0)
dist = tfd.Gamma(concentration, rate)
samples = dist.sample(5) # Shape [5]
loss = tf.reduce_mean(tf.square(samples)) # Arbitrary loss function
# Unbiased stochastic gradients of the loss function
grads = tf.gradients(loss, [concentration, rate])
参考:
隐式重新参数化梯度:Figurnov 等人,2018 (pdf)
相关用法
- Python tf.compat.v1.distributions.Gamma.cdf用法及代码示例
- Python tf.compat.v1.distributions.Gamma.log_cdf用法及代码示例
- Python tf.compat.v1.distributions.Gamma.cross_entropy用法及代码示例
- Python tf.compat.v1.distributions.Gamma.stddev用法及代码示例
- Python tf.compat.v1.distributions.Gamma.covariance用法及代码示例
- Python tf.compat.v1.distributions.Gamma.quantile用法及代码示例
- Python tf.compat.v1.distributions.Gamma.log_survival_function用法及代码示例
- Python tf.compat.v1.distributions.Gamma.variance用法及代码示例
- Python tf.compat.v1.distributions.Gamma.kl_divergence用法及代码示例
- Python tf.compat.v1.distributions.Gamma.survival_function用法及代码示例
- Python tf.compat.v1.distributions.Multinomial.stddev用法及代码示例
- Python tf.compat.v1.distributions.Bernoulli.cross_entropy用法及代码示例
- Python tf.compat.v1.distributions.Bernoulli.covariance用法及代码示例
- Python tf.compat.v1.distributions.Normal.log_survival_function用法及代码示例
- Python tf.compat.v1.distributions.Laplace.stddev用法及代码示例
- Python tf.compat.v1.distributions.Multinomial.quantile用法及代码示例
- Python tf.compat.v1.distributions.Uniform.log_survival_function用法及代码示例
- Python tf.compat.v1.distributions.Normal.log_cdf用法及代码示例
- Python tf.compat.v1.distributions.Laplace.cross_entropy用法及代码示例
- Python tf.compat.v1.distributions.Dirichlet.covariance用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.compat.v1.distributions.Gamma。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。