Fermer

novembre 11, 2019

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.