Utilisateur:Franck Pepper/Optimisation des hyperparamètres

Une page de Wikipédia, l'encyclopédie libre.

Dans le domaine de l'apprentissage automatique, l'optimisation (ou réglage) des hyperparamètres [1] consiste à choisir un ensemble d'hyperparamètres optimaux pour un algorithme d'apprentissage. Un hyperparamètre est un paramètre dont la valeur est utilisée pour contrôler le processus d'apprentissage. En revanche, les valeurs des autres paramètres (généralement les poids des nœuds) sont apprises (elles résultent de l'apprentissage).

Le même type de modèle d'apprentissage automatique peut nécessiter différentes contraintes, poids ou taux d'apprentissage pour généraliser différentes configurations de données. Ces mesures sont appelées hyperparamètres et doivent être ajustées afin que le modèle puisse résoudre de manière optimale le problème d'apprentissage automatique. L'optimisation des hyperparamètres consiste à déterminer un ensemble d'hyperparamètres qui produise un modèle optimal, c'est-à-dire qui minimise une fonction de perte prédéfinie pour un ensemble donné de données indépendantes.[2] Cette fonction objectif prend en argument un ensemble d'hyperparamètres et retourne la perte associée. [2] La validation croisée est souvent utilisée pour estimer cette performance de généralisation et permet ainsi de sélectionner l'ensemble de valeurs d'hyperparamètres qui la maximise. [3]

Approches[modifier | modifier le code]

Recherche en grille sur différentes valeurs de deux hyperparamètres. Pour chaque hyperparamètre, 10 valeurs différentes sont prises en compte, ce qui donne un total de 100 combinaisons différentes évaluées et comparées. Les contours bleus indiquent les régions avec de bons résultats, tandis que les contours rouges montrent les régions avec de mauvais résultats.

Recherche en grille[modifier | modifier le code]

La méthode traditionnelle pour effectuer l'optimisation des hyperparamètres est la recherche en grille, ou balayage des paramètres, qui consiste simplement à effectuer une recherche exhaustive dans un sous-ensemble spécifié manuellement de l'espace des hyperparamètres d'un algorithme d'apprentissage. Un algorithme de recherche de grille doit être guidé par une métrique de performance, généralement mesurée par validation croisée sur l'ensemble d'entraînement [4] ou bien par une évaluation sur un ensemble de validation distinct. [5]

Étant donné que l'espace des paramètres d'un algorithme d'apprentissage peut inclure des espaces de valeurs réelles ou non bornées pour certains paramètres, il peut être nécessaire de définir manuellement des bornes et une discrétisation avant d'appliquer la recherche en grille.

Par exemple, un classifieur SVM à marge souple équipé d'un noyau RBF possède au moins deux hyperparamètres qui doivent être ajustés pour obtenir de bonnes performances sur des données non vues : une constante de régularisation C et un hyperparamètre de noyau γ. Comme ces deux paramètres sont continus, pour effectuer une recherche en grille, on sélectionne pour chacun d'eux un ensemble fini de valeurs "raisonnables", par exemple :

La recherche en grille entraîne ensuite un SVM avec chaque paire ( C, γ) dans le produit cartésien de ces deux ensembles et évalue leurs performances sur un ensemble de validation distinct (ou par validation croisée interne sur l'ensemble d'entraînement, auquel cas plusieurs SVM sont entraînés pour chaque paire). Finalement, l'algorithme de recherche en grille retourne les paramètres qui ont obtenu le meilleur score lors de la procédure de validation.

La recherche en grille souffre de la malédiction de la dimensionnalité, mais elle peut la plupart du temps être parallélisée sans effort particulier, car les hyperparamètres évalués sont généralement indépendants les uns des autres. [3]

Recherche aléatoire sur différentes combinaisons de valeurs pour deux hyperparamètres. Dans cet exemple, 100 choix aléatoires différents sont évalués. Les barres vertes montrent la prise en compte d'un plus grand nombre de valeurs individuelles pour chaque hyperparamètre qu'avec une recherche en grille.

Recherche aléatoire[modifier | modifier le code]

La recherche aléatoire remplace l'énumération exhaustive de toutes les combinaisons en les sélectionnant de manière aléatoire. Cela peut être simplement appliqué au cadre discret décrit ci-dessus, mais se généralise également aux espaces continus et mixtes. Elle peut surpasser la recherche en grille, surtout lorsque seul un petit nombre d'hyperparamètres affecte les performances finales de l'algorithme d'apprentissage automatique. [3] Dans ce cas, on dit du problème d'optimisation qu'il est de faible dimensionnalité intrinsèque. [6] La recherche aléatoire est également trivialement parallélisable et permet en outre l'inclusion de connaissances a priori en spécifiant la distribution à partir de laquelle échantillonner. Malgré sa simplicité, la recherche aléatoire reste l'une des bases de référence importantes pour comparer les performances de nouvelles méthodes d'optimisation d'hyperparamètres.

Des méthodes telles que l'optimisation bayésienne explorent intelligemment l'espace des choix potentiels d'hyperparamètres en décidant, à chaque étape, quelle est est la combinaison suivante à explorer compte tenu des observations précédentes.

Optimisation bayésienne[modifier | modifier le code]

L'optimisation bayésienne est une méthode d'optimisation globale pour les fonctions boîte noire bruitées. Appliquée à l'optimisation des hyperparamètres, l'optimisation bayésienne construit un modèle probabiliste de la fonction qui associe les valeurs des hyperparamètres à l'objectif évalué sur un ensemble de validation.

Par mises à jour successives partant d'un modèle initial basé sur une configuration prometteuse d'hyperparamètres, l'optimisation bayésienne vise à recueillir itérativement des observations révélant autant que possible la forme de cette fonction et, en particulier, à circonscrire la position de l'optimum.

Elle cherche à équilibrer l'exploration (les hyperparamètres pour lesquels le résultat est le plus incertain) et l'exploitation (les hyperparamètres supposés proches de l'optimum).

En pratique, il a été démontré[7][8][9][10] que l'optimisation bayésienne obtient de meilleurs résultats avec moins d'évaluations par rapport à la recherche en grille et à la recherche aléatoire, grâce à sa capacité à raisonner sur la qualité des expériences en amont de leur exécution.

Optimisation basée sur le gradient[modifier | modifier le code]

Pour certains algorithmes d'apprentissage spécifiques, il est possible de calculer le gradient par rapport aux hyperparamètres, puis d'optimiser ces derniers en utilisant la descente de gradient. Les premières utilisations de ces techniques étaient axées sur les réseaux neuronaux. [11] Depuis, ces méthodes ont été étendues à d'autres modèles tels que les machines à vecteurs de support [12] ou la régression logistique. [13]

Une approche alternative pour obtenir un gradient par rapport aux hyperparamètres consiste à différencier les étapes d'un algorithme d'optimisation itératif à l'aie de la dérivation automatique. [14] [15] [16] Un travail plus récent dans cette direction utilise le théorème de la fonction implicite pour calculer les hypergradients et propose une approximation stable de la hessienne inverse. La méthode est évolutive pour des millions d'hyperparamètres et nécessite une mémoire constante.

Une autre approche [17] consiste à entraîner un hyper-réseau pour approximer la meilleure fonction de réponse. L'un des avantages de cette méthode est qu'elle peut également gérer des hyperparamètres discrets. Les réseaux auto-adaptatifs [18] offrent une version économe en mémoire de cette approche en choisissant une représentation compacte pour l'hyper-réseau. Plus récemment, Δ-STN [19] a encore amélioré cette méthode par un léger reparamétrage de l'hyper-réseau qui accélère l'entraînement. Δ-STN fournit également une meilleure approximation du Jacobien de la meilleure réponse en linéarisant le réseau dans les poids, éliminant ainsi les effets non linéaires indésirable lors des changements importants de poids.

En dehors des approches basées sur les hyper-réseaux, les méthodes basées sur les gradients peuvent également être utilisées pour optimiser les hyperparamètres discrets en adoptant une relaxation continue des paramètres. [20] De telles méthodes ont été largement utilisées pour l'optimisation des hyperparamètres d'architecture dans la recherche d'architecture neuronale.

Optimisation évolutionniste[modifier | modifier le code]

L'optimisation évolutionniste est une méthodologie pour l'optimisation globale de fonctions boîte noire bruitées. Dans l'optimisation des hyperparamètres, l'optimisation évolutionniste utilise des algorithmes évolutionnistes pour explorer l'espace des hyperparamètres pour un algorithme donné.[8] L'optimisation évolutionniste des hyperparamètres suit un processus inspiré du concept biologique d'évolution :

  1. Créer une population initiale de solutions aléatoires (c'est-à-dire générer aléatoirement des listes d'hyperparamètres, généralement plus de 100)
  2. Évaluer les listes d'hyperparamètres et obtenir leur fonction de qualité d'ajustement (par exemple, l'exactitude de la validation croisée à 10 plis du modèle d'apprentissage automatique avec ces hyperparamètres)
  3. Classer les listes d'hyperparamètres en fonction de leur qualité d'ajustement relative
  4. Remplacer les listes d'hyperparamètres les moins performants par de nouvelles listes d'hyperparamètres générés par enjambement et mutation
  5. Répéter les étapes 2 à 4 jusqu'à ce que la performance de l'algorithme soit satisfaisante ou que la performance de l'algorithme ne s'améliore plus

L'optimisation évolutionniste a été utilisée dans l'optimisation des hyperparamètres pour les algorithmes statistiques d'apprentissage automatique, l'apprentissage automatique automatisé, la recherche d'architecture de réseau de neurones typique [21] et de réseau de neurones profond, , ainsi que l'entraînement des poids dans les réseaux de neurones profonds.

Basé sur la population[modifier | modifier le code]

L'entraînement basée sur la population (PBT) apprend à la fois les valeurs d'hyperparamètres et les poids du réseau. Plusieurs processus d'apprentissage fonctionnent indépendamment, en utilisant différents hyperparamètres. À l'instar des méthodes évolutionnistes, les modèles de performance médiocre sont itérativement remplacés par des modèles adoptant les valeurs d'hyperparamètres et les poids modifiés des modèles les plus performants. Ce démarrage à chaud du modèle de remplacement est la principale différence entre le PBT et les autres méthodes évolutionnistes. Le PBT permet ainsi aux hyperparamètres d'évoluer et élimine le besoin d'un réglage manuel des hyperparamètres. Ce processus ne fait aucune hypothèse concernant l'architecture du modèle, les fonctions de perte ou les procédures d'entraînement.

La PBT et ses variantes sont des méthodes adaptatives : elles mettent à jour des hyperparamètres lors de l'entraînement des modèles. À l'opposé, les méthodes non adaptatives ont la stratégie sous-optimale de fixer a priori un ensemble constant d'hyperparamètres pour l'ensemble de la phase d'entraînement. [22]

Basé sur l'arrêt anticipé[modifier | modifier le code]

Une classe d'algorithmes d'optimisation des hyperparamètres basés sur l'arrêt anticipé est spécialement conçue pour les espaces de recherche étendus comprenant des hyperparamètres continus et discrets, en particulier lorsque le coût calculatoire pour évaluer les performances d'un ensemble d'hyperparamètres est élevé. Irace met en œuvre l'algorithme de course itérative, qui concentre la recherche autour des configurations les plus prometteuses en utilisant des tests statistiques pour éliminer celles qui ont de mauvaises performances. [23] [24] Un autre algorithme d'optimisation des hyperparamètres basé sur l'arrêt anticipé est le Successive Halving (SHA), qui commence par une recherche aléatoire mais élague périodiquement les modèles peu performants, concentrant ainsi les ressources de calcul sur des modèles plus prometteurs. L'Asynchronous Successive Halving (ASHA) améliore encore le profil d'utilisation des ressources du SHA en se passant de l'évaluation et de l'élagage synchrones des modèles peu performants. Hyperband [25] est un algorithme basé sur l'arrêt anticipé de niveau supérieur qui invoque SHA ou ASHA plusieurs fois avec différents niveaux d'agressivité d'élagage, ce qui lui permet d'être plus largement applicable et de requérir moins d'entrées.

Autres[modifier | modifier le code]

Des approches basées sur les RBF [26] et les méthodes spectrales [27] ont également été développées.

Problèmes avec l'optimisation des hyperparamètres[modifier | modifier le code]

Lorsque l'optimisation des hyperparamètres est effectuée, l'ensemble d'hyperparamètres est souvent ajusté sur un ensemble d'entraînement et sélectionné en fonction des performances de généralisation, ou score, sur un ensemble de validation. Cependant, cette procédure présente un risque de sur-ajustement des hyperparamètres à l'ensemble de validation. Par conséquent, le score de performance de généralisation de l'ensemble de validation (qui peut comprendre plusieurs ensembles dans le cas d'une procédure de validation croisée) ne peut pas être utilisé pour estimer simultanément la performance de généralisation du modèle final. Pour ce faire, la performance de généralisation doit être évaluée sur un ensemble indépendant (sans intersection) de l'ensemble (ou des ensembles) utilisé(s) pour l'optimisation des hyperparamètres, sinon la performances pourraient donner une valeur trop optimiste (trop élevée). Cela peut être réalisé sur un deuxième ensemble de test, ou via une procédure de validation croisée externe appelée validation croisée imbriquée, qui permet une estimation impartiale de la performance de généralisation du modèle, en tenant compte du biais dû à l'optimisation des hyperparamètres.

Articles connexes[modifier | modifier le code]

Références[modifier | modifier le code]

  1. Matthias Feurer and Frank Hutter. Hyperparameter optimization. In: AutoML: Methods, Systems, Challenges, pages 3–38.
  2. a et b (en) Marc Claesen et Bart De Moor, « Hyperparameter Search in Machine Learning », .
  3. a b et c James Bergstra et Yoshua Bengio, « Random Search for Hyper-Parameter Optimization », Journal of Machine Learning Research, vol. 13,‎ , p. 281–305 (lire en ligne)
  4. Chin-Wei Hsu, Chih-Chung Chang and Chih-Jen Lin (2010). A practical guide to support vector classification. Technical Report, National Taiwan University.
  5. « Ten quick tips for machine learning in computational biology », BioData Mining, vol. 10, no 35,‎ , p. 35 (PMID 29234465, PMCID 5721660, DOI 10.1186/s13040-017-0155-3)
  6. (en) Ziyu, Frank, Masrour et David, « Bayesian Optimization in a Billion Dimensions via Random Embeddings », Journal of Artificial Intelligence Research, vol. 55,‎ , p. 361–387 (DOI 10.1613/jair.4806, arXiv 1301.1942, S2CID 279236)
  7. « {{{1}}} »
  8. a et b « {{{1}}} »
  9. Jasper Snoek, Hugo Larochelle et Ryan Adams, « Practical Bayesian Optimization of Machine Learning Algorithms », Advances in Neural Information Processing Systems,‎ (Bibcode 2012arXiv1206.2944S, arXiv 1206.2944, lire en ligne)
  10. Chris Thornton, Frank Hutter, Holger Hoos et Kevin Leyton-Brown, « Auto-WEKA: Combined selection and hyperparameter optimization of classification algorithms », Knowledge Discovery and Data Mining,‎ (Bibcode 2012arXiv1208.3719T, arXiv 1208.3719, lire en ligne)
  11. Larsen, Hansen, Svarer et Ohlsson, « Design and regularization of neural networks: the optimal use of a validation set », Proceedings of the 1996 IEEE Signal Processing Society Workshop,‎ , p. 62–71 (ISBN 0-7803-3550-3, DOI 10.1109/NNSP.1996.548336, S2CID 238874, CiteSeerx 10.1.1.415.3266, lire en ligne)
  12. Olivier Chapelle, Vladimir Vapnik, Olivier Bousquet et Sayan Mukherjee, « Choosing multiple parameters for support vector machines », Machine Learning, vol. 46,‎ , p. 131–159 (DOI 10.1023/a:1012450327387, lire en ligne)
  13. Chuong B, Chuan-Sheng Foo et Andrew Y Ng, « Efficient multiple hyperparameter learning for log-linear models », Advances in Neural Information Processing Systems, vol. 20,‎ (lire en ligne)
  14. Domke, « Generic Methods for Optimization-Based Modeling », Aistats, vol. 22,‎ (lire en ligne [archive du ], consulté le )
  15. Franceschi, Donini, Frasconi et Pontil, « Forward and Reverse Gradient-Based Hyperparameter Optimization », Proceedings of the 34th International Conference on Machine Learning,‎ (Bibcode 2017arXiv170301785F, arXiv 1703.01785, lire en ligne)
  16. Shaban, A., Cheng, C. A., Hatch, N., & Boots, B. (2019, April). Truncated back-propagation for bilevel optimization. In The 22nd International Conference on Artificial Intelligence and Statistics (pp. 1723-1732). PMLR.
  17. Lorraine, J., & Duvenaud, D. (2018). Stochastic hyperparameter optimization through hypernetworks. arXiv preprint arXiv:1802.09419.
  18. MacKay, M., Vicol, P., Lorraine, J., Duvenaud, D., & Grosse, R. (2019). Self-tuning networks: Bilevel optimization of hyperparameters using structured best-response functions. arXiv preprint arXiv:1903.03088.
  19. Bae, J., & Grosse, R. B. (2020). Delta-stn: Efficient bilevel optimization for neural networks using structured response jacobians. Advances in Neural Information Processing Systems, 33, 21725-21737.
  20. Liu, H., Simonyan, K., & Yang, Y. (2018). Darts: Differentiable architecture search. arXiv preprint arXiv:1806.09055.
  21. « The effects of scheduling, workload type and consolidation scenarios on virtual machine performance and their prediction through optimized artificial neural networks », Journal of Systems and Software, vol. 84, no 8,‎ , p. 1270–1291 (DOI 10.1016/j.jss.2011.04.013, hdl 11382/361472, lire en ligne)
  22. (en) Auteur inconnu, « A Generalized Framework for Population Based Training », .
  23. López-Ibáñez, Dubois-Lacoste, Pérez Cáceres et Stützle, « The irace package: Iterated Racing for Automatic Algorithm Configuration », Operations Research Perspective, vol. 3, no 3,‎ , p. 43–58 (DOI 10.1016/j.orp.2016.09.002)
  24. Birattari, Stützle, Paquete et Varrentrapp, « A Racing Algorithm for Configuring Metaheuristics », Gecco 2002,‎ , p. 11–18
  25. Li, Jamieson, DeSalvo et Rostamizadeh, « Hyperband: A Novel Bandit-Based Approach to Hyperparameter Optimization », Journal of Machine Learning Research, vol. 18,‎ , p. 1–52 (arXiv 1603.06560)
  26. (en) Auteur inconnu, « An effective algorithm for hyperparameter optimization of neural networks », .
  27. (en) Auteur inconnu, « Hyperparameter Optimization: A Spectral Approach », .

[[Catégorie:Optimisation]] [[Catégorie:Apprentissage automatique]] [[Catégorie:Pages avec des traductions non relues]]