Teaching - MQIA


MQIA

Proposition d'annale/correction 2006/2007:
MQIA2012_Annales0607.pdf

Enoncés & ressources:

MQIA_2012_TDTME_1_5.pdf

MQIA_2012_TDTME_6_10.pdf

TutorielOctave.pdf


Données utilisées au cours du semestre:

Données chiffres manuscrits USPS: usps.zip
Génération de problèmes jouets: dataset.m


Pour ceux qui n'ont pas fait RFIDEC:

Tutoriel octave: lien


Pour tracer des frontières de décision et des courbes complexes:

lien


TD/TP2 : Sur-apprentissage

Ressources TP: zip

L'usage de phiGauss est complexe... Il s'agit d'une projection des données sur d'autres données. Afin d'être un peu plus clair, j'ai mis une nouvelle version de la fonction en ligne (ci-dessus). L'aide de la nouvelle fonction est la suivante:

 function xg = phiGauss(x, phiOption)
 %
 % USE :  xg = phiGauss(x, phiOption)
 %  phiOption = {sigma, muGauss}
 %  phiOption est une cell composee de l'ecart-type sigma et des centres des  gaussiennes
 %

Nous allons projeter toutes les données sur xapp: toutes les données auront donc une dimension napp et le vecteur w appris seront des pondérations de l'influence des points d'apprentissage.

Usage en apprentissage: projection de xapp sur xapp:

 sigma = 0.3;
 xapp_g = phiGauss(xapp, {sigma, xapp})

Usage en test: projection de xtest sur xapp:

 xtest_g = phiGauss(xtest, {sigma, xapp})

Attention à l'usage sur la grille, il ne faut pas s'emmêler les idées: 1) construction de la grille à partir de xapp (PAS xapp_g)

 xgrid = generateGrid(xapp,ngrid);

2) evaluation du modèle sur toute la grille 2.1) projection de xgrid sur xapp

 xgrid_g = phiGauss(xgrid, {sigma, xapp})

2.2) application du modèle précédemment appris

 ygrid = xgrid_g * w;

3) affichage de la frontière. ATTENTION, l'affichage est dans le repère original, il faut fournir xgrid (PAS xgrid_g)

 plotFrontiere(xgrid, ygrid);

TD/TP4 : Réseaux de neurones

Sources pour le TME : zip
Fichiers modèles : zip
Pour le traitement en bloc: propPMC.m

TD/TP5 : Réseaux de neurones retro propagation

Sources pour le TME : zip
TRAITEMENT EN BLOC par défaut:

  • attention aux dimensions des matrices
  • c'est à vous de faire les bons appels pour simuler un gradient stochastique

TD/TME 6 : Apprentissage non supervisé

Énoncé TD: pdf
Énoncé TME: pdf
Sources pour le TME: zip

TD/TME 7 : EM, estimation de densité

Énoncé TD: pdf
Énoncé TME: pdf

Données iris : iris.dat contient les variables iris et y. Pour plus de détails (après le TME!): http://archive.ics.uci.edu/ml/datasets/Iris

Pour afficher les densités de probabilités:

  % Generation des points de l'espace 2D en fonction des bornes de x
  ngrid = 30;
  xgrid = generateGrid(x, ngrid);
  for i=1:k % pour tous les modèles de la mixture
    % on ajoute un epsilon sur la diagonale de la 
    % matrice a inverser pour stabiliser
    % l'application numerique
      probaGrid(:,i) = 1/(2*pi*sqrt(det(sig{i}+eye(d)*1e-9))) *...
	  exp( -0.5*diag((xgrid-repmat(mu(i,:), ngrid^2, 1) ) *...
			 inv(sig{i}+eye(d)*1e-9) *...
			 (xgrid-repmat(mu(i,:), ngrid^2, 1) )'));
      plotDensite(xgrid, probaGrid(:,i));
  endfor

generateGrid.m
plotDensite.m

TD/TME 8 : chaines de Markov

Énoncé TD: pdf
Énoncé TME: pdf
Données velib: zip

TD/TME 8 : chaines de Markov cachées

Énoncé TD: pdf
Énoncé TME: pdf
Données manuscriptes: zip

TD/TME 9 : chaines de Markov cachées (suite)

Énoncé TD: pdf
Énoncé TME: suite de la semaine précédente

Fonctions: zip
Les fonctions ne sont pas documentées mais le main en montre le fonctionnement

Correction sur l'estimation de densité de probabilités

l'archive suivante contient la correction du TME:
estimationProbabilite.zip
Le main se trouve dans estimProba.m, il propose une expérience dans laquelle on teste le comportement de l'algorithme en fonction du nombre de gaussiennes dans le modèle.

Votre travail consiste à comprendre le code fourni et notamment l'estimation de la gaussienne multidimensionnelle (cf wikipedia). Si vous ne comprenez pas l'appel à diag, recoder cette partie de la méthode en utilisant une simple boucle for.

Vous ferez ensuite tourner ce code sur les données USPS de manière non supervisée et évaluerez les performances du modèle.

Enfin vous effecturez l'expérience suivante:

  • pour chaque classe de USPS: construire un modèle de densité de probabilité à partir de 3 gaussiennes.
  • apprendre les modèles à partir des données d'apprentissage
  • estimer les proba p(x/Modele) pour les données de test
  • donner les performances de ce modèle sur les 10 classes en test
  • comparer les performances avec le knn et avec un modèle à une seule gaussienne.