Implémentation d’une méthode d’apprentissage par transfert basée sur la complexité

Encadrants : 

Occurrences : 

2016

Nombre d'étudiants minimum: 

2

Nombre d'étudiants maximum: 

4

Nombre d'instances : 

1

La classification est un problème de machine learning dans lequel l’ordinateur doit apprendre à attribuer des classes à des données à partir d’observations. Par exemple, un système de classification pour un commerce en ligne peut apprendre à distinguer les bons clients des mauvais clients à partir de données telles que le temps passé sur le site, le nombre de clics sur des articles et la somme moyenne dépensée sur le site.

Un problème de classification se fait toujours en deux étapes : tout d’abord, le système apprend à classifier, à partir de données fournies avec leur label ; une fois l’apprentissage terminé, le système est supposé pouvoir traiter n’importe quelles données qui lui seront soumises. Ces nouvelles données, fournies sans label cette fois, sont appelées données de test.

Classiquement, les données d’entraînement et les données de test ont la même distribution. Néanmoins, en pratique, cette hypothèse est souvent fausse : par exemple, en période de Noël, le comportement des clients sur un site de commerce est très différent de leur comportement en temps normal. Dans ce cas, la règle de décision apprise doit être adaptée, ou transférée, au nouveau problème.

Ce projet s’intéresse à ce cas où les données d’entraînement et les données de test n’ont pas la même distribution. Il s’articule autour de l’idée qu’il est possible de transférer la connaissance apprise « à moindre coût ». Il s’articule en plusieurs phases :

  1. Lecture et compréhension d’un article scientifique

  2. Design et code d’un algorithme naïf directement issu de l’article

  3. Visualisation des données et des modèles appris

  4. Amélioration du modèle proposé par l’article et code d’un nouvel algorithme

  5. Evaluation des performances des différentes méthodes

L’implémentation se fera en Python avec les packages numpy et matplotlib : ces packages sont particulièrement utilisés aujourd’hui dans le domaine du machine learning. Une connaissance préliminaire de Python est un plus, mais n’est pas requise.

Selon vos inclinations, le projet pourra développer une composante théorique plus ou moins forte. Dans tous les cas, il sera un moyen pour vous de vous initier à des problématiques très actuelles, dans le domaine à la mode du machine learning. Il vous permettra de prendre en main des outils, des techniques et des idées qui vous seront utiles si vous poursuivez dans cette voie, et qui sont particulièrement valorisés sur un CV.