当前位置:网站首页>Introduction à la méthode de descente par Gradient - document d'apprentissage automatique pour les programmeurs de chevaux noirs

Introduction à la méthode de descente par Gradient - document d'apprentissage automatique pour les programmeurs de chevaux noirs

2022-06-24 04:36:00 Black Horse programmeur officiel

Objectifs d'apprentissage

  • Connaître le principe de l'algorithme de descente en gradient complet
  • Connaître le principe de l'algorithme de descente par Gradient aléatoire
  • Connaître le principe de l'algorithme de descente par Gradient moyen stochastique
  • Connaître le principe de l'algorithme de descente par Gradient à petite échelle

Dans la section précédente, nous avons décrit le processus de mise en oeuvre de la méthode de descente par Gradient la plus élémentaire.,Les algorithmes courants de descente par Gradient sont les suivants::

  • Algorithme de descente en gradient complet(Full gradient descent),
  • Algorithme de descente par Gradient aléatoire(Stochastic gradient descent),
  • Algorithme de descente par Gradient en petits lots(Mini-batch gradient descent),
  • Algorithme de descente par Gradient moyen aléatoire(Stochastic average gradient descent)

Ils sont conçus pour ajuster correctement les vecteurs de poids,En calculant un gradient pour chaque poids,Pour mettre à jour les poids,Réduire au minimum la fonction objective.La différence réside dans la façon dont les échantillons sont utilisés..

1 Algorithme de descente en gradient complet(FG)

Calculer toutes les erreurs d'échantillonnage de l'ensemble de formation,Additionnez - le et prenez la moyenne comme fonction objective.

Le vecteur de poids se déplace dans la direction opposée à son gradient,Cela réduit au minimum la fonction cible actuelle.

Parce que chaque fois que vous effectuez une mise à jour,Nous devons calculer tous les gradients sur l'ensemble des données,Donc la méthode de descente par gradient de lot est lente,En même temps,La méthode de descente par gradient de lot ne peut pas traiter les ensembles de données qui dépassent la limite de capacité de mémoire.

La méthode de descente par gradient de lot ne peut pas non plus mettre à jour le modèle en ligne.,C'est - à - dire qu'en cours d'exécution,,Impossible d'ajouter un nouvel échantillon.

Il calcule la fonction de perte sur l'ensemble des données de formation θLe gradient de:

 

2 Algorithme de descente par Gradient aléatoire(SG)

Parce queFG Toutes les erreurs d'échantillonnage doivent être calculées pour chaque itération de mise à jour des poids. , Et il y a souvent des centaines de millions d'échantillons de formation dans les problèmes réels , Donc l'efficacité est faible , Et facile à tomber dans la solution optimale locale , Par conséquent, un algorithme de descente par Gradient aléatoire est proposé. .

La fonction objective de chaque cycle de calcul n'est plus l'erreur totale de l'échantillon , Et une seule erreur d'échantillon ,C'est - à - dire: Mettre à jour les poids en n'ajoutant qu'un gradient pour calculer une fonction objective d'échantillon à la fois , Répéter le processus en prenant un autre échantillon , Jusqu'à ce que la valeur de la fonction de perte cesse de diminuer ou que la valeur de la fonction de perte soit inférieure à un seuil tolérable .

Ce processus est simple ,Efficace, Il est généralement préférable d'éviter les itérations de mise à jour convergeant vers la solution optimale locale . Sa forme itérative est

 

Parmi eux,x(i) Représente la valeur caractéristique d'un échantillon d'entraînement ,y(i) Valeur de l'étiquette représentant un échantillon d'entraînement

Mais parce que,SG Une seule itération d'échantillon à la fois , Il est facile de tomber dans la solution optimale locale en cas de bruit .

3 Algorithme de descente par Gradient en petits lots(mini-batch)

L'algorithme de descente par Gradient en petits lots est FGEtSGUn compromis, Dans une certaine mesure, les avantages des deux méthodes susmentionnées ont été pris en compte. .

Un petit ensemble d'échantillons est sélectionné au hasard à partir de l'ensemble d'échantillons d'entraînement à la fois. , Utilisé sur un petit échantillon extrait FGMise à jour itérative des poids.

Le nombre de points d'échantillonnage contenus dans le petit ensemble d'échantillons extrait est appelé batch_size,Normalement réglé à2Puissance de,Plus favorableGPUTraitement accéléré.

Spécial,Sibatch_size=1,Est devenuSG;Sibatch_size=n,Est devenuFG. Sa forme itérative est

 

4 Algorithme de descente par Gradient moyen aléatoire(SAG)

InSGDans la méthode, Bien qu'il évite le coût élevé de l'informatique , Mais pour la formation aux mégadonnées ,SG Les résultats sont souvent insatisfaisants , Parce que chaque cycle de mise à jour du gradient est complètement indépendant des données et du gradient du cycle précédent .

L'algorithme de gradient moyen stochastique surmonte ce problème , Maintenir un ancien Gradient en mémoire pour chaque échantillon ,Sélection aléatoirei Échantillons pour mettre à jour le gradient de cet échantillon , Les gradients des autres échantillons restent inchangés , Et ensuite obtenir la moyenne de tous les gradients , Mise à jour des paramètres .

Voilà., Le Gradient d'un seul échantillon doit être calculé pour chaque cycle de mise à jour. , Le coût calculé est égal à SG, Mais la convergence est beaucoup plus rapide .

5 Résumé

  • Algorithme de descente en gradient complet(FG)【Je sais】
    • Au moment du calcul,Calculer la moyenne des erreurs pour tous les échantillons,En tant que fonction objective
  • Algorithme de descente par Gradient aléatoire(SG)【Je sais】
    • Un seul échantillon est sélectionné à la fois pour l'évaluation.
  • Algorithme de descente par Gradient en petits lots(mini-batch)【Je sais】
    • Sélectionner une partie de l'échantillon pour l'évaluation
  • Algorithme de descente par Gradient moyen aléatoire(SAG)【Je sais】
    • Une moyenne est maintenue pour chaque échantillon ,Après le calcul,Voir cette moyenne
原网站

版权声明
本文为[Black Horse programmeur officiel]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/175/202206232359536397.html