Optuna : À quoi sert cet outil en Machine Learning ?

-
3
 m de lecture
-
optuma

Optuna est un outil de recherche automatisé permettant l’optimisation des hyperparamètres de vos modèles en Machine Learning. Grâce à différentes méthodes de recherche et leur combinaison, cette librairie vous aide à identifier les hyperparamètres optimaux.

Pour rappel, les hyperparamètres correspondent aux données qui doivent être saisies manuellement par le développeur. À l’inverse de l’apprentissage via des données d’entraînement. Elles ont un impact significatif sur le fonctionnement du modèle et sur ses performances.

Par exemple, si vous souhaitez entraîner un réseau neuronal uniquement avec des couches linéaires, les hyperparamètres potentiels seraient notamment :

  • Nombre de couches ;
  • Unités par couche ;
  • Learning Rate (taux d’apprentissage) ;
  • Force de régularisation ;
  • Fonction d’activation.

Même si vous avez seulement deux valeurs potentielles par variable, vous pouvez rapidement vous retrouver avec un nombre d’expériences impressionnant (et chronophage). Vous pouvez donc le faire manuellement avec des techniques comme la validation croisée ou l’optimisation par essais et erreurs ou choisir Optuna pour automatiser ce processus.

Comment fonctionne Optuna ?

Le principe d’Optuna consiste pour l’utilisateur à fournir un espace d’hyperparamètres à tester. L’outil va ensuite déterminer la combinaison d’hyperparamètres qui optimisent le modèle de Machine Learning. Pour ce faire, vous devez fournir à Optuna une métrique de performance. L’outil fera tout son possible pour l’optimiser.

L’outil de recherche a séparé des algorithmes en deux catégories différentes : la stratégie d’échantillonnage (sampling strategy) et la stratégie de réduction (pruning strategy). La stratégie d’échantillonnage cache en réalité trois méthodes distinctes :

  • La recherche aléatoire (random search) : elle sélectionne les hyperparamètres aléatoirement dans l’espace de recherche défini. Elle s’avère intéressante lorsque vous ne savez pas quoi essayer.
  • La recherche en grille (grid search) : elle essaie toutes les combinaisons possibles dans l’espace de recherche défini. Elle est utile lorsque vous souhaitez essayer une idée précise. En revanche, elle demande un temps considérable si votre espace de recherche est trop large.
  • L’optimisation Bayésienne : elle utilise d’abord la recherche aléatoire, puis peaufine les hyperparamètres en fonction des résultats. Elle s’avère souvent plus efficace que la recherche aléatoire, car elle oriente ses essais en fonction des résultats précédents.

Au-delà de la stratégie d’échantillonnage, la « pruning strategy » permet de réduire le nombre d’essais inutiles grâce au Early Stopping (arrêt prématuré) de ceux qui semblent les moins prometteurs. Vous pouvez ainsi économiser du temps de calcul. Retenez bien que si vous ne spécifiez pas de stratégie, Optuna utilisera par défaut la stratégie d’échantillonnage avec la recherche aléatoire. Ainsi, vous n’utiliserez aucun moyen de réduire le nombre d’essais. 

Quels sont les avantages d’Optuna ?

Dès que vous avez besoin d’optimiser les hyperparamètres de vos modèles de Machine Learning, Optuna apparaît comme la meilleure solution pour automatiser le processus. Cette solution comporte de nombreux avantages. La première est sa facilité d’utilisation. En effet, l’outil de recherche s’intègre facilement dans vos pipelines de machine learning existants. Vous n’avez donc qu’à définir votre espace de recherche d’hyperparamètres et la fonction de perte ou de coût (loss function).

Ensuite, Optuna propose différentes méthodes de recherche (détaillées précédemment). Ces différentes méthodes vous offrent la possibilité d’ajuster votre recherche en fonction du cas d’utilisation. De plus, l’outil peut être utilisé sur n’importe quel modèle de Machine Learning. Clustering, classification ou régression, il prend tout en charge.

Avec une visualisation facile des résultats, Optuna vous permet de mieux comprendre comment les hyperparamètres influencent les performances de votre modèle. Vous avez donc toutes les clefs en main pour déterminer la configuration optimale d’hyperparamètres pour votre modèle. Tout cela grâce à un projet gratuit et open-source.

Comment optimiser les hyperparamètres de son modèle avec Optuna ?

Maintenant que vous avez conscience de l’importance d’Optuna et du gain de temps avec son utilisation, découvrez comment le mettre en place. 

  1. Commencez par importer les modules Optuna et les autres modules dont vous avez besoin pour définir votre modèle et votre loss function : ‘!pip install optuna’.
  2. Définissez l’espace de recherche d’hyperparamètres. Pour ce faire, utilisez la fonction ‘create_study’ pour créer un objet « study ». Spécifiez l’espace de recherche d’hyperparamètres en utilisant les fonctions ‘suggest_uniform’ et ‘suggest_loguniform’.
  3. Définissez la fonction de coût : elle doit prendre en entrée une configuration d’hyperparamètres et renvoyer vers un score de performance.
  4. Lancez la recherche d’hyperparamètres en appelant la fonction ‘optimize’ de l’objet « study » avec votre fonction de coût en tant qu’argument. Optuna va alors commencer à rechercher les meilleurs hyperparamètres en utilisant la stratégie d’échantillonnage que vous avez choisie (par défaut, la recherche aléatoire).
  5. Accédez aux résultats en utilisant les fonctions ‘get_best_params’ et ‘get_best_value’. Vous pouvez aussi utiliser les fonctions de visualisation de Optuna ‘plot_intermediate_values’ et ‘plot_optimization_history’.

Ci-dessous, retrouvez l’exemple pour optimiser les hyperparamètres d’un modèle de régression linéaire avec Optuna : 

import optuna

 

# Créer l’objet « study » et définir l’espace de recherche d’hyperparamètres

study = optuna.create_study()

study.suggest_uniform(« alpha », 0.0, 1.0)

study.suggest_uniform(« l1_ratio », 0.0, 1.0)

 

# Définir la fonction de coût

def objective(trial):

alpha = trial.suggest_uniform(« alpha », 0.0, 1.0)

l1_ratio = trial.suggest_uniform(« l1_ratio », 0.0, 1.0)

model = Lasso(alpha=alpha, l1_ratio=l1_ratio)

score = -1.0 * cross_val

En conclusion

Optuna est un outil de recherche automatisée efficace pour optimiser les hyperparamètres de ses modèles de Machine Learning. Sa facilité, sa flexibilité quant au choix d’algorithmes d’optimisation et son intégration aux pipelines existants le rendent incontournable.

Vous savez tout désormais sur Optuma. Si vous désirez maîtriser cet outil pour automatiser vos processus en déployant des modèles de Machine Learning, découvrez les formations de DataScientest.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?