[ad_1]

Dernière mise à jour le 15 août 2022

La descente de gradient stochastique est un algorithme d’apprentissage qui a un certain nombre d’hyperparamètres.

Deux hyperparamètres qui confondent souvent les débutants sont la taille du lot et le nombre d’époques. Ce sont tous deux des valeurs entières et semblent faire la même chose.

Dans cet article, vous découvrirez la différence entre les lots et les époques dans la descente de gradient stochastique.

Après avoir lu ce post, vous saurez :

  • La descente de gradient stochastique est un algorithme d’apprentissage itératif qui utilise un ensemble de données d’apprentissage pour mettre à jour un modèle.
  • La taille du lot est un hyperparamètre de descente de gradient qui contrôle le nombre d’échantillons d’apprentissage à traiter avant la mise à jour des paramètres internes du modèle.
  • Le nombre d’époques est un hyperparamètre de descente de gradient qui contrôle le nombre de passages complets dans l’ensemble de données d’apprentissage.

Lancez votre projet avec mon nouveau livre Deep Learning With Python, y compris tutoriels pas à pas et le Code source Python fichiers pour tous les exemples.

Commençons.

Quelle est la différence entre un lot et une époque dans un réseau de neurones ?

Quelle est la différence entre un lot et une époque dans un réseau de neurones ?
Photo de Graham Cook, certains droits réservés.

Aperçu

Ce poste est divisé en cinq parties; elles sont:

  1. Descente de gradient stochastique
  2. Qu’est-ce qu’un échantillon ?
  3. Qu’est-ce qu’un lot ?
  4. Qu’est-ce qu’une époque ?
  5. Quelle est la différence entre le lot et l’époque ?

Descente de gradient stochastique

Stochastic Gradient Descent, ou SGD en abrégé, est un algorithme d’optimisation utilisé pour former des algorithmes d’apprentissage automatique, notamment des réseaux de neurones artificiels utilisés dans l’apprentissage en profondeur.

Le travail de l’algorithme consiste à trouver un ensemble de paramètres de modèle interne qui fonctionnent bien par rapport à certaines mesures de performance telles que la perte logarithmique ou l’erreur quadratique moyenne.

L’optimisation est un type de processus de recherche et vous pouvez considérer cette recherche comme un apprentissage. L’algorithme d’optimisation est appelé “Descente graduelle“, où “pente» fait référence au calcul d’un gradient d’erreur ou d’une pente d’erreur et « descente » fait référence à la descente le long de cette pente vers un certain niveau minimum d’erreur.

L’algorithme est itératif. Cela signifie que le processus de recherche se déroule sur plusieurs étapes discrètes, chaque étape améliorant légèrement, espérons-le, les paramètres du modèle.

Chaque étape consiste à utiliser le modèle avec l’ensemble actuel de paramètres internes pour faire des prédictions sur certains échantillons, en comparant les prédictions aux résultats réels attendus, en calculant l’erreur et en utilisant l’erreur pour mettre à jour les paramètres du modèle interne.

Cette procédure de mise à jour est différente pour différents algorithmes, mais dans le cas des réseaux de neurones artificiels, l’algorithme de mise à jour par rétropropagation est utilisé.

Avant de plonger dans les lots et les époques, examinons ce que nous entendons par échantillon.

En savoir plus sur la descente de gradient ici :

Qu’est-ce qu’un échantillon ?

Un échantillon est une seule ligne de données.

Il contient des entrées qui sont introduites dans l’algorithme et une sortie qui est utilisée pour comparer à la prédiction et calculer une erreur.

Un jeu de données d’apprentissage est composé de plusieurs lignes de données, par exemple de nombreux échantillons. Un échantillon peut également être appelé une instance, une observation, un vecteur d’entrée ou un vecteur de caractéristiques.

Maintenant que nous savons ce qu’est un échantillon, définissons un lot.

Qu’est-ce qu’un lot ?

La taille du lot est un hyperparamètre qui définit le nombre d’échantillons à traiter avant de mettre à jour les paramètres du modèle interne.

Considérez un lot comme une boucle for itérant sur un ou plusieurs échantillons et effectuant des prédictions. A la fin du batch, les prédictions sont comparées aux variables de sortie attendues et une erreur est calculée. A partir de cette erreur, l’algorithme de mise à jour est utilisé pour améliorer le modèle, par exemple descendre le long du gradient d’erreur.

Un ensemble de données d’apprentissage peut être divisé en un ou plusieurs lots.

Lorsque tous les échantillons d’apprentissage sont utilisés pour créer un lot, l’algorithme d’apprentissage est appelé descente de gradient de lot. Lorsque le lot est de la taille d’un échantillon, l’algorithme d’apprentissage est appelé descente de gradient stochastique. Lorsque la taille du lot est supérieure à un échantillon et inférieure à la taille de l’ensemble de données d’apprentissage, l’algorithme d’apprentissage est appelé descente de gradient de mini-lot.

  • Descente de dégradé par lot. Taille du lot = Taille de l’ensemble de formation
  • Descente de gradient stochastique. Taille du lot = 1
  • Descente de gradient en mini-lot. 1 < Taille du lot < Taille de l'ensemble de formation

Dans le cas de la descente de gradient en mini-lot, les tailles de lot populaires incluent 32, 64 et 128 échantillons. Vous pouvez voir ces valeurs utilisées dans les modèles de la littérature et dans les didacticiels.

Que se passe-t-il si le jeu de données n’est pas divisé de manière égale par la taille du lot ?

Cela peut se produire et se produit souvent lors de la formation d’un modèle. Cela signifie simplement que le lot final contient moins d’échantillons que les autres lots.

Vous pouvez également supprimer certains échantillons de l’ensemble de données ou modifier la taille du lot de sorte que le nombre d’échantillons dans l’ensemble de données soit divisé de manière égale par la taille du lot.

Pour en savoir plus sur les différences entre ces variations de descente de gradient, consultez le post :

Pour en savoir plus sur l’effet de la taille du lot sur le processus d’apprentissage, consultez l’article :

Un lot implique une mise à jour du modèle à l’aide d’échantillons ; Ensuite, regardons une époque.

Qu’est-ce qu’une époque ?

Le nombre d’époques est un hyperparamètre qui définit le nombre de fois que l’algorithme d’apprentissage fonctionnera sur l’ensemble de données d’apprentissage.

Une époque signifie que chaque échantillon de l’ensemble de données d’apprentissage a eu l’occasion de mettre à jour les paramètres du modèle interne. Une époque est composée d’un ou plusieurs lots. Par exemple, comme ci-dessus, une époque qui a un lot est appelée algorithme d’apprentissage par descente de gradient par lots.

Vous pouvez penser à une boucle for sur le nombre d’époques où chaque boucle se déroule sur l’ensemble de données d’apprentissage. Dans cette boucle for se trouve une autre boucle for imbriquée qui itère sur chaque lot d’échantillons, où un lot a le nombre d’échantillons spécifié pour la “taille de lot”.

Le nombre d’époques est traditionnellement important, souvent des centaines ou des milliers, permettant à l’algorithme d’apprentissage de s’exécuter jusqu’à ce que l’erreur du modèle ait été suffisamment minimisée. Vous pouvez voir des exemples du nombre d’époques dans la littérature et dans les didacticiels définis sur 10, 100, 500, 1000 et plus.

Il est courant de créer des tracés linéaires qui affichent les époques le long de l’axe des x en tant que temps et l’erreur ou la compétence du modèle sur l’axe des y. Ces tracés sont parfois appelés courbes d’apprentissage. Ces tracés peuvent aider à diagnostiquer si le modèle a sur-appris, sous-appris ou est convenablement adapté à l’ensemble de données d’apprentissage.

Pour en savoir plus sur les diagnostics via les courbes d’apprentissage avec les réseaux LSTM, consultez l’article :

Au cas où ce ne serait toujours pas clair, regardons les différences entre les lots et les époques.

Quelle est la différence entre le lot et l’époque ?

La taille du lot correspond au nombre d’échantillons traités avant la mise à jour du modèle.

Le nombre d’époques correspond au nombre de passages complets dans l’ensemble de données d’apprentissage.

La taille d’un lot doit être supérieure ou égale à un et inférieure ou égale au nombre d’échantillons dans l’ensemble de données d’apprentissage.

Le nombre d’époques peut être défini sur une valeur entière comprise entre un et l’infini. Vous pouvez exécuter l’algorithme aussi longtemps que vous le souhaitez et même l’arrêter en utilisant d’autres critères en plus d’un nombre fixe d’époques, comme un changement (ou une absence de changement) dans l’erreur du modèle au fil du temps.

Ce sont à la fois des valeurs entières et des hyperparamètres pour l’algorithme d’apprentissage, par exemple des paramètres pour le processus d’apprentissage, et non des paramètres de modèle internes trouvés par le processus d’apprentissage.

Vous devez spécifier la taille du lot et le nombre d’époques pour un algorithme d’apprentissage.

Il n’y a pas de règles magiques pour configurer ces paramètres. Vous devez essayer différentes valeurs et voir ce qui fonctionne le mieux pour votre problème.

Exemple travaillé

Enfin, concrétisons cela avec un petit exemple.

Supposons que vous ayez un jeu de données avec 200 échantillons (lignes de données) et que vous choisissiez une taille de lot de 5 et 1 000 époques.

Cela signifie que l’ensemble de données sera divisé en 40 lots, chacun avec cinq échantillons. Les poids du modèle seront mis à jour après chaque lot de cinq échantillons.

Cela signifie également qu’une époque impliquera 40 lots ou 40 mises à jour du modèle.

Avec 1 000 époques, le modèle sera exposé ou traversera l’ensemble de données 1 000 fois. Cela représente un total de 40 000 lots pendant tout le processus de formation.

Lectures complémentaires

Cette section fournit plus de ressources sur le sujet si vous cherchez à approfondir.

Sommaire

Dans cet article, vous avez découvert la différence entre les lots et les époques dans la descente de gradient stochastique.

Plus précisément, vous avez appris :

  • La descente de gradient stochastique est un algorithme d’apprentissage itératif qui utilise un ensemble de données d’apprentissage pour mettre à jour un modèle.
  • La taille du lot est un hyperparamètre de descente de gradient qui contrôle le nombre d’échantillons d’apprentissage à traiter avant la mise à jour des paramètres internes du modèle.
  • Le nombre d’époques est un hyperparamètre de descente de gradient qui contrôle le nombre de passages complets dans l’ensemble de données d’apprentissage.

Avez-vous des questions?
Posez vos questions dans les commentaires ci-dessous et je ferai de mon mieux pour y répondre.

Développez des projets d’apprentissage en profondeur avec Python !

Apprentissage en profondeur avec Python

Et si vous pouviez développer un réseau en quelques minutes

…avec seulement quelques lignes de Python

Découvrez comment dans mon nouvel Ebook :
Apprentissage en profondeur avec Python

Cela couvre des projets de bout en bout sur des sujets comme :

Perceptrons multicouches, Réseaux convolutifs et Réseaux neuronaux récurrentset plus…

Apportez enfin l’apprentissage en profondeur à
Vos propres projets

Passer les universitaires. Juste des résultats.

Voir ce qu’il y a à l’intérieur