当前位置:  开发笔记 > 人工智能 > 正文

tf.multinomial如何工作?

如何解决《tf.multinomial如何工作?》经验,为你挑选了1个好方法。

tf.multinomial工作怎么样?这里说它是"从多项分布中抽取样本".那是什么意思?



1> kmario23..:

如果您执行的实验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随机向量的第i个条目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.distributions.Multinomial

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有