Projet de l’UE RCP209, semestre 2

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 ici sur Moodle, avant le 19 avril 2023. Lors du choix, seuls sont accessibles les projets qui n’ont pas encore été choisis. Notez le choix que vous faites car le système ne vous affiche pas ce choix ensuite. 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. 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 14 avril 2023.
    • 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é ici 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 le 19 juin 2023 ou

  • au plus tard le 4 septembre 2023 – date limite ferme !

Les rapports seront évalués en deux tranches : ceux déposés en juin seront évalués en juin, ceux déposés après seront évalués en septembre. 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 septembre. 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) Etude de l’attrition de la clientèle d’une compagnie de télécoms. Données : http://cedric.cnam.fr/~ferecatu/RCP209/projets/CHURN.zip

  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) Communities and Crime. L’objectif est de prédire le nombre de crimes violents pour 100k habitants à partir de données relatives aux crimes et communautés américaines. Détails : http://archive.ics.uci.edu/ml/datasets/Communities+and+Crime

  8. (seul) Statlog Australian Credit Approval. Évaluation de la possibilité de crédit accordée aux clients australiens d’une certaine banque en fonction de 14 attributs. Détails : http://archive.ics.uci.edu/ml/datasets/Statlog+(Australian+Credit+Approval)

  9. (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)

  10. (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

  11. (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

  12. (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/ml/support/ISOLET

  13. (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

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

  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 : https://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) HASYv2 - Handwritten Symbol Classification : 150000 éléments (symboles mathématiques manuscrites) en 369 classes. Si le nombre d’échantillon est trop grand réduire le nombre de classes. Données : https://zenodo.org/record/259444#.WQC77a3j8uU

  19. (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, réparties dans 5 types d’activités (assis, debout, marche, escaliers, allongé). Données : https://www.kaggle.com/datasets/uciml/human-activity-recognition-with-smartphones

  20. (en binôme ou seul) Stanford Dogs. Classification de 20580 photos de chiens en 120 catégories. 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) Artistic Style Transfer (Deep Dream). Les représentations internes ont montré leur capacité à capturer des informations visuelles sémantiques. En particulier, on peut utiliser cet espace sémantique pour transférer sur des images le style artistique d’une peinture : http://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Gatys_Image_Style_Transfer_CVPR_2016_paper.pdf. On mettra en place et testera cette méthode.

  6. (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).

  7. (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

  8. (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 les bases publiques PASCAL VOC ou MS-COCO. Référence : https://www.cv-foundation.org/openaccess/content_cvpr_2014/papers/Girshick_Rich_Feature_Hierarchies_2014_CVPR_paper.pdf

  9. (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