

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.

# Algorithme d'apprentissage linéaire
<a name="linear-learner"></a>

Les *modèles linéaires* sont des algorithmes d'apprentissage supervisés, utilisés pour résoudre les problèmes de régression ou de classification. Comme entrée, vous fournissez les exemples étiquetés du modèle (*x*, *y*). *x* est un vecteur hautement dimensionnel et *y* une étiquette numérique. Pour les problèmes de classification binaire, l'étiquette doit être 0 ou 1. Pour les problèmes de classification multi-classes, les étiquettes doivent être comprises entre 0 et `num_classes` -1. Pour les problèmes de régression, *y* est un nombre réel. L'algorithme apprend une fonction linéaire ou, pour les problèmes de classification, une fonction de seuil linéaire, et mappe un vecteur *x* à une approximation de l'étiquette *y*. 

L'algorithme d'apprentissage linéaire Amazon SageMaker AI fournit une solution aux problèmes de classification et de régression. Grâce à l'algorithme d' SageMaker IA, vous pouvez explorer simultanément différents objectifs d'entraînement et choisir la meilleure solution parmi un ensemble de validation. Vous pouvez également explorer un grand nombre de modèles et choisir le meilleur. Le meilleur modèle optimise l'une des actions suivantes :
+ Objectif continu, comme l'erreur quadratique moyenne, la perte d'entropie croisée, l'erreur absolue.
+ Objectifs indépendants adaptés à la classification, comme la mesure F1, la précision, le rappel ou l'exactitude. 

Comparé aux méthodes qui fournissent une solution uniquement pour des objectifs continus, l'algorithme d'apprentissage linéaire SageMaker basé sur l'IA permet une augmentation significative de la vitesse par rapport aux techniques naïves d'optimisation des hyperparamètres. Il est également plus commode. 

L'algorithme d'apprentissage linéaire requiert une matrice de données, avec les lignes correspondant aux observations et les colonnes aux dimensions des caractéristiques. Il nécessite également une colonne supplémentaire contenant les étiquettes qui correspondent aux points de données. Amazon SageMaker AI Linear Learner vous demande au minimum de spécifier les emplacements des données d'entrée et de sortie, ainsi que le type d'objectif (classification ou régression) comme arguments. La dimension de fonction est également requise. Pour de plus amples informations, veuillez consulter [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html). Vous pouvez spécifier des paramètres supplémentaires dans le mappage de la chaîne `HyperParameters` du corps de la demande. Ces paramètres contrôlent la procédure d'optimisation ou les spécificités de la fonction d'objective que vous entraînez. Par exemple, le nombre de périodes (epoch), la régularisation et le type de perte. 

Si vous utilisez l'[entraînement Spot géré](https://docs.aws.amazon.com/sagemaker/latest/dg/model-managed-spot-training.html), l'algorithme d'apprentissage linéaire prend en charge l'utilisation de [points de contrôle pour prendre un instantané du statut du modèle](https://docs.aws.amazon.com/sagemaker/latest/dg/model-checkpoints.html).

**Topics**
+ [Interface d'entrée/sortie pour l'algorithme d'apprentissage linéaire](#ll-input_output)
+ [Recommandations relatives aux instances EC2 pour l'algorithme d'apprentissage linéaire](#ll-instances)
+ [Exemples de blocs-notes d'apprentissage linéaire](#ll-sample-notebooks)
+ [Fonctionnement de l'apprentissage linéaire](ll_how-it-works.md)
+ [Hyperparamètres de l'apprentissage linéaire](ll_hyperparameters.md)
+ [Régler un modèle d'apprentissage linéaire](linear-learner-tuning.md)
+ [Formats de réponse d'apprentissage linéaire](LL-in-formats.md)

## Interface d'entrée/sortie pour l'algorithme d'apprentissage linéaire
<a name="ll-input_output"></a>

L'algorithme d'apprentissage linéaire d'Amazon SageMaker AI prend en charge trois canaux de données : le train, la validation (facultatif) et le test (facultatif). Si vous fournissez des données de validation, `S3DataDistributionType` doit être `FullyReplicated`. L'algorithme enregistre la perte de validation à chaque époque et utilise un échantillon des données de validation pour calibrer le meilleur modèle et le sélectionner. Si vous ne fournissez pas de données de validation, l'algorithme utilise un échantillon des données d'entraînement pour calibrer le modèle et le sélectionner. Si vous fournissez les données de test, les journaux de l'algorithme contiennent le score de test du modèle final.

**Pour l'entraînement**, l'algorithme d'apprentissage linéaire prend en charge les formats `recordIO-wrapped protobuf` et `CSV`. Pour le type d'entrée `application/x-recordio-protobuf`, seuls les tenseurs Float32 sont pris en charge. Pour le type d'entrée `text/csv`, la première colonne est supposée être l'étiquette, laquelle est la variable cible de la prédiction. Vous pouvez utiliser le mode File ou le mode Pipe pour entraîner les modèles d'apprentissage linéaire sur les données obéissant au format `recordIO-wrapped-protobuf` ou au format `CSV`.

**Pour l'inférence**, l'algorithme d'apprentissage linéaire prend en charge les formats `application/json`, `application/x-recordio-protobuf` et `text/csv`. Lorsque vous effectuez des prédictions sur de nouvelles données, le format de la réponse dépend du type de modèle. **Pour la régression** (`predictor_type='regressor'`), l'élément `score` est la prédiction produite par le modèle. **Pour la classification** (`predictor_type='binary_classifier'` ou `predictor_type='multiclass_classifier'`), le modèle renvoie un `score` et un `predicted_label`. L'élément `predicted_label` est la classe prédite par le modèle et `score` mesure la puissance de prédiction. 
+ **Pour la classification binaire**, `predicted_label` est `0` ou `1`, et `score` est un nombre à virgule flottante unique qui indique à quel point l'algorithme estime que l'étiquette doit être 1.
+ **Pour la classification multi-classes**, `predicted_class` est un nombre entier de `0` à `num_classes-1`, et `score` sera une liste comportant un nombre à virgule flottante par classe. 

Pour interpréter `score` dans les problèmes de classification, vous devez envisager la fonction de perte utilisée. Si la valeur de l’hyperparamètre `loss` est `logistic` pour la classification binaire ou `softmax_loss` pour la classification multi-classes, `score` peut être interprété comme la probabilité de la classe correspondante. Ce sont les valeurs de perte utilisées par l'apprenant linéaire lorsque la valeur de `loss` est la valeur par défaut `auto`. Mais si la perte est défini sur `hinge_loss`, le score ne peut pas être interprété comme une probabilité. En effet, la perte correspond à un classificateur de vecteur de support, ce qui signifie qu'elle ne produit pas d'estimations de probabilité.

Pour plus d’informations sur les formats de fichiers d’entrée et de sortie, consultez [Formats de réponse d'apprentissage linéaire](LL-in-formats.md). Pour plus d’informations sur les formats d’inférence, consultez [Exemples de blocs-notes d'apprentissage linéaire](#ll-sample-notebooks).

## Recommandations relatives aux instances EC2 pour l'algorithme d'apprentissage linéaire
<a name="ll-instances"></a>

L'algorithme d'apprentissage linéaire prend en charge les instances de CPU et de GPU pour l'entraînement et l'inférence. Pour les GPU, l'algorithme d'apprentissage linéaire prend en charge les familles de GPU P2, P3, G4dn et G5.

Pendant les tests, nous n'avons pas trouvé de preuve substantielle que les instances à plusieurs GPU seraient plus rapides que les instances à un seul GPU. Les résultats peuvent varier, en fonction de votre cas d'utilisation spécifique.

## Exemples de blocs-notes d'apprentissage linéaire
<a name="ll-sample-notebooks"></a>

 Le tableau suivant présente une variété d'exemples de blocs-notes qui abordent différents cas d'utilisation de l'algorithme d'apprentissage linéaire Amazon SageMaker AI.


| **Titre du bloc-notes** | **Description** | 
| --- | --- | 
|  [Introduction avec le jeu de données MNIST](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/linear_learner_mnist/linear_learner_mnist.html)  |   À l'aide du jeu de données MNIST, nous entraînons un classificateur binaire pour prédire un seul chiffre.  | 
|  [Comment créer un classificateur multi-classes ?](https://sagemaker-examples.readthedocs.io/en/latest/scientific_details_of_algorithms/linear_learner_multiclass_classification/linear_learner_multiclass_classification.html)  |   À l’aide du jeu de données Covertype d’UCI, nous montrons comment entraîner un classificateur multi-classes.   | 
|  [Comment créer un pipeline de Machine Learning (ML) pour inférence ?](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-python-sdk/scikit_learn_inference_pipeline/Inference%20Pipeline%20with%20Scikit-learn%20and%20Linear%20Learner.html)  |   À l'aide d'un conteneur Scikit-learn, nous montrons comment créer un end-to-end pipeline ML.   | 

 Pour obtenir des instructions sur la façon de créer et d'accéder à des instances de bloc-notes Jupyter que vous pouvez utiliser pour exécuter l'exemple dans SageMaker AI, consultez. [Instances de SageMaker blocs-notes Amazon](nbi.md) Après avoir créé une instance de bloc-notes et l'avoir ouverte, choisissez l'onglet **Exemples d'SageMaker IA** pour voir la liste de tous les exemples d' SageMaker IA. Les exemples de blocs-notes de modélisation de rubrique utilisant les algorithmes NTM se trouvent dans la section **Introduction to Amazon algorithms** (Présentation des algorithmes Amazon). Pour ouvrir un bloc-notes, choisissez son onglet **Use** (Utiliser), puis **Create copy** (Créer une copie). 