Choisir un algorithme - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Choisir un algorithme

Le machine learninng peut vous aider à accomplir des tâches empiriques qui nécessitent une sorte d'inférence inductive. Cette tâche implique une induction, car elle utilise des données pour entraîner des algorithmes à réaliser des inférences généralisables. Cela signifie que les algorithmes peuvent réaliser des prédictions ou prendre des décisions statistiquement fiables, ou effectuer d'autres tâches lorsqu'ils sont appliqués à de nouvelles données qui n'ont pas été utilisées pour les entraîner.

Pour vous aider à sélectionner le meilleur algorithme pour votre tâche, nous classons ces tâches à différents niveaux d'abstraction. Au plus haut niveau d'abstraction, le machine learning tente de trouver des modèles ou des relations entre des fonctions ou des éléments moins structurés, tels que du texte dans un jeu de données. Les techniques de reconnaissance de modèles peuvent être classées en paradigmes de machine learning distincts, chacun traitant des types de problèmes spécifiques. Il existe actuellement trois paradigmes de base pour le machine learning, utilisés pour traiter différents types de problèmes :

Les types de problèmes que chaque paradigme de machine learning peut résoudre sont identifiés en tenant compte des inférences (ou prédictions, décisions ou autres tâches) que vous souhaitez effectuer à partir du type de données que vous possédez ou que vous pourriez collecter. Les paradigmes de machine learning utilisent des méthodes algorithmiques pour résoudre leurs différents types de problèmes. Les algorithmes fournissent des recettes pour résoudre ces problèmes.

Cependant, de nombreux algorithmes, tels que les réseaux neuronaux, peuvent être déployés avec différents paradigmes de machine learning et sur différents types de problèmes. Plusieurs algorithmes peuvent également résoudre un type de problème spécifique. Certains algorithmes sont applicables de manière générale et d'autres sont plutôt adaptés à certains types d'objectifs et de données. Le mappage entre les algorithmes d'apprentissage automatique et les types de problèmes est donc le cas many-to-many. En outre, il existe différentes options d'implémentation disponibles pour les algorithmes.

Les sections suivantes fournissent des conseils sur les options d'implémentation, les paradigmes de machine learning et les algorithmes appropriés aux différents types de problèmes.

Choisir une implémentation d'algorithme

Après avoir choisi un algorithme, vous devez décider comment l'implémenter. Amazon SageMaker prend en charge trois options de mise en œuvre qui nécessitent des efforts accrus.

  • Les modèles pré-entraînés nécessitent le moins d'efforts et sont prêts à être déployés ou à être affinés et déployés à l'aide de. SageMaker JumpStart

  • Les algorithme intégrés sont ceux qui nécessitent le plus d'effort et d'échelle si le jeu de données est volumineux et si beaucoup de ressources sont nécessaires pour entraîner et déployer le modèle.

  • Si aucune solution intégrée ne fonctionne, essayez d'en développer une qui utilise des images prédéfinies pour les frameworks de machine et d'apprentissage profond pour les frameworks compatibles tels que Scikit-Learn,, TensorFlow PyTorch, MXNet ou Chainer.

  • Si vous devez exécuter des packages personnalisés ou utiliser un code qui ne fait pas partie d'un framework pris en charge ou qui n'est pas disponible via PyPi, vous devez créer votre propre image Docker personnalisée configurée pour installer les packages ou logiciels nécessaires. L'image personnalisée doit également être envoyée dans un référentiel en ligne tel qu'Amazon Elastic Container Registry.

Conseils relatifs à l'implémentation de l'algorithme

Mise en œuvre Nécessite du code Algorithme précodés Prise en charge des packages tiers Prise en charge du code personnalisé Niveau d'effort
Intégrée Non Oui Non Non Faible
Scikit-learn Oui Oui PyPi uniquement Oui Moyen
Spark ML Oui Oui PyPi uniquement Oui Moyen
XGBoost(source libre) Oui Oui PyPi uniquement Oui Moyen
TensorFlow Oui Non PyPi uniquement Oui Moyen-Élevé
PyTorch Oui Non PyPi uniquement Oui Moyen-Élevé
MXNet Oui Non PyPi uniquement Oui Moyen-Élevé
Chainer Oui Non PyPi uniquement Oui Moyen-Élevé
Image personnalisée Oui Non Oui, de n'importe quelle source Oui Élevée

Utiliser un algorithme intégré.

Lorsque vous choisissez un algorithme adapté à votre type de problème et à vos données, l'option la plus simple consiste à utiliser l'un des algorithmes intégrés SageMaker d'Amazon. Ces algorithmes intégrés présentent deux avantages majeurs.

  • Ils ne nécessitent aucun codage pour commencer à exécuter des expériences. Les seules entrées que vous devez fournir sont les données, les hyperparamètres et les ressources de calcul. Cela vous permet d'exécuter des expériences plus rapidement, avec moins de frais généraux pour le suivi des résultats et des modifications de code.

  • Les algorithmes intégrés sont fournis avec une parallélisation sur plusieurs instances de calcul et GPU prennent en charge tous les algorithmes applicables dès la sortie de l'emballage (certains algorithmes peuvent ne pas être inclus en raison de limitations inhérentes). Si vous avez beaucoup de données avec lesquelles entraîner votre modèle, la plupart des algorithmes intégrés peuvent facilement évoluer pour répondre à la demande. Même si vous possédez déjà un modèle préentraîné, il peut être plus facile d'utiliser son corollaire SageMaker et de saisir les hyperparamètres que vous connaissez déjà que de le transférer, en utilisant le mode script sur un framework compatible.

Pour plus d'informations sur les algorithmes intégrés fournis par SageMaker, consultezUtilisez les algorithmes SageMaker intégrés d'Amazon ou des modèles préentraînés.

Pour obtenir des informations importantes sur les chemins de registre docker, les formats de données, les types d'EC2instances recommandés et les CloudWatch journaux communs à tous les algorithmes intégrés fournis par SageMaker, consultez. Informations communes aux algorithmes intégrés

Utiliser le mode script dans un cadre pris en charge

Si l'algorithme que vous souhaitez utiliser pour votre modèle n'est pas pris en charge par un choix intégré et que vous êtes à l'aise pour coder votre propre solution, vous devriez envisager d'utiliser un framework SageMaker compatible avec Amazon. Il s'agit du « mode script » : vous écrivez votre code personnalisé (script) dans un fichier texte avec une extension .py. Comme l'indique le tableau ci-dessus, SageMaker prend en charge la plupart des frameworks d'apprentissage automatique populaires. Ces frameworks sont préchargés avec le framework correspondant et quelques packages Python supplémentaires, tels que Pandas NumPy, afin que vous puissiez écrire votre propre code pour entraîner un algorithme. Ces frameworks vous permettent également d'installer n'importe quel package Python hébergé sur un PyPi site en incluant un fichier requirements.txt avec votre code d'entraînement ou en incluant vos propres répertoires de code. R est également pris en charge nativement dans les noyaux des SageMaker ordinateurs portables. Certains frameworks, tels que scikit-learn et Spark ML, ont des algorithmes pré-codés que vous pouvez utiliser facilement, tandis que d'autres frameworks aiment TensorFlow et PyTorch peuvent nécessiter que vous implémentiez l'algorithme vous-même. La seule limite lors de l'utilisation d'une image de framework prise en charge est que vous ne pouvez pas importer de packages logiciels qui ne sont pas hébergés sur l'image du framework PyPi ou qui ne sont pas déjà inclus dans celle-ci.

Pour plus d'informations sur les frameworks pris en charge par SageMaker, voirFrameworks et langages de machine learning.

Utiliser une image Docker personnalisée

Les algorithmes intégrés et les frameworks pris en charge par Amazon SageMaker devraient couvrir la plupart des cas d'utilisation, mais il peut arriver que vous deviez utiliser un algorithme issu d'un package qui n'est inclus dans aucun des frameworks pris en charge. Il se peut également qu'un modèle préentraîné ait été sélectionné ou conservé à un endroit où vous devez le déployer. SageMaker utilise des images Docker pour héberger la formation et le service de tous les modèles. Vous pouvez donc fournir votre propre image Docker personnalisée si le package ou le logiciel dont vous avez besoin n'est pas inclus dans un framework pris en charge. Il peut s'agir de votre propre package Python ou d'un algorithme codé dans un langage comme Stan ou Julia. Pour ces images, vous devez également configurer l'entraînement de l'algorithme et le service du modèle correctement dans votre fichier Docker. Cela nécessite une bonne connaissance de Docker et n'est pas recommandé, sauf si vous êtes capable d'écrire votre propre algorithme de machine learning. Votre image Docker doit être téléchargée dans un référentiel en ligne, tel que l'Amazon Elastic Container Registry (ECR) pour que vous puissiez entraîner et utiliser correctement votre modèle.

Pour plus d'informations sur les images Docker personnalisées dans SageMaker, consultezUtiliser des conteneurs Docker pour former et déployer des modèles.

Types de problèmes pour les paradigmes de base de machine learning

Les trois sections suivantes décrivent les principaux types de problèmes traités par les trois paradigmes de base pour le machine learning. Pour obtenir la liste des algorithmes intégrés SageMaker permettant de résoudre ces types de problèmes, consultezUtilisez les algorithmes SageMaker intégrés d'Amazon ou des modèles préentraînés.

Apprentissage supervisé

Si votre jeu de données est constitué de fonctions ou d'attributs (entrées) qui contiennent des valeurs cibles (sorties), vous faites face à un problème d'apprentissage supervisé. Si vos valeurs cibles sont catégoriques (mathématiquement discrètes), vous faites face à un problème de classification. Une pratique courante consiste à distinguer la classification binaire de la classification multiclasse.

  • La classification binaire est un type d'apprentissage supervisé qui assigne une personne à l'une des deux classes prédéfinies et mutuellement exclusives en fonction des attributs de la personne. Elle est supervisée parce que les modèles sont entraînés à l'aide d'exemples dans lesquels les attributs sont fournis avec des objets correctement étiquetés. Exemple de classification binaire : diagnostic de maladie basé sur les résultats des tests de diagnostic.

  • La classification multiclasse est un type d'apprentissage supervisé qui assigne une personne à une classe parmi plusieurs classes prédéfinies en fonction des attributs de la personne. Elle est supervisée parce que les modèles sont entraînés à l'aide d'exemples dans lesquels les attributs sont fournis avec des objets correctement étiquetés. Exemple : la prédiction de la rubrique la plus pertinente pour un document texte. Un document peut être classé comme portant sur la religion, la politique ou les finances, ou sur une classe parmi plusieurs classes de rubriques prédéfinies.

Si les valeurs cibles que vous essayez de prédire sont mathématiquement continues, vous faites face à un problème de régression. La régression estime les valeurs d'une variable cible dépendante en fonction d'une ou de plusieurs autres variables ou attributs en corrélation avec elle. Exemple : la prédiction des prix des maisons à l'aide de fonctions telles que le nombre de salles de bains et de chambres à coucher, la superficie de la maison et du jardin. L'analyse de régression peut créer un modèle qui prend en entrée une ou plusieurs de ces fonctions et prédit le prix d'une maison.

Pour plus d'informations sur les algorithmes d'apprentissage supervisé intégrés fournis par SageMaker, voirApprentissage supervisé.

Apprentissage non supervisé

Si votre jeu de données est constitué de fonctions ou d'attributs (entrées) qui ne contiennent pas d'étiquettes ou de valeurs cibles (sorties), vous faites face à un problème d'apprentissage non supervisé. Dans ce type de problème, la sortie doit être prédite en fonction du modèle découvert dans les données d'entrée. Dans les problèmes d'apprentissage non supervisé, l'objectif est de découvrir des modèles tels que des regroupements dans les données. Il existe une grande variété de tâches ou de types de problèmes auxquels l'apprentissage non supervisé peut être appliqué. Les analyses de composants principaux et de clusters sont deux des principales méthodes utilisées pour le prétraitement des données. Voici une petite liste des types de problèmes qui peuvent être résolus par l'apprentissage non supervisé :

  • La réduction de dimension fait généralement partie d'une étape d'exploration des données utilisée pour déterminer les fonctions les plus pertinentes à utiliser pour la création du modèle. L'idée est de transformer les données d'un espace à haute dimension et peu rempli en espace à faible dimension qui conserve les propriétés les plus significatives des données d'origine. Cela atténue le problème de dimensionnalité pouvant survenir avec des données à haute dimension et peu remplies et sur lesquelles l'analyse statistique devient problématique. Elle peut également être utilisée pour aider à comprendre les données, en réduisant les données à haute dimension à une dimension inférieure qui peut être visualisée.

  • L'analyse des clusters est une classe de techniques utilisées pour classer des objets ou des cas en groupes appelés clusters. Il tente de trouver des regroupements discrets au sein des données, au sein desquels les membres d'un groupe sont aussi semblables que possible les uns des autres et aussi différents que possible des membres des autres groupes. Vous définissez les entités ou les attributs que l'algorithme doit utiliser pour déterminer la similarité, sélectionnez une fonction de distance pour mesurer la similarité et spécifiez le nombre de clusters à utiliser dans l'analyse.

  • La détection des anomalies est l'identification d'éléments, d'événements ou d'observations rares dans un jeu de données qui suscitent des soupçons parce qu'ils diffèrent significativement du reste des données. L'identification d'éléments anormaux peut être utilisée, par exemple, pour détecter des fraudes bancaires ou des erreurs médicales. Les anomalies sont également appelées valeurs aberrantes, nouveautés, bruit, écarts et exceptions.

  • L'estimation de la densité est la création d'estimations de fonctions de densité de probabilité sous-jacentes inobservables basée sur les données observées. Les estimations de densité sont naturellement utilisées pour l'exploration des données. Les estimations de densité permettent de découvrir des fonctions telles que l'asymétrie et la multimodalité dans les données. La forme la plus élémentaire d'estimation de la densité est un histogramme redimensionné.

SageMaker fournit plusieurs algorithmes d'apprentissage automatique intégrés que vous pouvez utiliser pour ces tâches d'apprentissage non supervisées. Pour plus d'informations sur les algorithmes non supervisés intégrés fournis par SageMaker, consultezApprentissage non supervisé.

Apprentissage par renforcement

L'apprentissage par renforcement est un type d'apprentissage basé sur l'interaction avec l'environnement. Ce type d'apprentissage est utilisé par un agent qui doit apprendre le comportement par le biais d' trial-and-error interactions avec un environnement dynamique dans lequel l'objectif est de maximiser les récompenses à long terme que l'agent reçoit du fait de ses actions. Les récompenses sont maximisées en échangeant des actions qui ont des récompenses incertaines avec des actions qui ont des récompenses connues.

Pour plus d'informations sur SageMaker les cadres, les boîtes à outils et les environnements d'apprentissage par renforcement, consultezUtilisez l'apprentissage par renforcement avec Amazon SageMaker.