Comment puis-je échantillonner à partir d'une distribution discrète (catégorielle) dans l'espace journal?

12

Supposons que j'ai une distribution discrète définie par le vecteur telle sorte que la catégorie sera dessinée avec la probabilité et ainsi de suite. Je découvre alors que certaines des valeurs de distribution sont si petites qu'elles dépassent la représentation numérique en virgule flottante de mon ordinateur, donc, pour compenser, je fais tous mes calculs dans l'espace logarithmique. J'ai maintenant un journal vectoriel de l'espace de . 0 θ 0 l o g ( θ 0 ) , l o g ( θ 1 ) , . . . , l o g ( θ N )θ0,θ1,...,θN0θ0log(θ0),log(θ1),...,log(θN)

Est-il possible d'échantillonner à partir de la distribution de telle sorte que les probabilités d'origine tiennent (la catégorie est dessinée avec la probabilité ) mais sans jamais quitter l'espace logarithmique? En d'autres termes, comment puis-je échantillonner à partir de cette distribution sans sous-flux?θ iiθi

Josh Hansen
la source

Réponses:

15

Il est possible d'échantillonner à partir d'une distribution catégorielle en fonction des probabilités de journalisation sans laisser d'espace dans le journal à l'aide de l' astuce Gumbel-max . L'idée est que si l'on vous donne des probabilités logarithmiques non normalisées , qui peuvent être traduites en probabilités appropriées en utilisant la fonction softmaxα1,,αk

pi=exp(αi)jexp(αj)

puis pour échantillonner à partir d'une telle distribution, vous pouvez utiliser le fait que si sont des échantillons indépendants prélevés dans la distribution de Gumbel standard paramétrée par l'emplacement m ,g1,,gkG(0)m

F(Gg)=exp(exp(g+m))

alors on peut montrer (voir références ci-dessous) que

argmaxi{gi+αi}exp(αi)jexp(αj)maxi{gi+αi}G(logiexp{αi})

et nous pouvons prendre

z=argmaxi{gi+αi}

comme échantillon de distribution catégorielle paramétrée par les probabilités . Cette approche a été décrite plus en détail dans les articles de blog de Ryan Adams et Laurent Dinh.En outre, Chris J. Maddison, Daniel Tarlow et Tom Minka ont donné un discours ( diapositives ) sur la conférence Neural Information Processing Systems (2014) et ont écrit un article intitulé A * Échantillonnage qui a généralisé ces idées (voir également Maddison, 2016; Maddison, Mnih et Teh, 2016; Jang et Poole, 2016), qui se réfèrent à Yellott (1977) mentionnant la sienne comme étant l'une de celles qui ont décrit pour la première fois cette propriété.p1,,pk

Il est assez facile de l'implémenter en utilisant l' échantillonnage à transformée inverse en prenant où sont tirés d'une distribution uniforme sur . Ce ne sont certainement pas les algorithmes les plus efficaces en termes de temps pour l'échantillonnage à partir d'une distribution catégorielle, mais il vous permet de rester dans l'espace journalier, ce qui peut être un avantage dans certains scénarios.u i ( 0 , 1 )gi=log(logui)ui(0,1)


Maddison, CJ, Tarlow, D., et Minka, T. (2014). Échantillonnage A *. [Dans:] Advances in Neural Information Processing Systems (pp. 3086-3094).

Yellott, JI (1977). La relation entre l'axiome de choix de Luce, la théorie de Thurstone du jugement comparatif et la double distribution exponentielle. Journal of Mathematical Psychology, 15 (2), 109-144.

Maddison, CJ, Mnih, A., et Teh, YW (2016). La distribution concrète: une relaxation continue des variables aléatoires discrètes. arXiv preprint arXiv: 1611.00712.

Jang, E., Gu, S. et Poole, B. (2016). Reparameterization catégorique avec Gumbel-Softmax. arXiv preprint arXiv: 1611.01144.

Maddison, CJ (2016). Un modèle de processus de Poisson pour Monte Carlo. arXiv preprint arXiv: 1602.05986.

Tim
la source
5

Voici une façon courante d'éviter les débordements / débordements.

Soit .m=maxilog(θi)

Soit .θi=exp(log(θi)m)

Vous pouvez échantillonner depuis .θ=[θ1,θ2,...]

Siddharth Gopal
la source
1
Cela fonctionne tant que la différence entre une valeur et le maximum n'est pas trop grande --- lorsque cela se produit, le exppeut perdre en précision, conduisant à des distributions comme [1.0, 3.45e-66, 0.0, 7.54e-121] . Je voudrais attendre une réponse solide, même dans ce cas. Mais pour l'instant, je vote pour votre réponse.
Josh Hansen