Découvrez l'apprentissage actif, une méthode d'apprentissage automatique rentable qui améliore la précision avec moins d'étiquettes. Découvrez comment il transforme la formation en IA !
L'apprentissage actif est une approche dynamique de l'apprentissage l 'apprentissage machine (ML) visant à optimiser le processus processus de formation en choisissant sélectivement les points de données les plus informatifs pour l'annotation. Dans l'apprentissage supervisé supervisé standard, un modèle est alimenté passivement par un grand ensemble de données pré-étiquetées, ce qui peut s'avérer inefficace et coûteux si les données comprennent des exemples redondants ou non informatifs. si les données comprennent des exemples redondants ou non informatifs. L'apprentissage actif modifie ce paradigme en permettant au modèle de d'interroger interactivement une source d'information - souvent un expert humain ou un "oracle" - afin de demander des étiquettes pour des cas spécifiques et ambigus, spécifiques et ambigus. Cette stratégie ciblée réduit considérablement la quantité de données d'entraînement nécessaires pour atteindre une précision, ce qui en fait un outil idéal pour les projets budgets limités ou des contraintes de temps strictes.
Le processus d'apprentissage actif fonctionne comme un cycle itératif, souvent décrit comme un flux de travail humain en boucle. humain dans la boucle. Ce cycle Ce cycle garantit que l'effort humain se concentre uniquement sur les données qui contribuent le plus à l'amélioration du modèle. Le flux de travail typique implique :
L'efficacité de cette méthode dépend fortement de la stratégie d'échantillonnage. L'échantillonnage d'incertitude est la technique technique la plus courante, où l'algorithme sélectionne les instances les plus proches de sa frontière de décision. Des détails détaillés détails sur ces stratégies sont disponibles dans diverses études documentaires sur l'apprentissage actif.
L'extrait de code suivant montre comment mettre en œuvre une boucle d'échantillonnage d'incertitude de base. Il charge un modèle, prédit sur les images, et identifie celles dont la probabilité de détection est faible, en les signalant pour un examen manuel.
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Run inference on a list or directory of unlabeled images
results = model.predict(["image1.jpg", "image2.jpg"])
# Identify images where the model is uncertain
uncertain_samples = []
for result in results:
# Check if detections exist and if the maximum confidence is below a threshold
if result.boxes.conf.numel() > 0 and result.boxes.conf.max() < 0.6:
uncertain_samples.append(result.path)
print(f"Flagging {result.path} for manual labeling.")
print(f"Total uncertain images found: {len(uncertain_samples)}")
L'apprentissage actif est particulièrement utile dans les domaines où l'étiquetage des données est coûteux ou nécessite une spécialisée.
Bien que l'apprentissage actif implique l'utilisation de données non étiquetées, il se distingue des autres paradigmes d'apprentissage automatique :
La mise en œuvre de l'apprentissage actif nécessite un système robuste d'opérations d'apprentissage automatique (MLOps). opérations d'apprentissage automatique (MLOps) pour gérer le flux de données entre le modèle, le jeu de données et l'interface d'annotation. Les outils qui prennent en charge la version et la gestion des données sont essentiels pour suivre les échantillons qui ont été interrogés. version et la gestion des données sont essentiels pour savoir quels échantillons ont été interrogés. Bien que les bibliothèques à usage général comme scikit-learn offrent une certaine utilité, les flux de travail de vision par ordinateur nécessitent souvent une intégration personnalisée avec les ensembles de données d'images afin de visualiser et d'annoter les images sélectionnées. d'images pour visualiser et annoter efficacement les images sélectionnées. de manière efficace. Les utilisateurs avancés peuvent explorer le dépôt GitHub Ultralytics GitHub pour voir comment les résultats des prédictions peuvent être structurés pour alimenter ces boucles de curation de données.