web-dev-qa-db-fra.com

Comment fonctionne tf.multinomial?

Comment tf.multinomial travail? Ici est déclaré qu'il "tire des échantillons d'une distribution multinomiale". Qu'est-ce que ça veut dire?

11

Si vous effectuez une expérience n fois qui ne peut avoir que deux résultats (succès ou échec, tête ou queue, etc.), alors le nombre de fois obtenir l'un des deux résultats (succès) est une variable aléatoire binomiale.

En d'autres termes, si vous effectuez une expérience qui ne peut avoir que deux résultats (succès ou échec, tête ou queue, etc.), alors une variable aléatoire qui prend la valeur 1 dans en cas de succès et la valeur 0 en cas d'échec est une variable aléatoire Bernoulli .


Si vous effectuez une expérience n fois pouvant avoir K résultats (où K peut être n'importe quel nombre naturel) et que vous notez X_i le nombre de fois que vous obtenez le i-ème résultat, puis le vecteur aléatoire X défini comme

[~ # ~] x [~ # ~] X_1, X_2, X_3, ..., X_K]

est un vecteur aléatoire multinomial.

En d'autres termes, si vous effectuez une expérience qui peut avoir K résultats et que vous dénotez par X_i une variable aléatoire qui prend la valeur 1 si vous obtenez le i-ème résultat et 0 sinon, alors le vecteur aléatoire X défini comme

[~ # ~] x [~ # ~] = [X_1, X_2, X_3, ..., X_K]

est un vecteur aléatoire Multinoulli. En d'autres termes, lorsque le i-ème résultat est obtenu, la i-ème entrée du vecteur aléatoire Multinoulli X prend la valeur 1, tandis que toutes les autres entrées prennent la valeur 0.

Ainsi, une == [- distribution multinomiale peut être considérée comme une somme de variables aléatoires Multinoulli mutuellement indépendantes.

Et les probabilités des K résultats possibles seront notées par

p_1, p_2, p_3, ..., p_K


Un exemple dans 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)

Remarque: Le multinomial est identique à la distribution binomiale lorsque K = 2. Pour plus d'informations, reportez-vous à: tf.distributions.Multinomial

12
kmario23