首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tf.multinomial是如何工作的?

tf.multinomial是如何工作的?
EN

Stack Overflow用户
提问于 2018-01-22 22:02:13
回答 1查看 8.6K关注 0票数 14

tf.multinomial是如何工作的?这里说它“从多项式分布中提取样本”。那是什么意思?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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的一个例子,

代码语言:javascript
复制
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.Multinomialtensorflow_probability.distributions.Multinomial的最新文档

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48390958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档