Comment incorporer de nouvelles informations dans une distribution précédente de Dirichlet?

8

Mon problème est le suivant: j'ai un ensemble de prédicteurs qui produisent chacun une distribution sur un ensemble de classes.

Ce que je voudrais faire, c'est d'abord avoir un préalable non informatif sur l'apparence de cette distribution d'étiquettes, puis le mettre à jour avec la prédiction de chaque membre de l'ensemble.

J'ai donc pensé à utiliser un Dirichlet non informatif avant, que je mets à jour avec chaque distribution d'échantillon qui vient comme une prédiction.

Ma question est: cette approche est-elle valide, et si oui, comment pourrais-je mettre à jour mon a priori pour qu'il devienne plus défini à mesure que davantage d'échantillons s'accumulent?

Bar
la source
Je sais que vous pouvez faire exactement cela dans Allocation Dirichlet Latente. Ils utilisent les données pour mettre à jour le Dirichlet avant pour la probabilité multinomiale. Pour plus d'informations, consultez ces liens: dirichlet.net/pdf/wallach09rethinking.pdf et people.eecs.berkeley.edu/~jordan/papers/hdp.pdf
KenHBS

Réponses:

6

Dirichlet a priori est un a priori approprié, et est le conjugué avant une distribution multinomiale. Cependant, il semble un peu délicat de l'appliquer à la sortie d'une régression logistique multinomiale, car une telle régression a un softmax comme sortie, pas une distribution multinomiale. Cependant, ce que nous pouvons faire, c'est échantillonner à partir d'un multinomial, dont les probabilités sont données par le softmax.

Si nous dessinons cela comme un modèle de réseau neuronal, cela ressemble à:

entrez la description de l'image ici

Nous pouvons facilement en échantillonner, dans le sens direct. Comment gérer la direction arrière? Nous pouvons utiliser l'astuce de reparameterization, de l'article de Kingma 'Auto-encoding variationational Bayes', https://arxiv.org/abs/1312.6114 , en d'autres termes, nous modélisons le tirage multinomial comme une cartographie déterministe, étant donné la distribution de probabilité d'entrée, et un tirage d'une variable aléatoire gaussienne standard:

xout=g(xin,ϵ)

où:ϵN(0,1)

Ainsi, notre réseau devient:

entrez la description de l'image ici

Ainsi, nous pouvons retransmettre des mini-lots d'exemples de données, puiser à partir de la distribution normale standard et effectuer une rétro-propagation via le réseau. Ceci est assez standard et largement utilisé, par exemple le document Kingma VAE ci-dessus.

Une légère nuance est que nous dessinons des valeurs discrètes à partir d'une distribution multinomiale, mais le papier VAE ne traite que le cas des sorties réelles continues. Cependant, il existe un article récent, l'astuce de Gumbel, https://casmls.github.io/general/2017/02/01/GumbelSoftmax.html , à savoir https://arxiv.org/pdf/1611.01144v1.pdf , et https://arxiv.org/abs/1611.00712 , qui permet des tirages à partir de papiers multinomiaux discrets.

Les formules astuces de Gumbel donnent la distribution de sortie suivante:

pα,λ(x)=(n1)!λn1k=1n(αkxkλ1i=1nαixiλ)

Les sont des probabilités antérieures pour les différentes catégories, que vous pouvez modifier, pour pousser votre distribution initiale vers la façon dont vous pensez que la distribution pourrait être distribuée initialement.αk

Nous avons donc un modèle qui:

  • contient une régression logistique multinomiale (la couche linéaire suivie du softmax)
  • ajoute une étape d'échantillonnage multinomiale à la fin
  • qui comprend une distribution préalable sur les probabilités
  • peut être formé à l'aide de la descente de gradient stochastique ou similaire

Éditer:

Donc, la question demande:

"est-il possible d'appliquer ce type de technique lorsque nous avons plusieurs prédictions (et chaque prédiction peut être un softmax, comme ci-dessus) pour un seul échantillon (d'un ensemble d'apprenants)." (voir commentaires ci-dessous)

Donc oui :). C'est. Utiliser quelque chose comme l'apprentissage multi-tâches, par exemple http://www.cs.cornell.edu/~caruana/mlj97.pdf et https://en.wikipedia.org/wiki/Multi-task_learning . Sauf que l'apprentissage multitâche a un seul réseau et plusieurs têtes. Nous aurons plusieurs réseaux et une seule tête.

La «tête» comprend une couche d'extrait qui gère le «mélange» entre les filets. Notez que vous aurez besoin d'une non-linéarité entre vos «apprenants» et la couche «de mélange», par exemple ReLU ou tanh.

Vous faites allusion à donner à chaque «apprendre» son propre tirage multinomial, ou au moins, softmax. Dans l'ensemble, je pense qu'il sera plus standard d'avoir la couche de mélange en premier, suivie d'un seul tirage softmax et multinomial. Cela donnera le moins d'écart, car moins de tirages. (par exemple, vous pouvez consulter le document `` abandon variationnel '', https://arxiv.org/abs/1506.02557 , qui fusionne explicitement plusieurs tirages aléatoires, pour réduire la variance, une technique qu'ils appellent `` reparameterization locale '')

Un tel réseau ressemblera à quelque chose comme:

entrez la description de l'image ici

Celui-ci présente alors les caractéristiques suivantes:

  • peut inclure un ou plusieurs apprenants indépendants, chacun avec ses propres paramètres
  • peut inclure un prior sur la distribution des classes de sortie
  • va apprendre à se mélanger entre les différents apprenants

Notons au passage que ce n'est pas le seul moyen de regrouper les apprenants. Nous pourrions également les combiner de manière plus «autoroute», un peu comme le boost, quelque chose comme:

entrez la description de l'image ici

Dans ce dernier réseau, chaque apprenant apprend à résoudre les problèmes causés par le réseau jusqu'à présent, plutôt que de créer sa propre prédiction relativement indépendante. Une telle approche peut très bien fonctionner, c'est-à-dire Boosting, etc.

Hugh Perkins
la source
1
Merci, c'est vraiment utile, bien que la question ait encore un aspect sans réponse: est-il possible d'appliquer ce type de technique lorsque nous avons plusieurs prédictions (et chaque prédiction peut être un softmax, comme ci-dessus) pour un seul échantillon (à partir d'un ensemble de apprenants). Je suppose que non, car les échantillons ne sont pas iid
Bar
@Bar: Bon point. Mise à jour pour plusieurs apprenants
Hugh Perkins