.. _projet2019-2020s1: ##################### Projet de l'UE RCP209 ##################### 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) : #. Parmi ceux proposés par les enseignants de l'UE (voir plus loin) ; chacun doit faire son choix `ici sur Moodle `_, de préférence avant le **13 avril 2020**. 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. #. Professionnels ou personnels, avec l'accord d'un des enseignants ci-dessus 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 **12 avril 2020**. 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 :math:`\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 20 juin 2020 ou - au plus tard le 12 septembre 2020 – date limite **ferme** ! Les rapports seront évalués en deux tranches : ceux déposés au plus tard le 20 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 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 *************** #. **(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) `_ #. **(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) #. **(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. #. **(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/ `_ #. **(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 `_ #. **(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 `_ #. **(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 `_ #. **(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) `_ #. **(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) `_ #. **(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 `_ #. **(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 `_ #. **(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 `_ #. **(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 `_ #. **(seul) Spambase.** Classification e-mail en spam ou pas-spam. 4601 échantillons, 57 features. Données : `https://archive.ics.uci.edu/ml/datasets/Spambase `_ #. **(seul) Mushroom.** Classification champignons (toxiques ou non). 8124 échantillons, 22 attributs. Données : `https://archive.ics.uci.edu/ml/datasets/Mushroom `_ #. **(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 `_ #. **(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/ `_ #. **(en binôme ou seul) Implémentation d'un modèle d'embedding vectoriel de mots.** On se basera sur le modèle Continuous Bag of Words Model (CBOW), dont le principe consite à 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 `_ #. **(en binôme ou seul) Implémentation d'un modèle t-Stochastic Neighbor Embedding (t-SNE).** L'algorithme t-SNE est une méthode très performante pour la visualisation de données. Le principe de l'algorithme consiste à projeter des points dans le plan 2D, de sorte que la dissimilarité dans le plan reflète la dissimilarité initiale en plus grande dimension. L'objectif est d'implémenter l'algorithme en Python à partir d'une descente de gradient stochastique. On visualisera les données sur la base de test de MNIST. Reférence : `http://www.jmlr.org/papers/volume9/vandermaaten08a/vandermaaten08a.pdf `_ #. **(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. #. **(en binôme ou seul) Apprentissage semi-supervisé et deep learning.** 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. 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 : ``_, ``_ #. **(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. #. **(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. #. **(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 : ``_ #. **(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 `_ .. Voir ``_