Labellisation et apprentissage semi-supervisé sur des images médicales (IRM cérébrales)
Python, Computer Vision, Deep Learning, Semi-Supervised Learning, Clustering, PyTorch, Scikit-learn, ResNet, Healthcare AI
Labellisation et Apprentissage Semi-Supervisé pour la Détection de Tumeurs Cérébrales
Présentation
Ce projet met en œuvre une exploration analytique complète d'un jeu de données médical majoritairement non labellisé, dans le cadre d'un projet R&D de détection automatisée de tumeurs du cerveau à partir d'IRM. L'objectif est de tirer parti d'un large volume d'images non annotées et d'un sous-ensemble restreint de labels experts pour construire un pipeline de labellisation faible puis un modèle de classification semi-supervisé.
Le projet applique les bonnes pratiques du Computer Vision et de l'apprentissage semi-supervisé afin de maximiser la valeur d'un dataset partiellement labellisé, tout en évaluant la faisabilité budgétaire d'un passage à l'échelle sur plusieurs millions d'images.
Objectifs
- Explorer et qualifier un jeu de données d'images médicales (résolution, canaux, structure).
- Extraire des caractéristiques visuelles pertinentes via un modèle pré-entraîné.
- Identifier des regroupements naturels par clustering non supervisé.
- Construire un jeu de données "faiblement" labellisé à partir des clusters, sans jamais le mélanger aux labels experts.
- Mettre en œuvre et évaluer une approche semi-supervisée, en comparaison avec un entraînement supervisé classique.
- Formuler des recommandations chiffrées pour un passage à l'échelle (4M d'images, budget 5 000 €).
Compétences démontrées
Exploration et préparation des données
- Chargement et exploration visuelle d'un dataset d'IRM (résolution, canal de couleur, structure de fichiers, cohérence des métadonnées).
- Preprocessing adapté aux modèles de vision : redimensionnement, normalisation.
- Travail méthodique sur échantillon réduit avant passage à l'échelle.
Extraction de features par transfer learning
- Extraction d'embeddings visuels via un modèle pré-entraîné de type ResNet (couches convolutionnelles gelées).
- Évaluation de plusieurs couches d'extraction pour identifier la représentation la plus pertinente.
- Constitution d'un tableau de features exploitable pour les étapes suivantes.
Clustering et labellisation faible
- Réduction de dimensionnalité (PCA, t-SNE) pour visualisation et interprétation des regroupements.
- Application et comparaison de plusieurs algorithmes de clustering (K-Means, DBSCAN).
- Génération d'un jeu de données "faiblement" labellisé, maintenu strictement séparé du jeu "fortement" labellisé.
- Validation de la pertinence des clusters via le score ARI, calculé sur le sous-ensemble expert.
Apprentissage semi-supervisé
- Entraînement d'un modèle CNN sur le jeu faiblement labellisé, puis poursuite de l'entraînement sur le jeu fortement labellisé.
- Comparaison rigoureuse des performances entre approche purement supervisée et approche semi-supervisée.
- Définition de métriques adaptées au risque métier (accuracy, F1-score, précision) et d'une "definition of done" claire.
- Split train/test garantissant l'absence de fuite de données lors de l'évaluation.
Analyse de faisabilité et recommandations
- Évaluation du coût de labellisation IA rapporté au budget disponible (300 € pour le dataset initial).
- Recommandations techniques argumentées pour un passage à l'échelle à 4 millions d'images avec un budget de 5 000 €, incluant les conditions de faisabilité.
- Synthèse des résultats et des arbitrages sous forme de support de présentation pour l'équipe projet.
Architecture
Dataset IRM (majorité non labellisée
+ sous-ensemble labellisé expert)
│
▼
Exploration & preprocessing
(résolution, normalisation, canaux)
│
▼
Extraction de features (ResNet gelé)
│
▼
Réduction de dimension (PCA / t-SNE)
│
▼
Clustering (K-Means / DBSCAN)
│
┌─────────────┴─────────────┐
▼ ▼
Jeu "faiblement" Jeu "fortement"
labellisé (clusters) labellisé (experts)
│ │
▼ │
Entraînement CNN │
(labellisation faible) │
│ │
└─────────────┬─────────────┘
▼
Poursuite entraînement semi-supervisé
│
▼
Comparaison supervisé vs semi-supervisé
│
▼
Recommandations de passage à l'échelle
Stack technique
Deep Learning & Computer Vision
- PyTorch / torchvision
- Modèles pré-entraînés (ResNet)
Clustering & réduction de dimension
- Scikit-learn (K-Means, DBSCAN, PCA)
- t-SNE
Manipulation & visualisation des données
- NumPy, pandas
- Matplotlib, seaborn, plotly
- OpenCV
Livrables
- Notebooks Jupyter (.ipynb) : extraction de features, clustering, approche semi-supervisée
- Support de présentation (synthèse et recommandations)
Bonnes pratiques appliquées
- Séparation stricte des jeux de données faiblement et fortement labellisés
- Gel des couches convolutionnelles pour un transfer learning stable
- Validation croisée des clusters via un score quantitatif (ARI) plutôt qu'une lecture purement visuelle
- Définition a priori des métriques d'évaluation et d'un critère de succès ("definition of done")
- Split train/test garantissant l'absence de fuite de données
- Recommandations de passage à l'échelle adossées à une contrainte budgétaire réelle
Résultats
À l'issue de ce projet, le pipeline permet de :
- extraire des représentations visuelles exploitables à partir d'un modèle pré-entraîné ;
- générer une labellisation faible fiable sur des images non annotées ;
- entraîner un modèle semi-supervisé et quantifier son gain de performance par rapport à une approche supervisée classique ;
- statuer sur la faisabilité budgétaire d'un passage à l'échelle à 4 millions d'images ;
- restituer une synthèse claire et actionnable à une équipe projet Data Science.
Compétences acquises
- Extraction de features par transfer learning (CNN pré-entraînés)
- Clustering non supervisé et réduction de dimensionnalité
- Construction et exploitation d'une labellisation faible
- Apprentissage semi-supervisé et comparaison de protocoles d'entraînement
- Définition de métriques et de critères de succès pertinents
- Analyse de faisabilité budgétaire et recommandations de passage à l'échelle
- Communication de résultats techniques à une équipe projet