Accéder au contenu principal

Apprentissage semi-supervisé : entraînez des modèles plus précis avec moins de données étiquetées

L’apprentissage semi-supervisé entraîne des modèles sur un mélange de données étiquetées et non étiquetées, réduisant les coûts d’annotation tout en améliorant la précision pour des tâches comme la classification d’images, l’analyse de textes et le diagnostic médical.
Actualisé 4 mai 2026  · 12 min lire

L’annotation des données est coûteuse, lente, spécifique au domaine, et la plupart des équipes n’en ont pas assez.

Vous avez toujours besoin de données étiquetées pour entraîner un modèle, mais les annoter correctement prend du temps et requiert souvent un expert du domaine. Par exemple, les images médicales nécessitent des radiologues et les documents juridiques des avocats. Même des tâches simples comme l’analyse de sentiments exigent qu’une personne passe en revue et tague chaque exemple à la main. Résultat : la plupart des équipes ML se retrouvent avec un minuscule jeu de données étiquetées et une énorme quantité de données non étiquetées qu’elles ne peuvent pas exploiter.

L’apprentissage semi-supervisé résout ce problème en apprenant à partir des deux. Il prend votre petit jeu de données étiquetées, le combine avec votre grand jeu non étiqueté et laisse le modèle apprendre les motifs.

Dans cet article, je vais expliquer le fonctionnement de l’apprentissage semi-supervisé, présenter les techniques les plus courantes et montrer quand il est pertinent de l’utiliser.

Mais qu’est-ce que l’apprentissage supervisé exactement ? Lisez notre article de blog pour comprendre le fonctionnement des algorithmes supervisés essentiels.

Qu’est-ce que l’apprentissage semi-supervisé ?

L’apprentissage semi-supervisé est une approche d’apprentissage automatique qui s’entraîne sur un mélange de données étiquetées et non étiquetées.

Comme son nom l’indique, il se situe entre l’apprentissage supervisé et non supervisé. L’apprentissage supervisé exige que chaque échantillon soit étiqueté. L’apprentissage non supervisé fonctionne sans aucune étiquette. L’apprentissage semi-supervisé utilise un petit ensemble d’exemples étiquetés aux côtés d’un ensemble beaucoup plus vaste d’exemples non étiquetés.

Les données étiquetées indiquent au modèle ce qu’il doit rechercher. Les données non étiquetées lui montrent comment les données sont structurées. Combinées, elles offrent au modèle bien plus de matière qu’un seul type ne pourrait le faire.

Comment fonctionne l’apprentissage semi-supervisé

Le processus démarre avec un petit jeu de données étiquetées – peut-être quelques centaines d’exemples pour lesquels vous connaissez la bonne sortie.

Vous ajoutez ensuite un jeu non étiqueté bien plus grand. Cela peut représenter des milliers voire des millions d’échantillons sans étiquette. Le modèle utilise ces données non étiquetées pour apprendre les motifs sous-jacents et les relations entre les points de données.

Les exemples étiquetés guident alors cette structure vers les bonnes réponses. Le modèle sait déjà comment les données s’organisent grâce aux échantillons non étiquetés. Les étiquettes lui indiquent quelles zones de cette structure correspondent à quelles sorties.

Voici un exemple rapide.

Supposons que vous classiez des e-mails en spam ou non spam. Vous disposez de 100 e-mails étiquetés et de 10 000 non étiquetés. Le modèle apprend d’abord comment les e-mails se regroupent en fonction des mots et de la structure des textes. Il utilise ensuite vos 100 exemples étiquetés pour déterminer quels groupes sont du spam et lesquels ne le sont pas. Au final, le modèle est plus performant que s’il n’avait appris que sur ces 100 e-mails étiquetés.

Apprentissage semi-supervisé vs supervisé vs non supervisé

Passons en revue chaque approche pour voir où se situe l’apprentissage semi-supervisé par rapport aux deux autres.

Apprentissage supervisé

L’apprentissage supervisé s’entraîne sur des données entièrement étiquetées. Chaque échantillon du jeu de données possède une entrée et une sortie connue. Le modèle apprend la correspondance entre les deux.

Cela fonctionne bien lorsque vous avez suffisamment d’exemples étiquetés. Mais « suffisamment » peut signifier des milliers, voire des millions d’échantillons selon la tâche. C’est coûteux à produire et parfois tout simplement impossible.

Apprentissage non supervisé

L’apprentissage non supervisé n’utilise aucune étiquette. Le modèle observe les données brutes et y découvre une structure par lui-même. Les exemples classiques sont le clustering et la réduction de dimension.

L’avantage : vous n’avez pas besoin de données étiquetées. L’inconvénient : le modèle ne sait pas ce qui vous intéresse réellement. Il trouve des motifs, certes, mais ces motifs ne correspondent pas forcément au problème que vous cherchez à résoudre.

Apprentissage semi-supervisé

L’apprentissage semi-supervisé combine le meilleur des deux mondes. Vous fournissez au modèle un petit jeu de données étiquetées pour définir la tâche et un grand jeu non étiqueté pour apprendre la structure des données.

Les données étiquetées orientent le modèle dans la bonne direction. Les données non étiquetées lui montrent comment les échantillons se relient entre eux. Cette combinaison dépasse souvent l’apprentissage supervisé sur le même petit jeu étiqueté, car le modèle détecte des motifs qu’il aurait manqués sans les données non étiquetées.

Voici une comparaison rapide entre ces trois approches :

Tableau de comparaison des approches d’apprentissage automatique

Tableau de comparaison des approches d’apprentissage automatique

En résumé, si l’annotation prend trop de temps et que vous avez beaucoup de données non étiquetées, l’approche semi-supervisée mérite d’être envisagée. Voyons maintenant quelques techniques courantes.

Techniques courantes d’apprentissage semi-supervisé

Il existe plusieurs façons de mettre en œuvre l’apprentissage semi-supervisé. Chaque technique gère différemment le partage entre données étiquetées et non étiquetées. Passons en revue les plus fréquentes.

Auto-entraînement (self-training)

C’est l’approche la plus simple. Vous entraînez un modèle sur vos données étiquetées, puis vous l’utilisez pour prédire des étiquettes sur les échantillons non étiquetés. Les prédictions les plus confiantes sont ajoutées à l’ensemble étiqueté en tant que pseudo-étiquettes, puis vous réentraînez le modèle sur ce jeu élargi.

Vous répétez le processus jusqu’à ce que le modèle cesse de s’améliorer ou que vous n’ayez plus de données non étiquetées. C’est facile à mettre en œuvre, mais si le modèle se trompe tôt, cette erreur se retrouve intégrée à votre jeu de données.

Co-entraînement (co-training)

Le co-entraînement utilise deux modèles au lieu d’un. Chaque modèle est entraîné sur une « vue » différente des données, c’est-à-dire un sous-ensemble distinct de caractéristiques.

Par exemple, si vous classez des pages web, un modèle peut se concentrer sur le texte de la page, tandis que l’autre considère le texte d’ancre des liens pointant vers elle. Chaque modèle étiquette des échantillons non étiquetés pour l’autre et ils s’enseignent mutuellement au fil de plusieurs itérations.

L’idée est que les forces de l’un compensent les faiblesses de l’autre. Si chaque vue contient suffisamment d’information, le co-entraînement peut surpasser l’auto-entraînement, car les erreurs de l’un sont corrigées par l’autre.

Propagation d’étiquettes

Cette approche construit un graphe où chaque point de données est un nœud, et des arêtes relient les points similaires. Les étiquettes « se propagent » alors des nœuds étiquetés vers leurs voisins.

L’hypothèse est que des points de données similaires devraient partager la même étiquette. Si un échantillon étiqueté est proche d’un cluster d’échantillons non étiquetés, ces derniers appartiennent probablement à la même classe. Les étiquettes se propagent dans le graphe jusqu’à ce que chaque nœud en possède une.

Cela fonctionne bien lorsque vos données présentent une structure de clusters nette, mais peut échouer lorsque les frontières entre classes sont floues.

Réseaux de neurones semi-supervisés

L’apprentissage profond dispose de ses propres techniques semi-supervisées. Voici les plus courantes :

  • Régularisation par consistance : elle incite le modèle à produire la même sortie pour une entrée même après de petites perturbations comme du bruit ou des augmentations. L’idée est qu’un bon modèle ne doit pas changer sa prédiction parce que vous avez légèrement modifié l’entrée
  • Pseudo-étiquetage dans les réseaux de neurones : fonctionne comme l’auto-entraînement mais au niveau du batch. Le modèle génère des étiquettes pour les échantillons non étiquetés pendant l’entraînement et les utilise aux côtés des vraies étiquettes dans la fonction de perte.

Des méthodes comme FixMatch et MixMatch combinent ces idées et montrent de bons résultats sur des benchmarks avec très peu d’exemples étiquetés.

Pourquoi l’apprentissage semi-supervisé compte

Vous devriez vous y intéresser pour une raison : le coût.

L’annotation des données requiert des données, des experts métier, du temps et de l’argent. L’apprentissage semi-supervisé réduit les coûts en tirant davantage parti d’un nombre limité d’étiquettes.

Vient ensuite la performance. Un modèle entraîné sur 500 échantillons étiquetés et 50 000 non étiquetés battra souvent le même modèle entraîné uniquement sur ces 500 échantillons étiquetés. Les données non étiquetées offrent au modèle une vision plus complète de la distribution des données, ce qui conduit à de meilleures prédictions.

Et puis il y a la réalité de la plupart des jeux de données. Les données non étiquetées sont partout. Chaque entreprise dispose de journaux, d’images, de documents et d’enregistrements que personne n’a le temps d’annoter. L’apprentissage semi-supervisé permet d’en tirer quelque chose d’utile.

Cas d’usage de l’apprentissage semi-supervisé

L’apprentissage semi-supervisé apparaît dans les domaines où les étiquettes sont difficiles à obtenir.

La classification d’images est l’un des cas d’usage les plus fréquents. Étiqueter des milliers d’images est fastidieux, mais collecter des images non étiquetées est facile. Les méthodes semi-supervisées permettent d’entraîner des classifieurs précis avec seulement quelques centaines d’images étiquetées.

La classification de textes suit la même logique. Vous pouvez avoir des millions d’avis clients ou de tickets support, mais seulement un petit lot annoté manuellement. L’apprentissage semi-supervisé aide à construire des classifieurs qui généralisent sur l’ensemble complet.

La reconnaissance vocale est un autre domaine intéressant. Transcrire de l’audio à la main demande beaucoup d’efforts, mais l’audio brut abonde. Les enregistrements non étiquetés aident le modèle à apprendre les motifs acoustiques, tandis que les échantillons transcrits lui apprennent les correspondances correctes.

L’analyse de données médicales est un excellent exemple spécifique au domaine. Demander à un médecin d’annoter des scanners ou des dossiers patients est coûteux et lent, car il a d’autres priorités. Mais les hôpitaux disposent d’immenses volumes de données cliniques non étiquetées. Les méthodes semi-supervisées aident à construire des modèles de diagnostic sans exiger un jeu entièrement étiqueté.

Avantages de l’apprentissage semi-supervisé

Voici pourquoi l’apprentissage semi-supervisé convient à de nombreux projets :

  • Il nécessite moins de données étiquetées : vous pouvez obtenir de bons résultats avec une fraction des étiquettes qu’exigerait une approche entièrement supervisée
  • Il améliore la généralisation : les données non étiquetées exposent le modèle à un éventail plus large d’exemples, ce qui l’aide à mieux performer sur des données inédites
  • Il est économique : lorsque l’annotation est coûteuse ou chronophage – ce qui est souvent le cas – l’apprentissage semi-supervisé fait gagner du temps et du budget en valorisant l’existant

Donc, si vous avez plus de données que d’étiquettes, il est temps d’envisager l’apprentissage semi-supervisé.

Limites de l’apprentissage semi-supervisé

L’apprentissage semi-supervisé présente quelques compromis à connaître.

  • La qualité des données non étiquetées est cruciale : si vos données non étiquetées ne proviennent pas de la même distribution que vos données étiquetées, le modèle apprendra de mauvais motifs
  • Mauvaises pseudo-étiquettes : dans des méthodes comme l’auto-entraînement, une prédiction confiante mais erronée est traitée comme vérité terrain. Le modèle s’entraîne sur cette mauvaise étiquette, ce qui renforce l’erreur et dégrade les prédictions futures
  • Plus complexe que le supervisé : vous avez davantage d’hyperparamètres à régler, plus de choix de conception et plus de points de défaillance potentiels. Un modèle supervisé est plus simple à construire et à expliquer. Les méthodes semi-supervisées ajoutent une complexité qui n’est pas toujours justifiée – surtout si votre jeu étiqueté est déjà suffisamment grand

Rien de rédhibitoire, mais des points à garder en tête avant de se lancer.

L’apprentissage semi-supervisé en pratique (exemple Python)

Voyons l’apprentissage semi-supervisé en action avec un exemple simple en Python en utilisant l’algorithme LabelSpreading de scikit-learn.

Je vais créer un jeu de données, n’en étiqueter qu’une petite partie et laisser le modèle inférer le reste.

Préparation des données

Commençons par générer un jeu de données et masquer la plupart des étiquettes pour simuler un scénario semi-supervisé :

import numpy as np
from sklearn.datasets import make_moons
from sklearn.semi_supervised import LabelSpreading
from sklearn.metrics import accuracy_score

# Generate a dataset with 500 samples
X, y_true = make_moons(n_samples=500, noise=0.2, random_state=42)

# Keep only 10%, mask the rest as -1
rng = np.random.RandomState(42)
labeled_idx = rng.choice(500, size=50, replace=False)
y_train = np.full(500, -1)  # -1 means unlabeled in scikit-learn
y_train[labeled_idx] = y_true[labeled_idx]

print(f"Labeled samples: {np.sum(y_train != -1)}")
print(f"Unlabeled samples: {np.sum(y_train == -1)}")

Nombre d’échantillons étiquetés et non étiquetés

Nombre d’échantillons étiquetés et non étiquetés

Dans scikit-learn, -1 marque un échantillon comme non étiqueté. Sur 500 échantillons, seuls 50 sont étiquetés. Le modèle doit déterminer les 450 autres.

Entraînement et prédiction

Je vais maintenant entraîner un modèle LabelSpreading et évaluer sa capacité à étiqueter les données non étiquetées :

model = LabelSpreading(kernel="knn", n_neighbors=7)
model.fit(X, y_train)

y_pred = model.transduction_

# Check accuracy on the originally unlabeled samples
unlabeled_mask = y_train == -1
accuracy = accuracy_score(y_true[unlabeled_mask], y_pred[unlabeled_mask])
print(f"Accuracy on unlabeled samples: {accuracy:.2%}")

Précision sur les échantillons non étiquetés

Précision sur les échantillons non étiquetés

Le modèle a correctement étiqueté la plupart des échantillons non étiquetés en s’appuyant sur seulement 10 % de données étiquetées. C’est l’idée clé.

Visualiser les résultats

La précision est élevée – près de 96 % – mais examinons visuellement les échantillons mal classés :

Étiquettes réelles et prédites

Étiquettes réelles et prédites

Les étiquettes prédites correspondent presque parfaitement aux étiquettes réelles, alors que le modèle n’a vu que 50 exemples étiquetés sur 500. Vous pouvez voir les erreurs en rouge sur le graphique de droite.

Erreurs fréquentes avec l’apprentissage semi-supervisé

Vous avez vu la puissance de l’apprentissage semi-supervisé, mais il n’est pas adapté à tous les scénarios. Voici les erreurs les plus courantes et comment les éviter.

  • Penser que les données non étiquetées aident toujours : ce n’est pas le cas. Si les données non étiquetées proviennent d’une distribution différente de vos données étiquetées, le modèle apprend des motifs qui ne s’appliquent pas à votre tâche. Vérifiez toujours que vos jeux étiquetés et non étiquetés proviennent de la même source et décrivent le même problème
  • Mauvaise initialisation du modèle : les méthodes semi-supervisées s’appuient sur un modèle supervisé initial. Si ce premier modèle est faible – entraîné sur trop peu d’échantillons ou avec de mauvais hyperparamètres – les étapes suivantes héritent de ces problèmes. Commencez par la meilleure base supervisée possible avant d’ajouter des données non étiquetées
  • Surconfiance dans les pseudo-étiquettes : les pseudo-étiquettes ne valent que par le modèle qui les a générées. Si vous leur faites une confiance aveugle, les erreurs peuvent se cumuler au fil des itérations. Fixez un seuil de confiance élevé et n’utilisez que les pseudo-étiquettes dont le modèle est sûr. Écartez le reste
  • Ignorer la distribution des données : les méthodes semi-supervisées supposent que la structure des données non étiquetées apporte une information utile sur les étiquettes. Si vos données n’ont pas de clusters clairs ou de frontières de décision lisses, cette hypothèse ne tiendra pas

Pour éviter ces quatre écueils, partez d’un solide modèle supervisé, ajoutez les données non étiquetées progressivement et vérifiez que la performance s’améliore réellement à chaque étape.

Quand utiliser l’apprentissage semi-supervisé

L’apprentissage semi-supervisé a du sens dans ces trois situations :

  • Lorsque les données étiquetées sont limitées : si vous n’avez qu’un petit jeu étiqueté et qu’obtenir plus d’étiquettes est coûteux ou lent, l’apprentissage semi-supervisé vous aide à gagner ces points de précision supplémentaires
  • Lorsque les données non étiquetées abondent : vous avez besoin d’un grand volume de données non étiquetées pour que cela fonctionne. Si votre jeu non étiqueté est réduit, le modèle n’apprendra pas assez de structure pour faire la différence. Plus l’écart entre la taille de vos jeux étiqueté et non étiqueté est grand, plus les méthodes semi-supervisées peuvent aider
  • Lorsque vos données ont une structure claire : l’apprentissage semi-supervisé fonctionne mieux lorsque des points similaires partagent la même étiquette. Si vos données forment des clusters ou présentent des frontières lisses entre classes, les données non étiquetées rendront ces motifs plus évidents. Si les classes sont entremêlées sans séparation nette, l’apport des données non étiquetées sera faible.

Si ces trois conditions sont réunies, l’apprentissage semi-supervisé vaut la peine d’être testé.

Conclusion

En termes simples, l’apprentissage semi-supervisé vous permet d’entraîner de meilleurs modèles sans tout annoter. Vous combinez un petit jeu étiqueté avec un grand jeu non étiqueté et laissez le modèle apprendre des deux.

Les bénéfices sont clairs : moins de temps d’annotation, une mise sur le marché plus rapide, des coûts moindres et de meilleures performances que l’entraînement sur un jeu limité d’étiquettes. Et dans des domaines comme la médecine, le juridique ou le NLP – où l’annotation exige des experts – c’est déterminant.

Si vous avez une grande quantité de données non étiquetées, essayez l’apprentissage semi-supervisé. Démarrez avec une bonne base supervisée, choisissez une technique adaptée à la structure de vos données et mesurez l’apport réel des données non étiquetées. LabelSpreading de scikit-learn est une bonne première expérience, mais explorez aussi des méthodes comme FixMatch et MixMatch.

Pour être prêt pour l’emploi en 2026, suivez notre parcours Machine Learning Engineer. Il couvre tout, des fondamentaux au MLOps.


Dario Radečić's photo
Author
Dario Radečić
LinkedIn
Scientifique de données senior basé en Croatie. Rédacteur technique de premier plan avec plus de 700 articles publiés, générant plus de 10 millions de vues. Auteur du livre Machine Learning Automation with TPOT.

FAQs

Qu’est-ce que l’apprentissage semi-supervisé ?

L’apprentissage semi-supervisé est une approche d’apprentissage automatique qui entraîne des modèles sur un petit ensemble de données étiquetées et un grand ensemble de données non étiquetées. Les données étiquetées indiquent au modèle ce qu’il doit rechercher, tandis que les données non étiquetées l’aident à comprendre la structure globale des données. Ainsi, vous obtenez de meilleurs résultats que si vous n’entraîniez que sur les données étiquetées.

En quoi l’apprentissage semi-supervisé diffère-t-il des apprentissages supervisé et non supervisé ?

L’apprentissage supervisé n’utilise que des données étiquetées, où chaque échantillon a une sortie connue. L’apprentissage non supervisé n’utilise que des données non étiquetées et découvre des motifs par lui-même. L’apprentissage semi-supervisé utilise un petit jeu étiqueté pour définir la tâche et un grand jeu non étiqueté pour apprendre la structure des données.

Quand dois-je utiliser l’apprentissage semi-supervisé ?

Utilisez-le lorsque vous avez peu de données étiquetées, beaucoup de données non étiquetées et que vos données ont une structure claire, avec des clusters naturels ou des frontières de classes lisses. Si l’annotation est coûteuse ou nécessite des experts du domaine – comme en imagerie médicale ou pour l’analyse de textes juridiques – l’apprentissage semi-supervisé vous aide à construire des modèles précis sans tout étiqueter.

Qu’est-ce que l’auto-entraînement en apprentissage semi-supervisé ?

L’auto-entraînement est une technique où le modèle s’entraîne d’abord sur des données étiquetées, puis prédit des étiquettes pour les échantillons non étiquetés. Les prédictions les plus confiantes sont ajoutées à l’ensemble étiqueté en tant que pseudo-étiquettes, et le modèle est réentraîné sur le jeu élargi. Le risque est que des erreurs précoces soient renforcées lors des itérations suivantes ; fixez donc un seuil de confiance élevé.

Sujets

Formez-vous avec DataCamp

Cours

Apprentissage non supervisé en Python

4 h
176.9K
Apprenez à regrouper, transformer, visualiser et exploiter des données non étiquetées avec scikit-learn et scipy pour en tirer des insights.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow