IA : Tout savoir sur l’apprentissage semi-supervisé

L’utilisation des propres prédictions d’un modèle d’apprentissage machine sur des données non labellisées et leur ajout à un ensemble de données labellisées améliore parfois la précision, mais pas toujours.

L’apprentissage semi-supervisé a permis à Amazon d’améliorer sensiblement les performances d’Alexa. (Crédit Photo : Ahealthblog/visualhunt)

Dans la lettre que Jeff Bezos avait adressée en 2017 aux actionnaires d’Amazon, celui-ci faisait une remarque intéressante à propos d’Alexa, l’assistant intelligent à commande vocale d’Amazon : « Au cours des 12 derniers mois, grâce à l’amélioration des composantes d’apprentissage machine d’Alexa et à l’utilisation de techniques d’apprentissage semi-supervisé, nous avons amélioré la compréhension de la langue parlée d’Alexa de plus de 25 % aux États-Unis, au Royaume-Uni et en Allemagne ». Il précise aussi que « ces techniques d’apprentissage semi-supervisé ont réduit de 40 fois la quantité de données labellisées nécessaires pour obtenir la même amélioration de précision ! »

Compte tenu de ces résultats, il peut-être intéressant d’appliquer l’apprentissage semi-supervisé à d’autres besoins de classification. Mais qu’est-ce que l’apprentissage semi-supervisé ? Quels sont ses avantages et ses inconvénients et comment l’utiliser ?

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

Comme son nom l’indique, l’apprentissage semi-supervisé se situe entre l’apprentissage supervisé et celui non supervisé. Le premier commence par un marquage – une labellisation – des données avec les bonnes réponses (valeurs cibles). Ce processus d’apprentissage permet d’obtenir un modèle pondéré pour prédire les réponses de données similaires qui n’ont pas encore été labellisées. L’apprentissage semi-supervisé utilise à la fois des données labellisées et non labellisées pour s’adapter à un modèle. Dans certains cas, comme celui d’Alexa, l’ajout des données non labellisées améliore la précision du modèle.

Mais dans d’autres situations, les données non labellisées peuvent aggraver le modèle. Comme nous le verrons plus loin, les algorithmes présentent des vulnérabilités à différentes caractéristiques des données. En général, le marquage des données coûte de l’argent et prend du temps. Ce n’est pas toujours un problème, dans la mesure où certains ensembles de données sont déjà marqués. Mais si vous avez beaucoup de données, dont une partie seulement est marquée, alors, l’apprentissage semi-supervisé mérite d’être testé.

Algorithmes d’apprentissage semi-supervisés

Cela fait au moins une quinzaine d’années que l’on parle d’apprentissage semi-supervisé. En 2005, Jerry Zhu, de l’Université du Wisconsin, a rédigé une étude sur le sujet. Parce qu’il réduit le taux d’erreur sur des indicateurs importants, l’apprentissage semi-supervisé a connu une résurgence ces dernières années, et pas seulement chez Amazon. En avril 201, Sebastian Ruder de DeepMind a consacré un billet de blog à des algorithmes d’apprentissage semi-supervisés destinés au marquage de proxy, notamment pour l’auto-apprentissage, l’apprentissage multi-vues et le self-ensembling. L’auto-apprentissage utilise les propres prédictions d’un modèle sur des données non labellisées pour les ajouter à l’ensemble de données labellisées. Essentiellement, on fixe un seuil au niveau de confiance d’une prédiction, souvent 0,5 ou plus, au-dessus duquel la prédiction est considérée comme acceptable et elle est alors ajoutée à l’ensemble de données marquées. L’auto-apprentissage du modèle se poursuit jusqu’à ce qu’à ce qu’il n’y a plus de prédictions de confiance.

Ce processus pose la question du modèle réel utilisé pour l’apprentissage. Comme dans la plupart des programmes d’apprentissage machine, chacun voudra probablement tester tous les modèles raisonnables possibles dans l’espoir d’en trouver un qui fonctionne bien. Le succès de l’auto-apprentissage a été mitigé. Le plus grand défaut de ce modèle, c’est qu’il est incapable de corriger ses propres erreurs : une prédiction très fiable (mais fausse) sur, disons, une valeur aberrante, peut corrompre l’ensemble du modèle.

L’apprentissage multi-vues consiste à entraîner différents modèles sur différentes vues de données, qui peuvent inclure différents ensembles de caractéristiques, différentes architectures de modèles ou différents sous-ensembles de données. Il existe un certain nombre d’algorithmes d’apprentissage multi-vues, mais l’un des plus connus est le tri-training. Il consiste à créer trois modèles différents ; chaque fois que deux modèles s’accordent sur le marquage d’un point de données, le label est ajouté au troisième modèle. Comme dans le cas de l’auto-apprentissage, le training s’interrompt quand plus aucun label n’est ajouté à aucun des modèles.

Le self-assembling utilise généralement un seul modèle avec plusieurs configurations différentes. Dans la méthode du réseau en échelle, la prédiction sur un exemple propre est utilisée de manière aléatoire comme label de remplacement pour un exemple perturbé, afin de développer des caractéristiques qui résistent au bruit. Le tutoriel publié en 2007 par Jerry Zhu prend également en compte un certain nombre d’autres algorithmes. Il s’agit notamment de modèles génératifs (comme ceux qui supposent une distribution gaussienne pour chaque classe), de machines vectorielles supportant l’apprentissage semi-supervisé et d’algorithmes basés sur des graphiques.

Apprentissage semi-supervisé dans le cloud

L’apprentissage semi-supervisé fait progressivement son chemin dans les services d’apprentissage machine traditionnels. Par exemple, Amazon SageMaker Ground Truth utilise Amazon Mechanical Turk pour le marquage manuel et la délimitation d’une partie d’un ensemble d’images et utilise l’apprentissage d’un réseau neuronal pour marquer le reste du set d‘images.

Des programmes d’apprentissage semi-supervisés similaires peuvent être utilisés pour d’autres types d’apprentissage semi-supervisé, y compris le traitement du langage naturel, la classification et la régression sur plusieurs services. Cependant, sur la plupart d’entre eux, il est nécessaire d’écrire son propre « glue code » ou « code de liaison » pour l’algorithme semi-supervisé.

chevron_left
chevron_right