Projet de l’UE RCP209, semestre 1

Merci de lire et de suivre les instructions ci-dessous.

Instructions

La note finale à l’UE sera la moyenne entre la note à l’examen sur table et la note de projet. Le projet sera réalisé individuellement (seul) ou en binôme, suivant les sujets, et consistera à traiter un problème de modélisation (avec un jeu de données) :

  1. Parmi ceux proposés par les enseignants de l’UE (voir plus loin) ; chacun doit faire son choix via le sondage dédié sur la plateforme Moodle, ouvert en cours de semestre après une annonce sur le forum (généralement suite au 1er cours traitant de la partie deep learning). Lors du choix, seuls sont accessibles les projets qui n’ont pas encore été choisis. Pour un binôme, chaque membre du binôme doit choisir le même sujet. Ne tardez pas, les choix disponibles se restreindont au fur et à mesure que vos collègues feront leurs choix.

  2. Personnalisés, professionnels ou personnels, avec l’accord de l’équipe pédagogique et à condition d’avoir déjà les données ; dans ce cas, il faudra nous envoyer une description suffisante du problème et des données au plus tard le 1er décembre. Pour travailler sur un projet personnel ou d’entreprise nous demandons :

    • que les données soient déjà disponibles (pas de collecte « en cours de projet »),

    • que le problème soit défini explicitement : quelles entrées, quelle(s) sortie(s) ?

    • un récapitulatif du contexte et des caractéristiques du jeu de données: combien de données, combien de variables, quels résultats existants ?

Pour la plupart des sujets proposés il faut réaliser une analyse des données et une modélisation décisionnelle permettant de répondre au problème posé, à l’aide d’une méthode étudiée en RCP209. Justifier les choix de méthode, de paramètres, etc. ; lier les résultats des éventuelles analyses préalables au choix de la ou des méthodes de modélisation.

Le rapport devra inclure une présentation claire mais concise du problème et des données, une définition de l’objectif de l’étude, la démarche choisie et les résultats obtenus, ainsi qu’une conclusion, sans dépasser les 20 pages. D’éventuelles illustrations complémentaires, non essentielles pour la compréhension du travail, pourront être mises dans des annexes (après les \(\leq 20\) pages du rapport).

Le rapport (obligatoirement en PDF) accompagné des programmes que vous avez développés devra être archivé dans un seul fichier .zip et déposé sur Moodle. Pour un binôme, chaque membre du binôme doit déposer le même rapport (cela garantit, en principe, que chaque membre du binôme assume le contenu du rapport). Attention, la taille maximale du fichier est de 20 Mo.

  • au plus tard une semaine après le partiel de session 1, ou

  • au plus tard une semaine après le partiel de session 2

Les rapports seront évalués en deux tranches : ceux déposés au plus tard le 5 février seront évalués en février, ceux déposés après seront évalués en avril. Dans l’évaluation des rapports, nous tiendrons compte du délai supplémentaire significatif dont auront bénéficié les auditeurs qui auront déposé leur projet en avril. Pour les sujets qui peuvent être traités en binôme ou seul, l’évaluation tiendra compte également du mode de réalisation (en binôme ou seul).

En aucun cas le rapport ne sera envoyé par courriel aux enseignants (sauf si un enseignant vous le demande explicitement).

Aussi, il est inutile de nous transmettre un rapport qui traite d’autre chose que du sujet pour lequel vous avez eu notre accord, un tel rapport ne serait pas évalué.

Sujets proposés

Les sujets proposés se divisent en deux catégories : les sujets applicatifs et les sujets méthodologiques.

Pour un sujet applicatif, le projet consiste à implémenter et comparer différents modèles décisionnels pour une tâche donnée. Le jeu de données est fourni et le travail à réaliser consiste en une exploration préparatoire des données et l’évaluation et la sélection d’un ou plusieurs modèles décisionnels adaptés au problème. Il s’agit d’un travail d’analyse qui vous permettra de vous confronter à la modélisation décisionnelle sur des données réelles.

Pour un sujet méthodologique, le projet consiste à implémenter par soi-même une méthode de modélisation décisionnelle de l’état de l’art. Il s’agit généralement de programmer un algorithme décrit dans une publication scientifique. Il s’agit donc plus d’un travail de compréhension et de programmation qui vous permettra d’approfondir votre maîtrise des algorithmes d’apprentissage présentés en cours.

Sujets applicatifs

  1. (seul) Décision d’accorder ou non un crédit bancaire. L’objectif est de classer des individus en 2 classes (crédit risqué ou non risqué) à partir d’un ensemble de variables décrivant les individus. Données (Statlog project German Credit Database) : https://archive.ics.uci.edu/ml/datasets/statlog+(german+credit+data)

  2. (seul) Décision d’accorder ou non une carte de crédit. L’objectif est de classer des individus en 2 classes (accord de la carte ou non) à partir d’un ensemble de variables décrivant les individus. Données (Credit Card Application Approval Database) : http://archive.ics.uci.edu/ml/datasets/Credit+Approval (fichiers crx.names et crx.data)

  3. (seul) Prédiction du débit d’une rivière. L’objectif est de prédire l’évolution du débit d’une rivière à partir de l’historique, de la température et des précipitations dans le bassin hydrographique. Données : http://fisher.stats.uwo.ca/faculty/aim/epubs/mhsets/astatkie/ fisher.1, fishert.1, fisherp.1.

  4. (seul) Prédiction du débit entrant d’un lac. L’objectif est de prédire l’évolution du débit entrant d’un lac à partir de l’historique de ce débit, de la fonte des neiges et des précipitations dans le bassin hydrographique. Données : http://fisher.stats.uwo.ca/faculty/aim/epubs/mhsets/thompsto/

  5. (seul) Détection d’intrusions sur un réseau. L’objectif est de classer des connexions comme étant « normales » ou « malveillantes » à partir d’un ensemble d’éléments de journaux et de connaissances expertes. Données : http://kdd.ics.uci.edu/databases/kddcup99/kddcup99.html

  6. (seul) Wine Quality. L’objectif est de déterminer la qualité d’un vin (de 0 = très mauvais à 10 = exceptionnel) à partir de mesures physico-chimiques. Détails : http://archive.ics.uci.edu/ml/datasets/Wine+Quality

  7. (seul) Détection de publicité. L’objectif est de déterminer si une image rencontrée sur le web est une publicité ou une image classique uniquement à partir des métadonnées et de la structure de la page. Données : https://archive.ics.uci.edu/dataset/51/internet+advertisements

  8. (seul) Statlog Heart. Prédire la présence ou l’absence de maladie du cœur à partir de 13 attributs représentant l’état physiologique du patient (la base contient 270 exemples). Détails : http://archive.ics.uci.edu/ml/datasets/Statlog+(Heart)

  9. (seul) Adult. Prédire le niveau de revenu de personnes (> 50K$/an ou pas) à partir d’un ensemble de caractéristiques. Détails : http://archive.ics.uci.edu/ml/datasets/Adult

  10. (seul) Diabetes. Cette base contient des individus (décrits par 20 attributs) dont certains ont été testés positivement au diabète. Détails : http://archive.ics.uci.edu/ml/datasets/Diabetes

  11. (seul) ISOLET (Isolated Letter Speech Recognition). Chaque instance représente une lettre de l’alphabet prononcée par un de 150 sujets humains. Le but est de prédire la classe (la lettre) pour les échantillons de test. Données : https://archive.ics.uci.edu/dataset/54/isolet

  12. (seul) Car Evaluation. Classification multi-classe de voitures (inacceptable, acceptable, bien, très-bien). 1728 échantillons, 6 features catégorielles. Données : https://archive.ics.uci.edu/ml/datasets/Car+Evaluation

  13. (seul) Spambase. Classification e-mail en spam ou pas-spam. 4601 échantillons, 57 features. Données : https://archive.ics.uci.edu/ml/datasets/Spambase

  14. (seul) SMS Spam. Classification de SMS en spam ou pas-spam. 5574 échantillons, textes complets. Données : https://archive.ics.uci.edu/dataset/228/sms+spam+collection

  15. (seul) Mushroom. Classification champignons (toxiques ou non). 8124 échantillons, 22 attributs. Données : https://archive.ics.uci.edu/ml/datasets/Mushroom

  16. (seul) Earthquakes. 461 séries temporelles univariées de mesures sismiques à classer dans deux catégories: séisme et non-séisme. Données : http://www.timeseriesclassification.com/description.php?Dataset=Earthquakes

  17. (seul) Character Trajectories. 2858 séries temporelles d’un capteur tactile mesurant le tracé d’une lettre. 3 attributs, 20 classes. Données : https://archive.ics.uci.edu/ml/datasets/Character+Trajectories

  18. (en binôme ou seul) Critiques sur IMDB. Déterminer si un commentaire laissé sur IMDB correspond à une critique positive ou négative du film. Données : https://www.tensorflow.org/datasets/catalog/imdb_reviews?hl=fr

  19. (en binôme ou seul) HASYv2 - Handwritten Symbol Classification. Reconnaissance de symboles mathématiques manuscrits parmi 369 classes. Si le nombre d’échantillon est trop grand réduire le nombre de classes. Données : https://zenodo.org/record/259444#.WQC77a3j8uU

  20. (en binôme ou seul) Human Activity Recognition. 180 séries temporelles multivariées collectées à partir de données accélérométriques et gravimétriques de smartphones, à classer parmi 5 types d’activités (assis, debout, marche, escaliers, allongé). Données : https://www.kaggle.com/datasets/uciml/human-activity-recognition-with-smartphones

  21. (en binôme ou seul) Stanford Dogs. Classer des photographiques de chiens (20580 images) parmi 120 races possibles. Données : http://vision.stanford.edu/aditya86/ImageNetDogs/

Sujets méthodologiques

  1. (en binôme ou seul) Implémentation d’un modèle d’embedding vectoriel de mots. Implémenter le modèle Continuous Bag of Words Model (CBOW), dont le principe consiste à partir d’une représentation du contexte d’un mot (sous forme d’un histogramme d’occurence des mots voisins), pour projeter ce vecteur dans un espace vectoriel de dimension donnée (e.g. 200 ou 300 dimensions). Cette projection est ensuite utilisée comme entrée pour un classifieur multi-classes dont l’objectif est de reconnaître le mot central (parmi l’ensemble du vocabulaire). Une analyse qualitatative de la représentation continue apprise sera menée, notamment à travers la sémantique des projections et la possibilité d’utiliser des opérations algébriques intuitives (e.g. vec(“Paris”) – vec(“France”) + vec(“Italy”) = ?). Voir https://papers.nips.cc/paper/5021-distributed-representations-of-words-and-phrases-and-their-compositionality.pdf

  2. (en binôme ou seul) Implémentation d’un modèle t-Stochastic Neighbor Embedding (t-SNE) inductif (paramétrique) avec Keras. La t-SNE est une méthode transductive d’apprentissage (http://www.jmlr.org/papers/volume9/vandermaaten08a/vandermaaten08a.pdf) : la projection est optimisée pour un jeu de données, le calcul de la projection d’un nouveau point est impossible sans optimiser à nouveau le modèle sur l’ensemble du corpus d’apprentissage. On s’intéressera à une variante inductive avec réseaux de neurones profonds. On comparera la méthode à l’ACP, à la t-SNE classique et on évaluera les performances en généralisation.

  3. (en binôme ou seul) Apprentissage profond semi-supervisé. L’apprentissage semi-supervisé consiste à exploiter des données non annotées en plus de données annotées pour l’entraînement de modèles d’apprentissage. On s’intéressera dans ce projet à l’entraînement de réseaux de neurones profonds dans ce contexte. En plus d’une d’une fonction de coût classique d’entropie croisée pour optimiser le réseau à partir d’exemples étiquetés, on exploitera un coût de « stabilité » pour les exemples non annotés. Concrètement, pour les données non annotées, on imposera que deux augmentations de données différentes soient classées de la même façon. Des expérimentations seront menées sur des bases de données classiques de la littérature (MNIST, CIFAR), en utilisant un « faible » nombre d’exemple annotés. Références : https://papers.nips.cc/paper/6333-regularization-with-stochastic-transformations-and-perturbations-for-deep-semi-supervised-learning.pdf, https://openreview.net/pdf?id=BJ6oOfqge

  4. (en binôme ou seul) Visualisation des représentations internes des réseaux convolutifs profonds. Malgré leurs très bonnes performances, les réseaux convolutifs profonds n’offrent pas naturellement d’interprétation du résultat de prédiction. On mettra ici en place une méthode pour visualiser les représentations internes basée sur des réseaux déconvolutifs : https://arxiv.org/pdf/1311.2901.pdf. On visualisera les poids des différentes couches d’un réseau appris sur ImageNet, par ex. AlexNet ou VGG16.

  5. (en binôme ou seul) Distillation de modèle. Les réseaux de neurones de l’état de l’art sont généralement complexes et coûteux en temps de calcul. Il a été montré que des approches dites de « distillation » permettent de transférer les connaissances d’un réseau de neurones complexe à un réseau de neurones plus simple, et donc plus économe en calculs. On implémentera une méthode de distillation utilisant la régression des logits d’un réseau complexe (par ex. un ResNet-50) entraîné sur le jeu de données CIFAR-10 ou CIFAR-100 vers un réseau plus simple (par ex. un ResNet-18).

  6. (en binôme ou seul) Attaque adverse. Les réseaux de neurones, bien que performants, sont sensibles à des petites perturbations dans les entrées. Ainsi, l’ajout d’un bruit imperceptible à l’œil nu peut changer entièrement la classe prédite par le modèle. On implémentera ici la méthode la plus courante pour générer de telles attaques adverses dite Fast Gradient Signed Method pour divers modèles pré-entraînés sur ImageNet. Référence : https://arxiv.org/abs/1412.6572

  7. (en binôme ou seul) Détection d’objets dans les images. L’objectif sera de détecter des objets dans les images et de les localiser avec un rectangle englobant. On ré-implémentera l’algorithme R-CNN, qui consiste d’abord à extraire des régions candidates dans les images, puis à classer chaque région parmi K+1 classes (K classes d’objets, une classe pour le fond). On évaluera la méthode sur un jeu de données public comme Pascal VOC 2007 ou Microsoft COCO. Référence : https://www.cv-foundation.org/openaccess/content_cvpr_2014/papers/Girshick_Rich_Feature_Hierarchies_2014_CVPR_paper.pdf

  8. (en binôme ou seul) Segmentation sémantique d’images. La segmentation sémantique d’images consiste à assigner un concept catégoriel à chaque pixel d’une image. On implémentera une version simplifiée de l’algorithme DeepLab, qui se base sur l’utilisation de réseaux « complètement convolutifs » pour calculer la prédiction de classe efficacement. On évaluera la méthode sur les bases publiques PASCAL VOC ou MS-COCO. Ce sujet nécessite l’utilisation de GPU. Voir https://arxiv.org/pdf/1606.00915.pdf

  9. (en binôme ou seul) Génération de texte par RNN. Les réseaux de neurones récurrents permettent de prédire le prochain élément d’une séquence. Cette propriété peut être mise en application pour apprendre un modèle de langage capable de compléter une phrase ou un mot. On implémentera un RNN pour générer des séquences de texte (cf. https://www.cs.toronto.edu/~jmartens/docs/RNN_Language.pdf), soit au niveau des caractères, soit au niveau des mots. Si le modèle a été entraîné au niveau des caractères, on évaluera également ses performances pour la correction orthographique automatique.