Enoncé et corrigé de l'examen du 27/05/2010

Date et horaires définitifs de soutenance

Comme annoncé en séance de TP, les soutenances (sur machine) auront lieu le jeudi 6 mai 2010 de 8h30 à 11h en salle de TP habituelle. Les détails de la soutenance sont donnés ci-dessous.

Les étudiants peuvent effectuer leur soutenance sur leur propre machine (le makefile doit être accessible).

Le fichier de chiffres de test se trouve . Cette archive est constituée de 4 fichiers :

  • digits_test_noheader_minus : pas d’en-tête de fichier, les vraies classes sont remplacées par des -1
  • digits_test_noheader_noclass : pas d’en-tête de fichier, pas d’information de classe
  • digits_test_header_minus : en-tête de fichier, les vraies classes sont remplacées par des -1
  • digits_test_header_noclass : en-tête de fichier, pas d’information de classe

Les étudiants m’enverront par mail les classes prédites par leur réseau de neurones dans un fichier dont le nom est <nometudiant1><nometudiant2>_pred.txt.

Programmation C

Description

  • Description du projet de réseaux de neurones : pdf (version corrigée – cf. ci-dessous)
  • Pour se lancer : pdf
  • Les chiffres d’entraînement : digits_train.csv.bz2

A partir du lundi 15 Mars 2010, toutes les séances de programmation C se dérouleront en salle de travaux pratiques. Elles seront consacrées à la réalisation du projet et permettront également d’élucider certaines questions pratiques/algorithmiques/techniques.

Travail à faire, calendrier

Ce projet est à réaliser par groupes de 2 étudiants au maximum (pour la constitution de groupes de 3, voir avec moi).

Le projet donnera lieu à un rapport de 10 pages au maximum dans lequel seront expliqués les différents choix de programmation effectués, les structures de données principales, les fonctions majeures, et les raisons qui ont motivé leur choix.

Des commentaires critiques sur l’apprentissage par réseaux de neurones, l’efficacité de la descente de gradient (stochastique), l’impact du nombre de neurones portés par la couche cachée seront Quelques résultats rapportant les taux de bonne classification du réseau de neurones seront donnés dans ce rapport.

Le rapport, avec le code, doit être rendu le lundi 3 mai 2010, 23:59pm et une soutenance sur machine aura lieu le vendredi 7 mai jeudi 6 mai 2010 à partir de 8h30 et jusqu’à 11h, en salle habituelle de TP.

La répartition des points est donnée dans la description du sujet.

Format du fichier d'évaluation

Le fichier d’évaluation, qui contiendra la description de chiffres manuscrits non présents dans la base de chiffres d’entraînement fournie, sera disponible en 2 formats

  • un format semblable à celui du fichier d’entraînement, avec des -1 en dernière position de chaque ligne (au lieu du chiffre réellement représenté)
  • un format où chaque ligne contient 256 nombres, au lieu des 257 du fichier d’entraînemen; en d’autres termes, l’information de classe/catégorie (i.e. chiffre représenté) est enlevée de ce fichier.

Lorsque testé sur ce fichier, le programme devra enregistrer dans un fichier les prédictions (une par ligne) qu’il aura effectuées. Ces prédictions seront alors comparées à un autre fichier contenant les prédictions correctes; cette comparaison servira à une partie de l’évaluation de votre projet. De manière plus précise, si le fichier d’évaluation contient 5 descriptions, le programme réalisé devra créer un fichier de la forme:

1

0

3

6

2

qui sont les 5 prédictions effectuées par le réseau de neurones pour les 5 descriptions d’images fournies.

Erratum !!

Attention, la description de l’algorithme de rétro-propagation contenait une erreur, qui est maintenant corrigé dans le sujet téléchargeable ci-dessus. Il faillait lire +η et non -η.

Addendum (du 19 avril 2010) !!

Une nouvelle version de l’algorithme de rétro-propagation du gradient, qui explicite les équations de mise à jour pour les poids des connexions allant de la couche d’entrée à la couche cachée et celles pour les poids des connexions allant de la couche cachée à la couche de sortie, est disponible (aucun contenu ajouté, juste une autre manière de présenter les choses) ici.

Tips

  • Utilisation de strtok : ici