Teaching - RFIDEC


RFIDEC

Examen de milieu de semestre:

Voir la page de C. Gonzales:

http://webia.lip6.fr/~gonzales/teaching/rfidec/index.php

Examen de fin de semestre:

  • Droit aux notes de cours et aux slides
  • Le programme commence aux cours de P. Gallinari.
  • Les slides sont sur la page de P. Gallinari ainsi que l'exam corrigé de l'an dernier.

http://www-connex.lip6.fr/~gallinar/Enseignement/Enseignement.html


Supports de TD/TME

tdtmeESILDV.pdf


Séance 1: les mécanismes de la classification binaire

  • Compréhension des mécanismes de décision linéaire
  • Mise en oeuvre d'algorithmes de base:
    • knn
    • perceptron
  • Etude quantitative basique
    • pourcentage de bonne classification
    • évolution des performances en fonction de k ou en fonction du bruit présent dans les données
  • Etude qualitative
    • tracé des frontières de décision
    • observation des mouvements de la frontière lors de l'apprentissage du perceptron sur des exemples 2D.

Code Divers - Séance 1

Génération de données jouet 2D : dataset.m

k plus proches voisins : knn.m

Tracé d'une frontière sur des exemples 2D

generateGrid.m
plotFrontiere.m

 usage:
% xapp, k existent... ngrid = 30; % resolution de la grille xgrid = generateGrid(xapp, ngrid); ygrid = modele(xgrid); % determiner la classe des xgrid en utilisant un modele plotFrontiere(xgrid, ygrid);

Séance 2: classification avancée, non linéaire et descente de gradient

  • Rappels rapides sur la descente de gradient/fonction de coût des moindres carrés
  • Etude de la stabilité de la descente de gradient dans le cas 2D
    • Calcul de la solution analytique d'un problème au sens des moindres carrés
    • Mise en oeuvre d'ADALINE
    • Etude de l'évolution des coefficients w au cours des itérations: mise en évidence des phénomènes de divergence et de sous-apprentissage
    • OPT: Etude de l'évolution de la frontière de décision au cours des itérations
  • Passage au non-linéaire
    • cas polynomial
    • cas gaussien
  • Mise en évidence du phénomène de sur-apprentissage
  • Outils robustes d'évaluation des performances
    • Validation Croisée
    • Leave one out

NB: programme assez dense pouvant déborder sur la séance 3

Code Divers - Séance 2

Projection dans d'autres espaces (notamment gaussiens) svmkernel.m

Validation croisée : crossval.m

Cas d'usage en classification: les données usps.zip

  • Visualisation de quelques images et compréhension du problème
  • Tests des différents algorithmes sur ces données
    • Evaluation des performances sur l'ensemble de test
    • Fusion des données et évaluation en validation croisée/LOO
  • En fonction du temps disponible, modélisation bayesienne: chaque pixel est modélisé par une gaussienne, la probabilité d'appartenir à une classe est la vraisemblance sur l'ensemble des pixels composant l'image.

Séance 3: régression et introduction au réseaux de neurones

  • Régression linéaire
    • générer des données selon une droite en ajoutant un bruit gaussien
 a=2; 
 b=5;
 sigma = 1.5;
 x = -10:0.1:10;
 y = a*x + b + randn(size(x))*sigma; 
  • Construire un modèle pour prédire a et b. Vous trouverez la solution analytique qui minimise l'erreur au sens des moindres carrés.
  • Régression non linéaire (multi-dimensionnelle)
    • soient les données suivantes:
 a=2; 
 b=5;
 c=1; 
 sigma = 1.5;
 x = -3:0.01:2;
 y = a*x.^2 + b*x + c + randn(size(x))*sigma; 
  • Construire un modèle linéaire, montrer ses limites et étendre la représentation de x pour construire un modèle non linaire.
  • Passage sur des vraies données: donneesWine.zip
    • Charger les données d’oenologie: la dernière colonne donne la note de l'expert, les autres donnent les caractéristiques chimiques.
    • Séparer un ensemble d'apprentissage (1/4 des données) et un ensemble de test (3/4 des données)
    • Construire un modèle de régression
    • Etudier l'erreur:
      • au sens des moindres carrés
      • en erreur de notation (après avoir arrondi vos prédictions)
    • Mettre en évidence le problème de la normalisation des données
      • Centrer et réduire les colonnes descriptives SANS TRICHER (attention aux ensembles d'apprentissage et de test)
      • Montrer l'évolution de l'erreur après normalisation

Réseaux de neurones

Les fonctions proposées dans le package suivant RNA.zip permettent de mettre en oeuvre un réseau de neurones:

Fonctionnement général:

  • Initialisation et définition de la structure
  • Boucle d'apprentissage
    • Propagation
    • Rétro-propagation
  • Reprendre les exemples de classification ou de régression précédents.
  • Tracer l'évolution de l'erreur en fonction des itérations sur des réseaux simples (1 couches cachée, peu de neurones) et plus complexes:
    • en apprentissage
    • en test
  • Mettre en évidence le phénomène de sur apprentissage
  • Etablir un protocole de test des réseaux de neurones sur les données réelles d'oenologie et USPS.