Pourquoi les données doivent-elles être mélangées pour les tâches d'apprentissage automatique

30

Dans les tâches d'apprentissage automatique, il est courant de mélanger les données et de les normaliser. Le but de la normalisation est clair (pour avoir la même plage de valeurs de caractéristiques). Mais, après beaucoup de difficultés, je n'ai trouvé aucune raison valable de mélanger les données.

J'ai lu ce post ici pour discuter du moment où nous devons mélanger les données, mais il n'est pas évident pourquoi nous devrions mélanger les données. De plus, j'ai vu fréquemment dans des algorithmes tels qu'Adam ou SGD où nous avons besoin d'une descente de gradient par lots (les données doivent être séparées en mini-lots et la taille des lots doit être spécifiée). Il est vital selon ce post de mélanger les données pour chaque époque pour avoir des données différentes pour chaque lot. Donc, peut-être que les données sont mélangées et, plus important encore, modifiées.

Pourquoi faisons-nous cela?

Médias
la source
1
Il pourrait être utile d'indiquer exactement pourquoi la réponse du premier lien ne vous a pas aidé. Sinon, nous prenons le risque de répéter le contenu déjà dit avec peu d'améliorations.
E_net4 dit Réintégrer
Comme je l'ai dit, je veux savoir pourquoi pas quand, savez-vous pourquoi? est-ce vraiment expliqué là-bas? Je n'ai vu aucun article à ce sujet
Média
1
Pour plus d'informations sur l'impact de la commande d'exemples, lisez Learning Curriculum [pdf].
Emre
1
J'ai posté ceci sur CrossValidated et je pense que c'est pertinent. stats.stackexchange.com/a/311318/89653
Josh
@Emre en fait, ce document est contre le brassage, merci, je n'ai pas entendu parler de ce type d'apprentissage.
Média

Réponses:

19

Basé sur Que devons-nous faire lorsqu'une question publiée sur DataScience est une copie d'une question publiée sur CrossValidated? , Je republie ma réponse à la même question posée sur CrossValidated ( /stats//a/311318/89653 ).

Remarque: tout au long de cette réponse, je fais référence à la minimisation de la perte de formation et je ne parle pas de critères d'arrêt tels que la perte de validation. Le choix des critères d'arrêt n'affecte pas le processus / les concepts décrits ci-dessous.

Le processus d'apprentissage d'un réseau neuronal consiste à trouver la valeur minimale d'une fonction de perte , où représente une matrice (ou plusieurs matrices) de poids entre les neurones et représente l'ensemble de données d'apprentissage. J'utilise un indice pour pour indiquer que notre minimisation de se produit uniquement sur les poids (c'est-à-dire que nous recherchons tel que est minimisé) tandis que est fixe.WX(W)WXXWWX

Maintenant, si nous supposons que nous avons éléments dans (c'est-à-dire qu'il y a poids dans le réseau), est une surface dans un espace dimensionnel . Pour donner un analogue visuel, imaginez que nous n'avons que deux poids de neurones ( ). Alors a une interprétation géométrique facile: c'est une surface dans un espace tridimensionnel. Cela découle du fait que pour toute matrice de poids donnée , la fonction de perte peut être évaluée sur et cette valeur devient l'élévation de la surface.PWPP+1P=2 W XWX

Mais il y a le problème de la non-convexité; la surface que j'ai décrite aura de nombreux minima locaux et, par conséquent, les algorithmes de descente de gradient sont susceptibles de se "coincer" dans ces minima tandis qu'une solution plus profonde / inférieure / meilleure peut se trouver à proximité. Cela peut se produire si est inchangé sur toutes les itérations d'apprentissage, car la surface est fixe pour un donné ; toutes ses fonctionnalités sont statiques, y compris ses différents minima.XXX

Une solution à cela est une formation en mini-lot combinée à un brassage. En mélangeant les lignes et en ne les entraînant que sur un sous-ensemble d'entre elles au cours d'une itération donnée, change à chaque itération, et il est en fait tout à fait possible que deux itérations sur la séquence entière d'itérations et d'époques de formation ne soient pas exécutées sur le même . L'effet est que le solveur peut facilement "rebondir" sur un minimum local. Imaginez que le solveur soit bloqué dans un minimum local à l'itération avec la formation du mini-lot . Ce minimum local correspond à évalué à une valeur particulière de poids; nous l'appelleronsX i X i X i ( W i ) X i + 1 X i + 1 ( W i ) X i ( W i ) X i + 1X i X W WXXjeXjeXje(Wje). À l'itération suivante, la forme de notre surface de perte change en fait parce que nous utilisons , c'est-à-dire que peut prendre une valeur très différente de et il est fort possible que cela ne corresponde pas à un minimum local! Nous pouvons maintenant calculer une mise à jour du gradient et continuer la formation. Pour être clair: la forme de sera - en général - différente de celle de . Notez que je fais référence ici à la fonction de perte évaluée sur un ensemble d'apprentissage ; c'est une surface complète définie sur toutes les valeurs possibles deXje+1Xje+1(Wje)Xje(Wje)Xje+1XjeXWPlutôt que l'évaluation de cette perte (qui est juste un scalaire) pour une valeur spécifique de . Notez également que si des mini-lots sont utilisés sans mélange, il y a toujours un certain degré de "diversification" des surfaces de perte, mais il y aura un nombre fini (et relativement petit) de surfaces d'erreur uniques vues par le solveur (en particulier, il verra le même ensemble exact de mini-lots - et donc de surfaces de perte - à chaque époque).W

Une chose que j'ai délibérément évitée était une discussion sur la taille des mini-lots, car il y a un million d'opinions à ce sujet et cela a des implications pratiques importantes (une plus grande parallélisation peut être obtenue avec des lots plus importants). Cependant, je pense que ce qui suit mérite d'être mentionné. Étant donné que est évalué en calculant une valeur pour chaque ligne de (et en additionnant ou en prenant la moyenne, c'est-à-dire un opérateur commutatif) pour un ensemble donné de matrices de poids , la disposition des lignes de n'a aucun effet lors de l'utilisation de descente de gradient de lot (c'est-à-dire lorsque chaque lot est le complet et que les itérations et les époques sont la même chose). X W X XXWX X

Josh
la source
+1. Cette réponse est techniquement mieux expliquée que l'autre réponse avec un nombre plus élevé de votes positifs.
Gokul NC
29

Le brassage des données sert à réduire la variance et à garantir que les modèles restent généraux et surajustés.

Le cas évident où vous mélangeriez vos données est si vos données sont triées par leur classe / cible. Ici, vous voudrez mélanger pour vous assurer que vos ensembles de formation / test / validation sont représentatifs de la distribution globale des données.

Pour la descente de gradient par lots, la même logique s'applique. L'idée derrière la descente de gradient par lots est qu'en calculant le gradient sur un seul lot, vous obtiendrez généralement une assez bonne estimation du "vrai" gradient. De cette façon, vous économisez du temps de calcul en n'ayant pas à calculer le "vrai" gradient sur l'ensemble de données à chaque fois.

Vous souhaitez mélanger vos données après chaque époque, car vous aurez toujours le risque de créer des lots qui ne sont pas représentatifs de l'ensemble de données, et par conséquent, votre estimation du gradient sera erronée. Mélanger vos données après chaque époque garantit que vous ne serez pas «coincé» avec trop de mauvais lots.

Dans une descente de gradient stochastique régulière, lorsque chaque lot a la taille 1, vous voulez toujours mélanger vos données après chaque époque pour garder votre apprentissage général. En effet, si le point de données 17 est toujours utilisé après le point de données 16, son propre gradient sera biaisé avec les mises à jour du point de données 16 effectuées sur le modèle. En mélangeant vos données, vous vous assurez que chaque point de données crée un changement "indépendant" sur le modèle, sans être biaisé par les mêmes points avant eux.

Valentin Calomme
la source
1
Comme je l'ai expliqué, vous mélangez vos données pour vous assurer que vos ensembles de formation / test seront représentatifs. En régression, vous utilisez le brassage parce que vous voulez vous assurer que vous ne vous entraînez pas uniquement sur les petites valeurs par exemple. Le brassage est principalement une sauvegarde, le pire des cas, il n'est pas utile, mais vous ne perdez rien en le faisant. Pour la partie de descente de gradient stochastique, vous voulez à nouveau vous assurer que le modèle n'est pas tel qu'il est à cause de l'ordre dans lequel vous lui avez fourni les données, donc pour vous assurer d'éviter cela, vous mélangez
Valentin Calomme
2
Je pense que le brassage diminue la variance et est susceptible d'augmenter le biais (c'est-à-dire qu'il réduit la tendance à surajuster les données). Imaginez que nous effectuions une descente en gradient complet, de sorte que les époques et les itérations sont la même chose. Il existe alors un minimum global (pas que nous puissions nécessairement le trouver) que notre solveur essaie de localiser. Si nous utilisons la perte MSE, nous minimiserons le biais si nous pouvions atteindre cette solution à chaque fois. Mais comme ce minimum global est susceptible de se trouver à un endroit différent pour différents ensembles de formation, cette solution aura tendance à avoir une variance élevée.
Josh
2
En mélangeant, nous sommes moins susceptibles de converger vers une solution se situant dans le minimum global pour l'ensemble de la formation (biais plus élevé), mais plus susceptibles de trouver une solution qui se généralise mieux (variance plus faible).
Josh
7

Supposons que les données soient triées dans un ordre spécifié. Par exemple, un ensemble de données qui est trié en fonction de leur classe. Donc, si vous sélectionnez des données pour la formation, la validation et le test sans considérer ce sujet, vous sélectionnerez chaque classe pour des tâches différentes, et le processus échouera.

Par conséquent, pour empêcher ce type de problèmes, une solution simple consiste à mélanger les données pour obtenir différents ensembles de données de formation, de validation et de test.

À propos du mini-lot, les réponses à ce message peuvent être une solution à votre question.

OMG
la source
1
@Media La réponse la plus connexe dans le lien fourni est: "Le mélange des mini-lots rend les gradients plus variables, ce qui peut favoriser la convergence car il augmente la probabilité de prendre une bonne direction"
OmG
En fait, j'ai vu cela dans le document de SGD, mais comme les auteurs du document l'ont affirmé, c'est la raison de la convergence et non le brassage. J'ai vu le lien et j'en doute un peu. pour plus de clarté, regardez ce papier étonnant. Les auteurs ont mentionné ce point là, mais comme vous le verrez, il n'y a aucune raison exacte de mélanger
Media
1

Nous devons mélanger uniquement pour les mini-lots / SGD, pas besoin de descente de gradient par lots.

Si vous ne mélangez pas les données, les données peuvent être triées ou des points de données similaires se trouvent côte à côte, ce qui conduit à une convergence lente:

  • Des échantillons similaires produiront des surfaces similaires (1 surface pour la fonction de perte pour 1 échantillon) -> le gradient pointe vers des directions similaires mais cette direction pointe rarement vers le minimum -> il peut conduire le gradient très loin du minimum
  • «Meilleure direction»: la moyenne de tous les gradients de toutes les surfaces (descente de gradient par lots) qui pointe directement vers le minimum
  • «Direction du mini-lot»: la moyenne d'une variété de directions pointera plus près du minimum, bien qu'aucune ne pointe vers le minimum
  • «Direction 1 échantillon»: pointez plus loin vers le minimum par rapport au mini-lot

J'ai dessiné le tracé de la fonction de perte L-2 pour la régression linéaire pour y=2x ici

Duc
la source
1

XWX

Complétant la réponse de @ Josh, je voudrais ajouter que, pour la même raison, le brassage doit être effectué avant le traitement par lots. Sinon, vous obtenez le même nombre fini de surfaces.

Gerardo Consuelos
la source
Merci et bienvenue dans notre communauté.
Media
1

Pour une meilleure précision du modèle, il est toujours recommandé que les données d'entraînement aient toutes les saveurs de données.

Le brassage des données de formation nous aide à atteindre cet objectif.

vipin bansal
la source
1

En mélangeant les lignes et en ne les entraînant que sur un sous-ensemble d'entre elles au cours d'une itération donnée, 𝑋 change à chaque itération, et il est en fait tout à fait possible que deux itérations sur la séquence entière d'itérations et d'époques de formation ne soient pas exécutées exactement sur la même 𝑋

Ankit DEsai
la source