Gradient de log-vraisemblance multivariée gaussienne

8

J'essaie de trouver l'estimation MAP d'un modèle par descente de gradient. Mon a priori est gaussien multivarié avec une matrice de covariance connue.

Sur le plan conceptuel, je pense que je sais comment faire, mais j'espérais de l'aide pour les détails. En particulier, s'il existe un moyen plus facile d'aborder le problème, ce serait particulièrement utile.

Voici ce que je pense que je dois faire:

  • Pour chaque dimension, trouvez la distribution conditionnelle, compte tenu de ma position actuelle dans les autres dimensions.
  • Cela me donne une gaussienne univariée locale dans chaque dimension, avec la moyenne correcte et l'écart type.
  • Je pense que le gradient ne devrait être qu'un vecteur de dérivées pour chacune de ces distributions univariées.

Ma question comporte deux parties:

  1. Est-ce la meilleure approche à adopter ou existe-t-il un moyen plus simple?
  2. En supposant que je doive suivre cette voie, quelle est la meilleure façon de trouver ces distributions conditionnelles?
David J. Harris
la source
Y a-t-il une raison pour laquelle vous voulez faire cela avec une descente en pente? Trouver la MAP d'un MVN avec quelques sons antérieurs ressemble à un problème assez bien étudié. Le MVN étant auto-conjugué, une approche entièrement bayésienne devrait même être possible.
bayerj
@bayerj Bonne question. Le prieur est MVN, mais la vraisemblance ne l'est pas. Je pense que cela limite mes options.
David J. Harris
Ah ok, je n'ai pas compris ça.
bayerj

Réponses:

8

Et l'optimisation?

Voyons si je vous comprends bien. Vous avez un modèlep(y|x,θ) conditionné par une observation x et un ensemble de paramètres θ et un préalable p(θ) conduisant à une probabilité conjointe de L=p(y|x,θ)p(θ). Les paramètres sont répartis selon une normale multivariée connue, c'est-à-direθN(μ,Σ). Vous souhaitez trouver la solution MAP à ce problème, c'est-à-dire

argmaxθL.
Un cas particulier de ce problème est bien étudié dans la communauté des réseaux de neurones, connu sous le nom de décroissance du poids. Dans ce cas,μ=0 et Σ=Iσ2.

Comme vous l'avez déjà noté, l'astuce est que argmaxθL=argmaxθlogL. Lorsque vous prenez le log de la densité gaussienne, de nombreux termes laids (l'exponentielle) disparaissent et vous vous retrouverez avec qqch commelogp(θ)=12(θμ)TΣ1(θμ)+const. Si vous différenciez cela, les identités matricielles de Sam Roweis vous seront utiles et vous permettront d'arriver à

12(θμ)TΣ1(θμ)θ=Σ1(θμ).

(Veuillez vérifier, cela a été fait rapidement et dans ma tête.) Avec les dérivés de votre modèle, vous pouvez utiliser des optimiseurs standard pour arriver à une solution MAP.

Mise à jour : Commentaire incorporé par David J. Harris. Les formules devraient être correctes maintenant.

bayerj
la source
(+1) Cela ressemble exactement à ce dont j'ai besoin. Je vais faire un peu de vérification cet après-midi, puis je cocherai la case "Accepter" si tout fonctionne. Je vous remercie!
David J. Harris
J'ai oublié d'ajouter: si votre modèle est simple (ie linéaire dans les paramètres), égaliser la dérivée de la log-vraisemblance avec zéro et résoudre pour θpourrait même fonctionner.
bayerj
J'ai joué un peu avec cela numériquement, et je pense que c'est un facteur 2, mais sinon c'est correct. Peut-être qu'il annule avec le1/2à partir de la formule de la densité normale multivariée? Merci encore!
David J. Harris
Ça devrait être ça, oui. Je l'ai oublié!
bayerj
1
Il convient de noter qu'un a priori gaussien multivarié personnalisé (avec matrice de covariance non diagonale) définit la régularisation de Tikhonov
Artem Sobolev
0

Si la probabilité n'est pas gaussienne, il n'est pas possible de dire s'il existe des résultats analytiques. En outre, la deuxième puce est alors incorrecte en général. Puisque la vraisemblance gaussienne a priori et générale ne fait pas de distributions gaussiennes conditionnelles sur les composantes vectorielles.

Une façon d'obtenir le MAP serait de faire une analyse bayésienne complète, par exemple en utilisant MCMC et d'utiliser les échantillons de la partie postérieure pour l'estimer. [Dans ce cas, vous auriez de meilleures informations disponibles que d'utiliser uniquement la carte.] Intérêt - pourquoi ne pas emprunter cette voie de toute façon?

Une autre approche pourrait être de le faire (je n'ai pas vu cela se faire généralement, alors quelqu'un me corrige s'il vous plaît):

p(θ|x)=p(x|θ)p(θ)p(x)

l(θ|x)=l(x|θ)+l(θ)l(x)

dl(θ|x)dθ=dl(x|θ)dθ+dl(θ)dθ=0

Ensuite, résolvez pour θ (probablement numériquement).

conjectures
la source
Merci pour votre contribution. Je n'ai peut-être pas été clair: en ce moment, je suis juste intéressé à trouver le gradient pour l'a priori. Le gradient du log-postérieur n'est que le gradient de la log-vraisemblance plus le gradient du log-prior, donc trouver ces deux gradients séparément devrait être correct.
David J. Harris
1
Ehm, votre proposition à résoudre pour θnumériquement est ... l'approche de base. Sinon, comment peut-on optimiser la fonction cible sans trouver la racine d'un gradient?
Artem Sobolev