dimanche 1 juin 2014

TP réseaux neuronaux



Le sujet est "la Détection d'activité humaine via téléphone mobile"

Thématique : nous allons analyser des donnés issues des accéléromètres et gyroscopes de téléphone mobile de personnes faisant des actions particulière : marcher, être assis, être alongé, monter un escalier, etc ...
Objectif : notre objectif sera d'être capable de détecter l'activité d'une personne en utilisant les données de la centrale inertielle du téléphone,et en utilisant un minimum de ressources...


Le sujet
Chaque donné à classifier est un vecteur de 561 valeurs qui sont des estimateurs calculés sur les données de la centrale inertielle du téléphone. Il faut arriver à associer une classe à chaque donnés, en faisant le moins d'erreur possible, et surtout en utilisant le moins de donnés possible. C'est à dire en trouvant le sous-vecteur avec la plus petite taille possible qui permet d'avoir un bon taux prédiction correcte. Ce critère de taille de vecteur minimal correspond à vouloir limiter les calculs que devrait faire le téléphone qui devrait exécuter l'application de détection (à la fois pour la taille du vecteur, mais surtout pour le temps de calculer tous ces paramètres.)
Vous pourrez utiliser deux approches différentes :
  • soit en utilisant la libraire FANN tel qu'on l'a vu en TD.
  • soit vous utilisez la méthode de cartes de Kohonen, en utilisant le programme vu et fourni en TD.Cette méthode n'exigera pas (directement) de programmation. Mais puisqu'il s'agit d'une méthode « non-supervisée », elle risque probablement d'être moins performante que le type de réseau de neurones qu'on peut réaliser avec FANN. Cette méthode étant moins performante et plus simple à mettre en œuvre, elle sera, mécaniquement, moins généreusement notée (voir le barème décrit en fin de ce document). Vous disposez de deux ensembles de données pour entraîner vos réseaux, un ensemble d'entraînement et un ensemble de test, pour lesquels on connaît l'activité correspondant au données. C'est à vous de construire vos protocoles d'apprentissage et donc d'éviter le « sur-apprentissage » en utilisant judicieusement l'ensemble de d'entraînement et de test. À la fin du TP je vous mettrait à disposition un fichier de donnés de validation pour lequel vous ferez la prédiction d'activité. Évidement cet ensemble de donné, contrairement aux deux autres, ne contient pas l'information d'activité correspondant au données. Je pourrais donc mesurer la qualité de votre prédiction puisque je dispose de l'information d'activité correspondant aux données. 
  • Les données
    Voyez les détails sur les donnés dans le document d'origine. Allez voir dans l'archive originale pour avoir tout les détails sur les données, en particulier sur sur ce que sont les 561 paramètres donnés, pour essayer d'en sélectionner les plus pertinent pour la prédiction. Voici ce que sont les 6 classes à identifier : 
    0 WALKING 1 WALKING_UPSTAIRS 2 WALKING_DOWNSTAIRS 3 SITTING 4 STANDING 5 LAYING
    Voyez aussi les deux fichiers attachés à ce mail qui décrivent les 561 paramètres.("feature_info.txt" et "feature.txt").

    Attention, il est primordial que vous utilisiez les données que je vous fourni, car les données de validation qui serviront à la notation vous seront donné à ce format (qui n'est pas celui d'origine!). Donc tous vos programmes de traitement de données devront utiliser ce format. C'est vous qui transformerez les données pour pouvoir être utilisés dans les programmes de votre choix, en particulier pour la sélection du sous-vecteur optimal. Bien sur les données de validation n'auront pas de valeur de label , faites attention à ce que cela ne plante pas votre programme!
    Vous pouvez aussi suivre ce liens correspondant à la compétition officielle sur le sujet. Vous pouvez télécharger TD numéro 2, (téléchargez la dernière version du logiciel, et lisez le fichier "README.txt" qui définit, entre autre, le format des données. 
  • Les données de validation
  • Vous pouvez télécharger les données de validation ici. C'est ces données , ne contenant pas l'information de label, que vous devrez utiliser avec votre système de prédiction et me livrer. Bien sur moi je connais ces valeurs de label correspondant à ces données, je pourrais donc évaluer la performance de votre système.
  • Conseil : Si vous utilisez FANN vous constaterez que le format exige que vous donniez une information de sortie (c'est à dire un label), mais vous ne disposez pas de cette information... Il suffit tout simplement de fournir une information de sortie bidon pour que le format soit accepté. Le programme qui utilise le réseau pour faire les prédictions n'utilise pas ces données, cela ne lui posera donc aucun problème si ces données n'ont pas de sens.
    Attention, à ne pas mélanger les lignes de ce fichier, sinon, quelque soit la vrai précision de votre système, il sera perçu comme très mauvais...
    Conseils méthodologique
  • Commencez d'abord par faire un protocole d'apprentissage et de test avec tous les 561 paramètres. Vous essayerez de n'en sélectionner qu'une sous partie une fois que votre protocole est fonctionnel. Car de toutes façon vous avez besoin du résultat sous forme de matrice de confusion pour savoir si votre sélection de paramètres est bonne ou non...
  • Commencez par utiliser le programme Kohonen car c'est le plus simple à utiliser et il ne demandera pas de changement de format de données.
  • Vous pourrez , ensuite, transformer les données, et mettre en place un protocole d'apprentissage supervisé avec la librairie FANN. C'est vraisemblablement avec de l'apprentissage supervisé qu'on obtiendra les meilleurs résultats...
  • Des idées pour sélectionner les "bons" paramètres vous seront présentées en cours de TP.
La notation
Le TP est à rendre par mail (wassner@esiea.fr) au plus tard le mercredi 13 mars minuit.. L'ensemble des fichiers demandés devra être mis dans une archive (format zip uniquement) dont le nom est la concaténation des noms du binome.
La note de TP sera moyennée avec votre note d'évaluation. Voici le barème pour ce TP :
  • 5 points sur les modalité de rendu (date, format, etc..) . -1 point par jour de retard, -1 point par échange de mail « inutile » (genre « désolé, j'ai oublié d'attacher l'archive au mail... »), et autre erreur de format....
  • 5 points sur la qualité du contenu du rapport (au format PDF uniquement!).Je jugerai la concision, la précision, la présentation, les graphiques, …). Ce rapport devra décrire :
    • les paramètres que vous utilisez en utilisant les numéros indiqués dans le fichier "feature.txt" (attaché à cet article) ainsi que leur nom de paramètre.
    • vous décrirez le protocole d'apprentissage que vous avez mis en oeuvre.
    • et vous donnerez la "performance" de votre prédiction, c'est à dire la matrice de confusion. (donné par le script « confusionMatrix.pl » sur l'ensemble de test.)
  • 5 points sur la performance de votre prédiction sur le fichier de validation.
  • 5 point sur « l' efficacité » c'est à dire arriver à un bon compromis performance pure du système et taille du vecteur utilisé. Plus petit sera le vecteur de paramètres utilisé meilleur sera la note. Attention, si vous avez une bonne performance mais que vous utiliser un vecteur immense, la note sera basse. Et bien sur, si votre vecteur de paramètres est très petit mais que la performance est mauvaise, la note sera basse. Le format de ce fichier doit être respecté à la lettre. une valeur de prédiction par ligne avec uniquement le numéro de la classe [0:5] (suivit d'un retour à la ligne bien sur). Ce fichier doit s'appeller "prediction.txt"
    Exemple:
    2
    2
    2
    2
    2
    5
    5
    ...
    Pour information, la première classe de ce fichier est 2 et la dernière est 3, et comme pour les données précédentes, souvent les classes sont les mêmes à l'instant t et t+1. Je vous donne ces informations pour que vous puissiez bien vérifier vos données avant de les envoyer. Pensez aussi à vérifier votre fichier de prédiction contienne autant de lignes que le fichier de validation.
Je serai présent pour vous aider, et je vous donnerai des indices tout au long des séances de TP.
Bon courage et bon travail.

Annexe(s) :