tf.multinomial
如何工作?声明Here“从多项分布中抽取样本”。这意味着什么?
最佳答案
如果您执行的实验n
时间只能有两个结果(成功或失败,头部或尾部等),那么获得两个结果之一(成功)的次数就是一个二项式随机变量。
换句话说,如果您执行的实验只能有两个结果(成功或失败,头部或尾部等),则随机变量在成功的情况下为1,在失败的情况下为0。伯努利随机变量。
如果您执行的实验n
次可能具有K
个结果(其中K
可以是任何自然数),并且用X_i
表示获得第i个结果的次数,则随机向量X
定义为
X = [X_1,X_2,X_3,...,X_K]
是多项式随机向量。
换句话说,如果您执行的实验可能具有K
个结果,并且用X_i
表示一个随机变量,如果您获得第i个结果,则该变量的值为1,否则为0,则随机向量X定义为
X = [X_1,X_2,X_3,...,X_K]
是Multinoulli随机向量。换句话说,当获得第i个结果时,Multinoulli随机向量X
的第i个条目的值为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.distributions.Multinomial
关于tensorflow - tf。多项式如何工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48390958/