Site icon Blog ARC Optimizer

Les algorithmes d'apprentissage automatique et l'art de la sélection d'hyperparamètre


Les algorithmes d'apprentissage automatique sont utilisés partout, d'un smartphone à un vaisseau spatial. Ils vous indiquent les prévisions météorologiques pour demain, les traduisent d'une langue à une autre et vous suggèrent les séries télévisées que vous pourriez aimer sur Netflix.

Ces algorithmes ajustent (apprennent) automatiquement leurs paramètres internes en fonction des données. Cependant, il existe un sous-ensemble de paramètres qui n'est pas appris et qui doivent être configurés par un expert. Ces paramètres sont souvent appelés «hyperparamètres» et ont un impact important sur notre vie à mesure que l'utilisation de l'IA augmente.

Par exemple, la profondeur de l'arbre dans un modèle d'arbre de décision et le nombre de couches dans un neurone artificiel. réseau sont des hyperparamètres typiques. La performance d'un modèle peut dépendre de façon drastique du choix de ses hyperparamètres. Un arbre de décision peut donner de bons résultats pour une profondeur d'arbre modérée et de très mauvaises performances pour des arbres très profonds.

Le choix des hyperparamètres optimaux relève plus de l'art que de la science, si nous voulons l'exécuter manuellement. En effet, la sélection optimale des valeurs de l'hyperparamètre dépend du problème à résoudre.

Comme les algorithmes, les objectifs, les types de données et les volumes de données changent considérablement d'un projet à l'autre, il n'existe pas de meilleur choix pour les valeurs d'hyperparamètre qui convient à tous les modèles et à tous les problèmes. Les hyperparamètres doivent plutôt être optimisés dans le contexte de chaque projet d’apprentissage automatique.

Dans cet article, nous commencerons par un examen de la puissance d’une stratégie d’optimisation, puis une vue d’ensemble des quatre stratégies d’optimisation couramment utilisées: [19659007] Recherche par grille

  • Recherche au hasard
  • Escalade
  • Optimisation bayésienne
  • La stratégie d’optimisation

    Même avec des connaissances approfondies du domaine par un expert, la tâche d’optimisation manuelle des hyperparamètres modèles peut être très long. Une approche alternative consiste à mettre l'expert de côté et à adopter une approche automatique. On appelle stratégie d'optimisation une procédure automatique permettant de détecter l'ensemble optimal d'hyperparamètres pour un modèle donné dans un projet donné en termes de métrique de performance.

    Une procédure d'optimisation typique définit l'ensemble possible d'hyperparamètres et la métrique à maximiser. minimisé pour ce problème particulier. Ainsi, en pratique, toute procédure d'optimisation suit les étapes classiques suivantes:

    • 1) Divisez les données disponibles en sous-ensembles d'apprentissage et de test
    • 2) Répétez la boucle d'optimisation un nombre fixe de fois. ou jusqu'à ce qu'une condition soit remplie:
      • a) Sélectionnez un nouvel ensemble d'hyperparamètres modèles
      • b) Entraînez le modèle sur le sous-ensemble d'apprentissage à l'aide de l'ensemble d'hyperparamètres sélectionné
      • c) Appliquez le modèle au sous-ensemble de test et générez les prédictions correspondantes
      • d) Évaluez les prédictions de test à l'aide de la métrique de notation appropriée au problème concerné, telle que la précision ou la moyenne. erreur absolue. Mémorise la valeur métrique correspondant au jeu d'hyperparamètres sélectionné
    • 3) Comparez toutes les valeurs métriques et choisissez le jeu d'hyperparamètre donnant la meilleure valeur métrique

    La question est de savoir comment passer de l'étape 2d à l'étape précédente 2a pour la prochaine itération; comment sélectionner le prochain jeu d’hyperparamètres, en s’assurant qu’il est réellement meilleur que le précédent. Nous aimerions que notre boucle d'optimisation évolue vers une solution raisonnablement bonne, même si ce n'est peut-être pas la solution optimale. En d'autres termes, nous voulons être raisonnablement certains que le prochain jeu d'hyperparamètres constitue une amélioration par rapport au précédent.

    Une procédure d'optimisation typique considère un modèle d'apprentissage automatique comme une boîte noire. Cela signifie qu'à chaque itération pour chaque ensemble d'hyperparamètres sélectionné, tout ce qui nous intéresse est la performance du modèle mesurée par la métrique sélectionnée. Nous n'avons pas besoin (vouloir) savoir quel genre de magie se passe à l'intérieur de la boîte noire. Nous devons simplement passer à la prochaine itération et effectuer une itération lors de la prochaine évaluation des performances, etc.

    Le facteur clé dans toutes les stratégies d'optimisation consiste à savoir comment sélectionner le prochain ensemble de valeurs d'hyperparamètre à l'étape 2a, en fonction de la précédente. sorties métriques à l'étape 2d. Par conséquent, pour une expérience simplifiée, nous omettons l'apprentissage et le test de la boîte noire et nous nous concentrons sur le calcul métrique (une fonction mathématique) et la stratégie pour sélectionner le prochain ensemble d'hyperparamètres. De plus, nous avons substitué le calcul métrique avec une fonction mathématique arbitraire et l'ensemble des hyperparamètres de modèle avec les paramètres de fonction

    . Ainsi, la boucle d'optimisation fonctionne plus rapidement et reste aussi générale que possible. Une autre simplification consiste à utiliser une fonction avec un seul hyperparamètre pour permettre une visualisation facile. Vous trouverez ci-dessous la fonction utilisée pour illustrer les quatre stratégies d'optimisation. Nous voudrions souligner que toute autre fonction mathématique aurait également bien fonctionné.

    f (x) = sin (x / 2) + 0.5⋅sin (2⋅x) + 0.25cos (4.5⋅x) [19659026] Cette configuration simplifiée nous permet de visualiser les valeurs expérimentales d’un hyperparamètre et les valeurs de fonction correspondantes sur un graphique xy simple. Les valeurs de l’hyperparamètre sont sur l’axe des x et les sorties de la fonction sur l’axe des y. Les points (x, y) sont ensuite colorés selon un dégradé blanc-rouge décrivant la position du point dans la génération de la séquence d'hyperparamètre.

    Les points les plus blancs correspondent aux valeurs d'hyperparamètre générées plus tôt dans le processus; les points les plus rouges correspondent aux valeurs d'hyperparamètre générées ultérieurement dans le processus. Cette coloration en dégradé sera utile par la suite pour illustrer les différences entre les stratégies d'optimisation.

    Le but de la procédure d'optimisation dans ce cas d'utilisation simplifié est de rechercher l'hyperparamètre qui maximise la valeur de la fonction.

    Commençons notre examen de quatre stratégies d'optimisation communes utilisées pour identifier le nouvel ensemble de valeurs d'hyperparamètre pour la prochaine itération de la boucle d'optimisation.

    Recherche par grille

    Il s'agit d'une stratégie de base en force brute . Si vous ne savez pas quelles valeurs essayer, essayez-les toutes. Toutes les valeurs possibles dans une plage avec une étape fixe sont utilisées dans l'évaluation de la fonction.

    Par exemple, si la plage est [0, 10] et que la taille du pas est 0,1, alors nous obtiendrions la séquence des valeurs d'hyperparamètre (0, 0,1, 0,2, 0,3,… 9,5, 9,6, 9,7, 9,8, 9,9, 10 ). Dans une stratégie de recherche en grille, nous calculons la sortie de fonction pour chacune de ces valeurs d'hyperparamètre. Par conséquent, plus la grille est fine, plus nous nous rapprochons de l'optimum – mais également plus les ressources de calcul requises sont élevées.

    Figure 1: Recherche dans la grille des valeurs d'hyperparamètre sur une plage [0, 10] à l'étape 0.1. Le dégradé de couleur reflète la position dans la séquence générée de candidats hyperparamètres. Les points les plus blancs correspondent aux valeurs d'hyperparamètre générées plus tôt dans le processus; les points rouges correspondent aux valeurs d'hyperparamètre générées plus tard.

    Comme le montre la figure 1, la plage de l'hyperparamètre est balayée des valeurs petites à grandes.

    La stratégie de recherche par grille peut fonctionner correctement dans le cas d'un paramètre unique, mais cela devient très inefficace lorsque plusieurs paramètres doivent être optimisés simultanément.

    Recherche aléatoire

    Pour la stratégie de recherche aléatoire les valeurs des hyperparamètres sont sélectionnées de manière aléatoire, comme son nom l'indique. Cette stratégie est généralement préférée dans le cas d'hyperparamètres multiples et elle est particulièrement efficace lorsque certains hyperparamètres affectent la métrique finale plus que d'autres.

    Là encore, les valeurs d'hyperparamètre sont générées dans une plage [0, 10]. Ensuite, un nombre fixe N d'hyperparamètres est généré aléatoirement. Le nombre fixe N d’hyperparamètres prédéfinis à expérimenter vous permet de contrôler la durée et la vitesse de cette stratégie d’optimisation. Plus le N est grand, plus la probabilité d'atteindre l'optimum est grande, mais également plus les ressources de calcul requises sont élevées.

    Figure 2: Recherche aléatoire des valeurs de l'hyperparamètre sur une plage [0, 10]. Le dégradé de couleur reflète la position dans la séquence générée de candidats hyperparamètres. Les points les plus blancs correspondent aux valeurs d'hyperparamètre générées plus tôt dans le processus; les points rouges correspondent aux valeurs d'hyperparamètre générés plus tard.

    Comme prévu, les valeurs d'hyperparamètre de la séquence générée sont utilisées dans un ordre décroissant ou croissant: les points blancs et rouges se mélangent de manière aléatoire dans le graphique.

    L'escalade

    L'approche d'escalade de colline à chaque itération sélectionne la meilleure direction dans l'espace hyperparamètre pour choisir la valeur d'hyperparamètre suivante. Si aucun voisin n'améliore la métrique finale, la boucle d'optimisation s'arrête.

    Notez que cette procédure diffère de la grille et des recherches aléatoires sur un aspect important: la sélection de la valeur d'hyperparamètre suivante prend en compte les résultats des itérations précédentes.

    Figure 3: Recherche ascendante des valeurs d'hyperparamètre sur un [0, 10] gamme. Le dégradé de couleur reflète la position dans la séquence générée de candidats hyperparamètres. Les points les plus blancs correspondent aux valeurs d'hyperparamètre générées plus tôt dans le processus; les points rouges correspondent aux valeurs d'hyperparamètre générés plus tard.

    La figure 3 montre que la stratégie d'escalade appliquée à notre fonction a démarré à une valeur d'hyperparamètre aléatoire, x = 8.4 puis s'est déplacée vers la fonction maximum y. = 0,4 à x = 6,9 . Une fois le maximum atteint, aucune augmentation supplémentaire de la métrique n’a été observée chez le voisin voisin et la procédure de recherche s’est arrêtée.

    Cet exemple illustre une mise en garde liée à cette stratégie: il peut rester bloqué dans un maximum secondaire. Les autres graphiques montrent que le maximum global est situé à x = 4,0 avec la valeur métrique correspondante de 1,6 . Cette stratégie ne trouve pas le maximum global mais reste bloquée dans un local. En règle générale, cette méthode consiste à l'exécuter plusieurs fois avec des valeurs de départ différentes et à vérifier si l'algorithme converge vers le même maximum.

    Optimisation bayésienne

    La stratégie d'optimisation bayésienne sélectionne l'option La valeur d'hyperparamètre suivante basée sur les sorties de fonction des itérations précédentes, similaire à la stratégie d'escalade. Contrairement à l'escalade, l'optimisation bayésienne considère les itérations passées globalement et pas seulement la dernière.

    Cette procédure comporte généralement deux phases :

    • : lors de la première phase, les valeurs d'hyperparamètre sont les suivantes: généré au hasard. Après un nombre N défini par l'utilisateur de telles générations aléatoires d'hyperparamètres, la deuxième phase débute.
    • Dans la deuxième phase, à chaque itération, un modèle de «substitution» de type P (sortie | hyperparamètres passés) [Onestimeque19659053] décrit la probabilité conditionnelle des valeurs de sortie sur les valeurs d'hyperparamètre à partir d'itérations antérieures. Ce modèle de substitution est beaucoup plus facile à optimiser que la fonction d'origine. Ainsi, l'algorithme optimise le substitut et suggère les valeurs d'hyperparamètre au maximum du modèle de substitution comme valeurs optimales pour la fonction d'origine. Une fraction des itérations de la deuxième phase est également utilisée pour sonder des zones situées en dehors de la région optimale. Ceci évite le problème des maxima locaux.

    Figure 4: Optimisation bayésienne des valeurs de l'hyperparamètre sur une plage [0, 10]. Le dégradé de couleur reflète la position dans la séquence générée de candidats hyperparamètres. Les points les plus blancs correspondent aux valeurs d'hyperparamètre générées plus tôt dans le processus; les points rouges correspondent aux valeurs d'hyperparamètre générées ultérieurement. Les points gris sont générés dans la première phase aléatoire de la stratégie.

    La figure 4 montre que la stratégie d'optimisation bayésienne utilise la phase de préchauffage pour définir la zone la plus prometteuse, puis sélectionne les valeurs suivantes pour les hyperparamètres de cette zone.

    Vous pouvez également voir que les points rouges intenses sont regroupés plus près du maximum, tandis que les points rouge pâle et blancs sont dispersés. Cela démontre que la définition de la région optimale est améliorée à chaque itération de la deuxième phase.

    Résumé

    Nous connaissons tous l'importance de l'optimisation de l'hyperparamètre lors de la formation d'un modèle d'apprentissage automatique. L'optimisation manuelle prenant beaucoup de temps et nécessitant des connaissances spécifiques, nous avons exploré quatre procédures automatiques courantes d'optimisation de l'hyperparamètre:

    En général, une procédure d'optimisation automatique suit une procédure itérative dans laquelle, à chaque itération, le modèle est formé sur une nouvel ensemble d'hyperparamètres et évalué sur l'ensemble de tests. À la fin, le jeu d'hyperparamètres correspondant au meilleur score métrique est choisi comme jeu optimal. La question est de savoir comment sélectionner le prochain ensemble d'hyperparamètres, en veillant à ce qu'il soit réellement meilleur que le précédent.

    Nous avons présenté un aperçu de quatre stratégies d'optimisation couramment utilisées: la recherche par grille, la recherche aléatoire, l'escalade et l'optimisation bayésienne. . Ils ont tous des avantages et des inconvénients, et nous avons brièvement expliqué les différences en illustrant leur fonctionnement dans un cas d'utilisation de jouet simple. Vous êtes maintenant prêt à les essayer et à les essayer dans un problème d'apprentissage automatique du monde réel.

    Publié le 11 novembre 2019 – 13:41 UTC
                                    




    Source link
    Quitter la version mobile