Projet 3: Débiaiser un modèle (de classification d'image)
L'idée centrale de ce projet est de mesurer la propension d'un modèle à utiliser des features biaisées (par certains critères d'échantillonnage de votre data set de départ) pour effectuer son apprentissage. Nous suivrons la méthode par Alexander Amani dans le lab 2 du cours du MIT en entraînant des modèles pour la reconnaissance faciale et évaluant dans quelle mesure leur décision sont affectées par des caractéristiques démographique comme le genre et la couleur de peau.
L'approche générale consiste à entraîner deux modèles à distinguer des images contenant des visages, d'images n'en contenant pas. Le premier, modèle, un CNN classique, nous servira de ligne de base de modèle biaisé afin de le comparer à un second modèle que l'on aura débiasé.
Afin de créer ce dernier modèle débiaisé, nous allons lui faire apprendre au préalable, de manière non supervisée, des features qui pourraient être responsable de biais dans les données. Pour cela, nous allons utiliser une variation d'un Variational AutoEncoder (VAE), pouvant apprendre des variables latentes.
En pratique, nous comparerons les performances de classification du modèle biaisé à celle du second modèle débiaisé afin d'apprécier sa capacité à compenser les biais présents dans le data set d'entraînement.
Données
Les données nécessaires à votre travail sont fournies avec le notebook qui vous servira de référence, mais vous êtes libres de compléter vos analyses avec d'autres sources de données que vous jugez pertinente.
Rendu & évaluations
livrables
Vous devez rendre un court rapport de synthèse, sous forme de pdf d'une taille maximale 3 pages (vous pouvez travailler sous jupyter et exporter en pdf) exposant vos recherches afin de construire le meilleur modèle débiaisé pour la tâche de reconnaissance faciale décrite plus haut. Vous inclurez dans ce rapport, des éléments que vous jugez pertinents concernant des détails d'explication de la méthode proposée, des commentaires concernant vos résultats et les problèmes rencontrés, ainsi que d'éventuelles propositions pour améliorer le problème posé.
critères d'évaluations:
Dans ce devoir vous disposez du code vous permettant de réaliser votre tâche, vous aurez donc très peu de code à produire. Vous serez attendu sur votre capacité à comprendre, exploiter et compléter la démarche proposée.
Votre rendu sera évalué selon les critères suivants:
- la qualité de vos efforts de recherches et de vos réflexions:
Voici quelques exemples de questions pouvant vous orienter dans votre travail :
Quels recherches et tests avez vous effectués pour tenter d'obtenir le modèle le moins biaisé possible ?
Comment expliquez vous les résultats que vous obtenez ?
Quels problèmes ou difficultés avez vous rencontré pour réaliser cette tâche ?
Quelles recherches avez vous effectués sur le sujet ?
- la concision de votre rapport: vous chercherez à produire le rapport le plus complet, précis et original possible, tout en restant le plus court possible.
Je vous invite à faire attention à ne pas me recopier des parties du notebook de référence mais à plutôt à produire des analyses qui vous sont propres !
notation
Chaque critère sera évalué par une note sur 20. Votre note finale sera calculée par la moyenne des notes de chaque critère.
Dans ce devoir vous serez groupés par deux, et devrez spécifier les rôles et contributions de chacun dans le projet, afin que je puisse apprécier le travail réalisé par chacun. En fonction du travail de chacun j'appliquerais une pondération de la note de groupe globale pour multiplier ou diviser (de 1 à 1.5 fois) pour chaque membre du groupe.
Ressources pour vous aider
Dans ce projet, vous serez amené à étudiez par vous même les notions nécessaires à la bonne réalisation de ce projet en suivant en particulier les cours suivants:
Mots clés
Voici les mots clés qui vous seront utiles dans vos recherches concernant les modèles qui pourraient vous être utiles.
- AutoEncoder et Variational AutoEncoder
- variables latentes et espace latent (latent variables)
- interprétabilité des décisions des modèles (model interpretability, explainable AI)
Bon courage !