tf.multinomial是如何工作的?这里说它“从多项式分布中提取样本”。那是什么意思?
发布于 2018-01-22 22:53:03
如果您执行的实验n时间只能具有两个结果(成功或失败、头尾等),那么获得这两个结果中的一个的次数(成功)是一个二项式随机变量。
换句话说,如果您执行的实验只能具有两个结果--(成功或失败、头尾等),那么一个在成功情况下取值1、在失败情况下值为0的随机变量是Bernoulli随机变量。
如果您执行一个实验的X时间可以有K结果(其中K可以是任意自然数),并且用X_i表示获得第一个结果的次数,那么随机向量K定义为
X = X_1,X_2,X_3,.,X_K
是一个多项式随机向量。
换句话说,如果您进行了一个可以具有K结果的实验,并且用X_i表示一个随机变量,如果得到第一个结果,它的值为1,否则为0,则随机向量X定义为
X = X_1,X_2,X_3,.,X_K
是一个Multinoulli随机向量。换句话说,当得到第一个结果时,Multinoulli随机向量X的第一个条目取值1,而所有其他条目的值都为0。
因此,多项式分布可以看作是相互独立的Multinoulli随机变量的和。
K可能的结果的概率将由
p_1,p_2,p_3,…,p_K
Tensorflow的一个例子,
In [171]: isess = tf.InteractiveSession()
In [172]: prob = [[.1, .2, .7], [.3, .3, .4]] # Shape [2, 3]
...: dist = tf.distributions.Multinomial(total_count=[4., 5], probs=prob)
...:
...: counts = [[2., 1, 1], [3, 1, 1]]
...: isess.run(dist.prob(counts)) # Shape [2]
...:
Out[172]: array([ 0.0168 , 0.06479999], dtype=float32)注:当K = 2时,多项式与二项分布相同。有关更详细的信息,请参考tf.compat.v1.distributions.Multinomial或tensorflow_probability.distributions.Multinomial的最新文档
https://stackoverflow.com/questions/48390958
复制相似问题