Come posso campionare da una distribuzione discreta (categorica) nello spazio del registro?


12

Supponiamo che io abbia una distribuzione discreta definita dal vettore tale che la categoria verrà disegnata con probabilità e così via. Scopro quindi che alcuni dei valori nella distribuzione sono così piccoli che non raggiungono la rappresentazione numerica in virgola mobile del mio computer, quindi, per compensare, eseguo tutti i miei calcoli nello spazio log. Ora ho un registro vettoriale spazio- . 0 θ 0 l o g ( θ 0 ) , l o g ( θ 1 ) , . . . , l o g ( θ N )θ0,θ1,...,θN0θ0log(θ0),log(θ1),...,log(θN)

È possibile campionare dalla distribuzione in modo tale che le probabilità originali siano valide (la categoria è disegnata con probabilità ) ma senza mai lasciare spazio-log? In altre parole, come posso campionare da questa distribuzione senza underflow?θ ioiθi

Risposte:


15

È possibile campionare dalla distribuzione categoriale date le probabilità di log senza lasciare spazio nel log usando il trucco Gumbel-max . L'idea è che se ti vengono fornite probabilità di log non normalizzate , che possono essere tradotte in probabilità appropriate usando la funzione softmaxα1,,αk

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

quindi per campionare da tale distribuzione puoi usare il fatto che se sono campioni indipendenti presi dalla distribuzione standard di Gumbel parametrizzata dalla posizione ,mg1,,gkG(0)m

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

allora può essere mostrato (vedi riferimenti sotto) quello

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

e possiamo prendere

z=argmaxi{gi+αi}

come esempio dalla distribuzione categoriale parametrizzata da probabilità . Questo approccio è stato descritto in maggior dettaglio nei post di blog di Ryan Adams e Laurent Dinh , inoltre Chris J. Maddison, Daniel Tarlow e Tom Minka hanno tenuto un discorso ( diapositive ) sulla conferenza Neural Information Processing Systems (2014) e hanno scritto un documento intitolato A * Campionamento che ha generalizzato quelle idee (vedi anche Maddison, 2016; Maddison, Mnih e Teh, 2016; Jang e Poole, 2016), che si riferiscono a Yellott (1977) citando il suo come quello tra quelli che per primi hanno descritto questa proprietà.p1,,pk

È abbastanza facile implementarlo usando il campionamento di trasformazione inversa prendendo dove sono disegnati da una distribuzione uniforme su . Non è certamente l'algoritmo più efficiente in termini di tempo per il campionamento dalla distribuzione categoriale, ma ti consente di rimanere nello spazio di registro che potrebbe essere un vantaggio in alcuni scenari.gi=log(logui)ui(0,1)


Maddison, CJ, Tarlow, D., e Minka, T. (2014). A * campionamento. [In:] Progressi nei sistemi di elaborazione delle informazioni neurali (pagg. 3086-3094).

Yellott, JI (1977). La relazione tra l'assioma scelto di Luce, la teoria del giudizio comparativo di Thurstone e la doppia distribuzione esponenziale. Journal of Mathematical Psychology, 15 (2), 109-144.

Maddison, CJ, Mnih, A., & Teh, YW (2016). La distribuzione concreta: un continuo rilassamento di variabili casuali discrete. arXiv prestampa arXiv: 1611.00712.

Jang, E., Gu, S., & Poole, B. (2016). Rarameterizzazione categorica con Gumbel-Softmax. arXiv prestampa arXiv: 1611.01144.

Maddison, CJ (2016). Un modello di processo di Poisson per Monte Carlo. arXiv prestampa arXiv: 1602.05986.


5

Ecco un modo comune per evitare underflow / overflow.

Lascia che .m=maxilog(θi)

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

Puoi campionare da .θ=[θ1,θ2,...]


1
Funziona fintanto che la differenza tra un singolo valore e il massimo non è troppo grande --- quando ciò accade, si exppuò perdere precisione, portando a distribuzioni come [1.0, 3.45e-66, 0.0, 7.54e-121] . Vorrei aspettare qualche risposta che sia solida anche in quel caso. Ma per ora sto votando la tua risposta.
Josh Hansen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.