Projet d'estimation de densité conditionnelle semi-paramétrique

Le but de ce projet est d'explorer et de comparer une méthode semi-paramétrique et une méthode purement non-paramétrique d'estimation de densité conditionelle, ainsi qu'un mélange de Gaussiennes. La méthode non-paramétrique est classique (fenêtre de Parzen + Bayes). La méthode semi-paramétrique combine une transformation non-linéaire vers un espace de plus faible dimension et une somme de noyaux.

Estimateur de densité non-paramétrique classique: p(z)=(1/n) sum_i G(z;z_i,sigma^2 I)

où n est le nombre d'exemples, G(z;mu,sigma^2 I) est la densité de z sous la loi normale de moyenne mu et de matrice de variance = sigma^2 I.

Estimateur de densité à mélange de Gaussiennes: p(z) = sum_i w_i G(z;mu_i, diag(v_i))

où w_i >0 et sum_i w_i = 1, et mu_i un vecteur, v_i un vecteur de variances et diag(v_i) la matrice diagonale avec v_i dans sa diagonale. On estime les w_i,mu_i et v_i par EM. On peut les initialiser ainsi: w_i=1/m (avec m le nombre de composantes), mu_i = un exemple d'apprentissage choisi au hasard, et v_i intialisé en mesurant la variance empirique des exemples qui tombent le plus proche de mu_i.

À partir d'un estimateur de densité on peut obtenir un estimater de la densité conditionnelle ainsi:

p(y|x) = p(y,x)/p(x)

On fait donc un modèle de la densité jointe de x et y et on obtient p(x) en intégrant sur y, ce qui se fait très facilement pour des gaussiennes.

L'estimateur de densité conditionnelle qu'on veut étudier et comparer ici est le suivant:

p(y|x) = (sum_i G(y;y_i,sigma_i^2 I) G(Ax; Ax_i,v_i I) / (sum_i G(Ax; Ax_i,v_i I))

Optionnellement on pourrait aussi tester avec les sigma_i et v_i constants en i (le même pour toutes les Gaussiennes).

Pour apprendre les paramètres (A, sigma_i, v_i) on propose de faire de la descente de gradient sur la log-vraisemblance conditionnelle hors-échantillon, c'est à dire:

- sum_i log( 1/(n-1) sum_{j!=i} G(y_i;y_j,sigma_j^2 I) G(Ax_i; Ax_j,v_j I)

Notez qu'il faudra reparamétriser les sigma et v pour les forcer à être positifs (e.g. v_i = log(1+exp(a_i))).

À ma connaissance cet algorithme est nouveau!

Au moins deux ensembles de données devront être choisis pour évaluer et comparer les algorithmes. Ils devront être divisés en trois parties: "entraînement" (les x_i et y_i dans les formules ci-haut), "validation" (estimation de sigma pour la fenêtre de Parzen, et estimation de A, sigma et v pour la méthode non-paramétrique, choix du nombre m de composantes pour le mélange de Gaussiennes), et "test" (pour estimer la log-vraisemblance conditionnelle espérée).

Références

EM pour mélange de Gaussiennes: voir mes notes, Bishop, ou de nombreux articles dans CiteSeer.

Estimation de densité non-paramétrique de type fenêtre de Parzen: voir mes notes, Bishop, ou de nombreux articles dans CiteSeer.