Ultralytics YOLO Guide deréglage des hyperparamètres
Introduction
Le réglage des hyperparamètres n'est pas un simple réglage ponctuel, mais un processus itératif visant à optimiser les mesures de performance du modèle d'apprentissage automatique, telles que l'exactitude, la précision et le rappel. Dans le contexte de Ultralytics YOLO , ces hyperparamètres peuvent aller du taux d'apprentissage aux détails architecturaux, tels que le nombre de couches ou les types de fonctions d'activation utilisés.
Que sont les hyperparamètres ?
Les hyperparamètres sont des paramètres structurels de haut niveau pour l'algorithme. Ils sont définis avant la phase de formation et restent constants pendant celle-ci. Voici quelques hyperparamètres couramment réglés dans Ultralytics YOLO :
- Taux d'apprentissage
lr0
: Détermine la taille du pas à chaque itération tout en se déplaçant vers un minimum dans le fonction de perte. - Taille du lot
batch
: Nombre d'images traitées simultanément lors d'une passe avant. - Nombre d'époques
epochs
: Une époque correspond à un passage complet vers l'avant et vers l'arrière de tous les exemples d'apprentissage. - Spécificités de l'architecture: Nombre de canaux, nombre de couches, types de fonctions d'activation, etc.
Pour une liste complète des hyperparamètres d'augmentation utilisés dans YOLO11 , veuillez vous référer à la page des configurations.
Evolution génétique et mutation
Ultralytics YOLO utilise des algorithmes génétiques pour optimiser les hyperparamètres. Les algorithmes génétiques s'inspirent du mécanisme de la sélection naturelle et de la génétique.
- Mutation: Dans le contexte de Ultralytics YOLO , la mutation permet d'effectuer une recherche locale dans l'espace des hyperparamètres en appliquant de petites modifications aléatoires aux hyperparamètres existants, produisant ainsi de nouveaux candidats à l'évaluation.
- Croisement: Bien que le croisement soit une technique d'algorithme génétique très répandue, il n'est pas utilisé actuellement dans Ultralytics YOLO pour le réglage des hyperparamètres. L'accent est mis principalement sur la mutation pour générer de nouveaux ensembles d'hyperparamètres.
Préparation de l'ajustement des hyperparamètres
Avant de commencer le processus de réglage, il est important de.. :
- Identifier les paramètres: Déterminez les paramètres que vous utiliserez pour évaluer les performances du modèle. Il peut s'agir de l'AP50, du score F1 ou d'autres paramètres.
- Définir le budget de réglage: Définissez la quantité de ressources informatiques que vous êtes prêt à allouer. L'ajustement des hyperparamètres peut être très gourmand en ressources informatiques.
Étapes à suivre
Initialisation des hyperparamètres
Commencez par un ensemble raisonnable d'hyperparamètres initiaux. Il peut s'agir des hyperparamètres par défaut définis par Ultralytics YOLO ou d'un ensemble basé sur votre connaissance du domaine ou sur des expériences antérieures.
Mutation des hyperparamètres
Utiliser le _mutate
pour produire un nouvel ensemble d'hyperparamètres sur la base de l'ensemble existant.
Modèle de train
La formation est effectuée en utilisant l'ensemble muté d'hyperparamètres. Les performances de l'entraînement sont ensuite évaluées.
Évaluer le modèle
Utilisez des mesures telles que l'AP50, le score F1 ou des mesures personnalisées pour évaluer les performances du modèle.
RĂ©sultats du journal
Il est essentiel d'enregistrer les mesures de performance et les hyperparamètres correspondants pour pouvoir s'y référer ultérieurement.
Répéter
Le processus est répété jusqu'à ce que le nombre d'itérations fixé soit atteint ou que la mesure de performance soit satisfaisante.
Exemple d'utilisation
Voici comment utiliser le model.tune()
pour utiliser la méthode Tuner
classe pour l'ajustement des hyperparamètres de YOLO11n sur COCO8 pendant 30 époques avec un optimiseur AdamW et en sautant le traçage, le point de contrôle et la validation autre que l'époch final pour un ajustement plus rapide.
Exemple
RĂ©sultats
Après avoir terminé avec succès le processus de réglage des hyperparamètres, vous obtiendrez plusieurs fichiers et répertoires qui encapsulent les résultats du réglage. Ces fichiers sont décrits ci-dessous :
Structure du fichier
Voici à quoi ressemblera la structure du répertoire des résultats. Les répertoires de formation comme train1/
contiennent des itérations de réglage individuelles, c'est-à -dire un modèle formé avec un ensemble d'hyperparamètres. Les tune/
contient les résultats de la mise au point de tous les entraînements des modèles individuels :
runs/
└── detect/
├── train1/
├── train2/
├── ...
└── tune/
├── best_hyperparameters.yaml
├── best_fitness.png
├── tune_results.csv
├── tune_scatter_plots.png
└── weights/
├── last.pt
└── best.pt
Description des fichiers
best_hyperparameters.yaml
Ce fichier YAML contient les hyperparamètres les plus performants trouvés au cours du processus de réglage. Vous pouvez utiliser ce fichier pour initialiser les futurs entraînements avec ces paramètres optimisés.
- Format: YAML
- Utilisation: Résultats des hyperparamètres
-
Exemple:
# 558/900 iterations complete âś… (45536.81s) # Results saved to /usr/src/ultralytics/runs/detect/tune # Best fitness=0.64297 observed at iteration 498 # Best fitness metrics are {'metrics/precision(B)': 0.87247, 'metrics/recall(B)': 0.71387, 'metrics/mAP50(B)': 0.79106, 'metrics/mAP50-95(B)': 0.62651, 'val/box_loss': 2.79884, 'val/cls_loss': 2.72386, 'val/dfl_loss': 0.68503, 'fitness': 0.64297} # Best fitness model is /usr/src/ultralytics/runs/detect/train498 # Best fitness hyperparameters are printed below. lr0: 0.00269 lrf: 0.00288 momentum: 0.73375 weight_decay: 0.00015 warmup_epochs: 1.22935 warmup_momentum: 0.1525 box: 18.27875 cls: 1.32899 dfl: 0.56016 hsv_h: 0.01148 hsv_s: 0.53554 hsv_v: 0.13636 degrees: 0.0 translate: 0.12431 scale: 0.07643 shear: 0.0 perspective: 0.0 flipud: 0.0 fliplr: 0.08631 mosaic: 0.42551 mixup: 0.0 copy_paste: 0.0
meilleur_fitness.png
Il s'agit d'un graphique affichant l'aptitude (généralement une mesure de performance telle que AP50) en fonction du nombre d'itérations. Il vous aide à visualiser les performances de l'algorithme génétique au fil du temps.
- Format: PNG
- Utilisation: Visualisation des performances
tune_results.csv
Un fichier CSV contenant les résultats détaillés de chaque itération pendant la mise au point. Chaque ligne du fichier représente une itération et comprend des mesures telles que le score de fitness, la précision, le rappel, ainsi que les hyperparamètres utilisés.
- Format: CSV
- Utilisation: Suivi des résultats par itération.
- Exemple:
fitness,lr0,lrf,momentum,weight_decay,warmup_epochs,warmup_momentum,box,cls,dfl,hsv_h,hsv_s,hsv_v,degrees,translate,scale,shear,perspective,flipud,fliplr,mosaic,mixup,copy_paste 0.05021,0.01,0.01,0.937,0.0005,3.0,0.8,7.5,0.5,1.5,0.015,0.7,0.4,0.0,0.1,0.5,0.0,0.0,0.0,0.5,1.0,0.0,0.0 0.07217,0.01003,0.00967,0.93897,0.00049,2.79757,0.81075,7.5,0.50746,1.44826,0.01503,0.72948,0.40658,0.0,0.0987,0.4922,0.0,0.0,0.0,0.49729,1.0,0.0,0.0 0.06584,0.01003,0.00855,0.91009,0.00073,3.42176,0.95,8.64301,0.54594,1.72261,0.01503,0.59179,0.40658,0.0,0.0987,0.46955,0.0,0.0,0.0,0.49729,0.80187,0.0,0.0
tune_scatter_plots.png
Ce fichier contient des diagrammes de dispersion générés à partir de tune_results.csv
vous aide à visualiser les relations entre les différents hyperparamètres et les mesures de performance. Notez que les hyperparamètres initialisés à 0 ne seront pas ajustés, tels que degrees
et shear
ci-dessous.
- Format: PNG
- Utilisation: Analyse exploratoire des données
poids/
Ce répertoire contient les modèles sauvegardés PyTorch pour la dernière et la meilleure itération lors du processus d'ajustement des hyperparamètres.
last.pt
: Les derniers.pt sont les poids de la dernière période d'apprentissage.best.pt
: Les meilleurs poids.pt pour l'itération qui a obtenu le meilleur score d'aptitude.
Grâce à ces résultats, vous pourrez prendre des décisions plus éclairées pour vos futures formations et analyses de modèles. N'hésitez pas à consulter ces artefacts pour comprendre les performances de votre modèle et savoir comment l'améliorer encore.
Conclusion
Le processus de réglage des hyperparamètres dans Ultralytics YOLO est simplifié mais puissant, grâce à son approche basée sur les algorithmes génétiques et axée sur la mutation. Les étapes décrites dans ce guide vous aideront à ajuster systématiquement votre modèle pour obtenir de meilleures performances.
Pour en savoir plus
- Optimisation des hyperparamètres dans Wikipedia
- YOLOv5 Guide d'évolution des hyperparamètres
- Optimisation efficace des hyperparamètres à l'aide de Ray Tune et de YOLO11
Pour plus d'informations, vous pouvez consulter la page Tuner
et la documentation qui l'accompagne. Si vous avez des questions, des demandes de fonctionnalités ou si vous avez besoin d'aide, n'hésitez pas à nous contacter sur GitHub ou Discord.
FAQ
Comment optimiser le taux d'apprentissage pour Ultralytics YOLO lors de l'ajustement des hyperparamètres ?
Pour optimiser le taux d'apprentissage pour Ultralytics YOLO , commencez par définir un taux d'apprentissage initial à l'aide de la fonction lr0
paramètre. Les valeurs courantes sont comprises entre 0.001
Ă 0.01
. Au cours du processus de réglage de l'hyperparamètre, cette valeur sera modifiée pour trouver le réglage optimal. Vous pouvez utiliser la fonction model.tune()
pour automatiser ce processus. En voici un exemple :
Exemple
Pour plus de détails, consultez la page de configurationUltralytics YOLO .
Quels sont les avantages de l'utilisation d'algorithmes génétiques pour l'ajustement des hyperparamètres dans YOLO11?
Les algorithmes génétiques dans Ultralytics YOLO11 fournissent une méthode robuste pour explorer l'espace des hyperparamètres, ce qui permet d'optimiser les performances du modèle. Les principaux avantages sont les suivants :
- Recherche efficace: Les algorithmes génétiques comme la mutation permettent d'explorer rapidement un large ensemble d'hyperparamètres.
- Éviter les minima locaux: en introduisant le caractère aléatoire, ils permettent d'éviter les minima locaux, ce qui garantit une meilleure optimisation globale.
- Mesures de performance: Ils s'adaptent en fonction de paramètres de performance tels que l'AP50 et le score F1.
Pour voir comment les algorithmes génétiques peuvent optimiser les hyperparamètres, consultez le guide sur l'évolution des hyperparamètres.
Combien de temps dure le processus de réglage des hyperparamètres pour Ultralytics YOLO ?
Le temps nécessaire à l'ajustement des hyperparamètres avec Ultralytics YOLO dépend largement de plusieurs facteurs tels que la taille de l'ensemble de données, la complexité de l'architecture du modèle, le nombre d'itérations et les ressources informatiques disponibles. Par exemple, l'ajustement de YOLO11n sur un ensemble de données comme COCO8 pour 30 époques peut prendre plusieurs heures, voire plusieurs jours, en fonction du matériel.
Pour gérer efficacement le temps de mise au point, définissez au préalable un budget de mise au point clair(lien interne de la section). Cela permet d'équilibrer l'allocation des ressources et les objectifs d'optimisation.
Quelles mesures dois-je utiliser pour évaluer la performance du modèle lors de l'ajustement des hyperparamètres dans YOLO?
Lors de l'évaluation des performances du modèle pendant l'ajustement des hyperparamètres dans YOLO, vous pouvez utiliser plusieurs mesures clés :
- AP50: La précision moyenne au seuil de 0,50 de l'IoU.
- Score F1: Moyenne harmonique de la précision et du rappel.
- Précision et rappel: Mesures individuelles indiquant la précision du modèle dans l'identification des vrais positifs par rapport aux faux positifs et aux faux négatifs.
Ces mesures vous aident à comprendre les différents aspects de la performance de votre modèle. Consultez le guide des mesures de performanceUltralytics YOLO pour obtenir une vue d'ensemble complète.
Puis-je utiliser Ultralytics HUB pour l'ajustement des hyperparamètres des modèles YOLO ?
Oui, vous pouvez utiliser Ultralytics HUB pour l'ajustement des hyperparamètres des modèles YOLO . Le HUB offre une plateforme sans code permettant de télécharger facilement des ensembles de données, d'entraîner des modèles et d'effectuer le réglage des hyperparamètres de manière efficace. Il permet de suivre et de visualiser en temps réel la progression et les résultats de l'ajustement.
Pour en savoir plus sur l'utilisation de Ultralytics HUB pour l'ajustement des hyperparamètres, consultez la documentation de formation deUltralytics HUB Cloud.