Difference between revisions of "Fiche de suivi - Recommandation intelligente de films"

From air
Jump to navigation Jump to search
Line 50: Line 50:
   
 
===Tâches du Sprint1===
 
===Tâches du Sprint1===
  +
* Établissement des vues principales côté client (recherche et annotation de films)
* Etablissement des différentes vues
 
 
* Mise en place de tout le processus de pré-traitement des données et du premier layer (Embedding)
 
* Mise en place de tout le processus de pré-traitement des données et du premier layer (Embedding)
* Création du classifieur et de la structure de test
+
* Création du classifieur (réseau neuronal) et de la structure de test du modèle crée
 
* Récolter des données pour pouvoir tester le classifieur
 
* Récolter des données pour pouvoir tester le classifieur
 
* Commencer l'entrainement et l'ajustement du classifieur une fois la structure mise en place
 
* Commencer l'entrainement et l'ajustement du classifieur une fois la structure mise en place
   
 
=== Semaine 2 : 30/01 - 05/02 ===
 
=== Semaine 2 : 30/01 - 05/02 ===
  +
 
====Lundi====
 
====Lundi====
* Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint
 
* Etablissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche
 
* Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard
 
   
  +
* Préparation du premier sprint :
 
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint
 
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche
 
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard
  +
* Mise au point sur l'arborescence du git / architecture du projet
 
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU
   
 
====Mardi====
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un GPU intéressant (Elsa)
 
* Vue consultation des films annotés (Quentin)
 
* Poursuite de la mise en place de l'embedding (Edwin)
 
* Mise en place d'une librairie pour le traitement des données envoyées aux classifieur (Julian)
 
* Poursuite de la recherche de l'utilisation Word2Vec pour le pre-processing du Résumé de film (Coralie)
 
* Etablissement des vues du site (Quentin, Elsa)
 
 
   
 
* Réunion avec Didier Donsez :
 
* Réunion avec Didier Donsez :
** storm, spark flint (temps réel) pour Twitter
+
** Technologies : storm, spark, flint (temps réel) pour Twitter
** préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker
+
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker
** utiliser Github pour héberger le site web
+
** Utiliser Github pour héberger le site web
   
 
* Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)
====Mardi====
 
  +
* Creation d'un premier classifieur simple sur les données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)
* Import des modules (Julian)
 
* Travail sur l'arborescence de git (Julian, Coralie, Elsa, Edwin)
+
** prétraitement des textes via Doc2Vec (Coralie)
  +
** prétraitement des mots via Glove (Elsa, Edwin, Julian)
* Premier classifieur simple (Edwin)
 
  +
** récupération des données (Julian)
 
** mise en place de l'embedding (Edwin)
 
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)
 
** Import des modules (Julian)
   
 
====Mercredi====
 
====Mercredi====
  +
* Recherche d'un moyen de distribuer le classifieur Keras - Elephas(Coralie)
+
* Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)
* Chargement d'images (Quentin)
+
* Chargement des images de films côté client (Quentin)
* Preprocessing des genres (Julian)
 
  +
* Poursuite du premier classifieur simple sur les données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)
* Preprocessing des autres données (texte et numériques) (Edwin)
 
  +
** prétraitement des textes via Doc2Vec (Coralie)
* Lien classifieur simple - extraction des données JSON et API - preprocessing en cours (Elsa)
+
** extraction des données JSON via l'API (Elsa)
 
** prétraitement des genres (Julian)
  +
** prétraitement général (mise en forme de la matrice de données) (Edwin)
  +
** revue de code (Julian)
   
 
====Jeudi====
 
====Jeudi====
  +
 
* Cours de MPI - travail sur la communication au sein d'un groupe
 
* Cours de MPI - travail sur la communication au sein d'un groupe
 
* Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)
 
* Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)
Line 97: Line 104:
   
 
====Vendredi====
 
====Vendredi====
  +
* Début de la mise à jour de classifieur pour obtenir de bons résultats (Elsa & Edwin)
+
* Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)
 
* Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)
 
* Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)
* Insertion de Doc2Vec dans le classifieur (Julian) pour le test
+
* Insertion de Doc2Vec dans le classifieur (Julian)
* Auto-formation sur Docker (Coralie, Edwin, aide de Quentin)
+
* Auto-formation sur Docker (Coralie, Edwin)
 
* Déploiement sur github.io (Quentin)
 
* Déploiement sur github.io (Quentin)
 
* Annotation de films pour constituer la base d'apprentissage/test (Tous)
 
* Annotation de films pour constituer la base d'apprentissage/test (Tous)
  +
   
 
=== Semaine 3 : 06/02 - 12/02 ===
 
=== Semaine 3 : 06/02 - 12/02 ===
  +
 
====Lundi====
 
====Lundi====
  +
  +
* Cours de MPI - Cours sur la gestion de projet
  +
* Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)
  +
* Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)
  +
* (Elsa)
  +
* (Julian)
  +
* (Quentin)
  +
   
 
====Mardi====
 
====Mardi====
  +
  +
* Rendez-vous avec Mr. Amini
  +
* Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)
  +
* Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).
  +
* (Elsa)
  +
* (Julian)
  +
* (Quentin)
   
 
====Mercredi====
 
====Mercredi====
  +
  +
* Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison :
  +
** Réseau neuronal avec Keras (Elsa)
  +
** Perceptron (Coralie)
  +
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)
  +
* Ajout de Spark à l'image Docker (Edwin)
  +
* Création de statistiques sur les goûts utilisateurs côté client (Quentin)
   
 
====Jeudi====
 
====Jeudi====
  +
  +
* Poursuite des tests de performance :
  +
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)
  +
** Test du réseau neuronal (Elsa)
  +
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)
  +
* Test de l'image Docker (Edwin)
  +
* Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)
   
 
====Vendredi====
 
====Vendredi====

Revision as of 19:59, 9 February 2017

Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017

Page d'accueil du projet

Équipe

  • Rachex Coralie (Chef de projet - Scrum Master)
  • Niogret Edwin (Responsable innovation)
  • Hattinguais Julian (Responsable qualité)
  • Navarro Elsa (Responsable communication, Médiatrice)
  • Dunand Quentin (Responsable des deadlines,Responsable du front-end)

Avancée du projet

Sprint 0

Sprint dédié aux travaux préparatoires du projet

  • Debriefing autour du projet
  • Renseignements sur les technologies et principaux défis techniques
  • Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités)
  • Choix technologiques
  • Préparation des environnements
  • Établissement de la liste des exigences fonctionnelles et non fonctionnelles


Sprint0-Semaine1.jpg

Semaine 1 : 23/01 - 29/01

  • Mise en place du wiki (Edwin)
  • Recherche sur les technologies et les problèmes techniques (Tous)
  • Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)
  • Mise en place d'un agenda pour le suivi du projet (Coralie)
  • Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)
  • Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.
  • Installation, compréhension et manipulation de Keras (Tous)
  • Recherche mise en place API-REST Python pour le back-end (Julian)
  • Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)
  • Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)
  • Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)
  • Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de GloVe.


  • Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)
  • Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).
  • Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).
  • Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).

Sprint 1

Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.

Sprint1-Scrumboard.png

Tâches du Sprint1

  • Établissement des vues principales côté client (recherche et annotation de films)
  • Mise en place de tout le processus de pré-traitement des données et du premier layer (Embedding)
  • Création du classifieur (réseau neuronal) et de la structure de test du modèle crée
  • Récolter des données pour pouvoir tester le classifieur
  • Commencer l'entrainement et l'ajustement du classifieur une fois la structure mise en place

Semaine 2 : 30/01 - 05/02

Lundi

  • Préparation du premier sprint :
    • Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint
    • Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche
    • Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard
  • Mise au point sur l'arborescence du git / architecture du projet
  • Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU

Mardi

  • Réunion avec Didier Donsez :
    • Technologies : storm, spark, flint (temps réel) pour Twitter
    • Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker
    • Utiliser Github pour héberger le site web
  • Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)
  • Creation d'un premier classifieur simple sur les données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)
    • prétraitement des textes via Doc2Vec (Coralie)
    • prétraitement des mots via Glove (Elsa, Edwin, Julian)
    • récupération des données (Julian)
    • mise en place de l'embedding (Edwin)
    • mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)
    • Import des modules (Julian)

Mercredi

  • Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)
  • Chargement des images de films côté client (Quentin)
  • Poursuite du premier classifieur simple sur les données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)
    • prétraitement des textes via Doc2Vec (Coralie)
    • extraction des données JSON via l'API (Elsa)
    • prétraitement des genres (Julian)
    • prétraitement général (mise en forme de la matrice de données) (Edwin)
    • revue de code (Julian)

Jeudi

  • Cours de MPI - travail sur la communication au sein d'un groupe
  • Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)
  • Pagination et chargement d'images (Quentin)
  • Lien classifieur simple - preprocessing terminé (Elsa, aide d'Edwin)
  • Installation version GPU sur PC (Julian)
  • Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)

Vendredi

  • Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)
  • Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)
  • Insertion de Doc2Vec dans le classifieur (Julian)
  • Auto-formation sur Docker (Coralie, Edwin)
  • Déploiement sur github.io (Quentin)
  • Annotation de films pour constituer la base d'apprentissage/test (Tous)


Semaine 3 : 06/02 - 12/02

Lundi

  • Cours de MPI - Cours sur la gestion de projet
  • Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)
  • Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)
  • (Elsa)
  • (Julian)
  • (Quentin)


Mardi

  • Rendez-vous avec Mr. Amini
  • Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)
  • Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).
  • (Elsa)
  • (Julian)
  • (Quentin)

Mercredi

  • Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison :
    • Réseau neuronal avec Keras (Elsa)
    • Perceptron (Coralie)
    • Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)
  • Ajout de Spark à l'image Docker (Edwin)
  • Création de statistiques sur les goûts utilisateurs côté client (Quentin)

Jeudi

  • Poursuite des tests de performance :
    • Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)
    • Test du réseau neuronal (Elsa)
    • Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)
  • Test de l'image Docker (Edwin)
  • Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)

Vendredi

Sprint 2

Semaine 4 : 13/02 - 19/02

Lundi

Mardi

Mercredi

Jeudi

Vendredi

Semaine 5 : 20/02 - 26/02

Lundi

Mardi

Mercredi

Jeudi

Vendredi

Sprint 3

Semaine 6 : 27/02 - 05/03

Lundi

Mardi

Mercredi

Jeudi

Vendredi

Semaine 7 : 06/03 - 12/03

Lundi

Mardi

Mercredi

Jeudi

Vendredi