La machine n'apprend pas: compétences d'apprentissage en profondeur crépus formation de trois lots de gradient stochastique descente descente de gradient

Une méthode de descente de gradient

Dans les algorithmes d'apprentissage machine, modèle d'apprentissage supervisé pour beaucoup, la perte de la fonction de la nécessité de construire le modèle d'origine, l'étape suivante consiste à optimiser la fonction de perte en optimisant l'algorithme pour trouver les paramètres optimaux. Dans l'algorithme d'optimisation des paramètres dans l'apprentissage de la machine, plus l'utilisation est basée sur un algorithme d'optimisation (gradient de descente, GD) descente de gradient.

méthode de descente de gradient présente de nombreux avantages, dans lequel, au cours du processus de solution de descente de gradient, juste résolution de la première dérivée de la fonction de la perte, le calcul des coûts est relativement faible, ce qui rend la méthode de descente de gradient peut être appliqué dans de nombreux grands ensembles de données. méthode de descente de gradient est de trouver le sens d'un nouveau point d'itération par point, la direction du gradient de courant.

peut être compris l'idée de base: après notre départ d'un certain point de la colline, la pente la plus raide de trouver une franchir une étape (qui est, de trouver la direction du gradient), pour atteindre un point, trouver la pente la plus raide, une autre étape jusqu'à ce que nous en permanence donc, marché le plus point "faible" (point de convergence minimum de fonction de coût).

En second lieu, la déformation sous la forme d'une descente de gradient

Dans le processus spécifique en utilisant une méthode de descente de gradient, il existe plusieurs variétés différentes, à savoir: lot, mini-lot, SGD. La principale différence est le choix des données de formation dans différentes variantes.

1, la descente de gradient discontinu BGD

 Procédé par lots de descente de gradient (descente de gradient par lots) est à l'ensemble du jeu de données, en calculant pour tous les échantillons pour résoudre la direction du gradient.

 Lot descente de gradient fonction de perte:

 gradient plus batch formule d'itération de descente:

 Chaque étape d'itération, à utiliser dans la formation mis toutes les données, si la taille de l'échantillon est grand, alors on peut imaginer la vitesse d'itération de cette méthode!

 Avantages: solution globale optimale, facile à mettre en uvre en parallèle;

 Inconvénients: lorsque le nombre d'échantillons de beaucoup, le processus de formation sera très lente.

 Du point de vue du nombre d'itérations, le nombre d'itérations BGD relativement faible. Ce qui est une vue schématique de la courbe de convergence itérative peut être représentée comme suit:

2, de faibles quantités de descente de gradient MBGD

 De la même manière de gradient de lots à chaque itération doivent utiliser tous les échantillons, la quantité de données est particulièrement importante, telles que les applications d'apprentissage machine à grande échelle, chaque itération pour résoudre tous les échantillons prend beaucoup de coûts informatiques. Puis-je utiliser une partie de l'échantillon pendant chaque itération au lieu de tous les échantillons il? Sur la base de cette idée, ce qui donne naissance au concept de mini-lot.

 Supposons que le nombre d'échantillons dans l'ensemble d'apprentissage est de 1000, alors chaque mini-batch que seul un sous-ensemble de prise en charge, chaque mini-lot contenant 10 échantillons, de sorte que les données de formation entières réglé 100 peut être divisé en mini-batch . code de pseudo-suit en tant que:

3, la méthode du gradient stochastique descente SGD

algorithme de descente de gradient stochastique (descente de gradient stochastique) peut être vu comme un cas particulier de la descente de gradient mini-batch, à savoir, à chaque fois seulement dans le réglage des paramètres de modèle dans une méthode de descente de gradient stochastique échantillon, est équivalent à l'décrite ci-dessus b = mini-batch dans un cas de descente de gradient, à savoir, chacun des mini-batch seul échantillon de formation.

 méthode d'optimisation de descente de gradient est Stochastique:

 descente de gradient est Stochastique à itérer à travers chaque échantillon est mis à jour, si une grande taille de l'échantillon (par exemple des centaines de milliers), il ne peut échantillon dans lequel des dizaines de milliers ou quelques milliers, il doit être la meilleure itération thêta solution, la descente de gradient par lots de comparaison ci-dessus, une itération aura besoin de centaines de milliers d'échantillons de formation, la prochaine itération ne peut pas être optimale, si 10 itérations, alors vous devez traverser l'échantillon de formation 10 fois. Cependant, un problème SGD accompagné d'un bruit à plus de BGD, de sorte que chaque itération SGD vers la direction d'optimisation globale.

 Avantages: la vitesse de formation;

 Inconvénients: perte de précision, et non pas l'optimum global, pas facilement mis en uvre en parallèle.

 Du point de vue du nombre d'itérations, plus fréquemment itérations SGD, regards aveugles lors d'une recherche de l'espace de solution. Ce qui est une vue schématique de la courbe de convergence itérative peut être représentée comme suit:

Troisièmement, la descente de gradient compréhension populaire

(1) descente de gradient en vrac - Réduire au minimum la perte de la fonction de tous les échantillons de formation (données de formation obtenues pour toutes les erreurs des paramètres sont mis à jour après), de sorte que la résolution finale de la solution globale optimale, à savoir que le paramètre de risque est fonction résolu un minimum. Lot descente de gradient similaire à un certain point dans les montagnes de regarder autour, pour calculer la plus forte baisse dans le sens de la (multidimensionnelle), puis prendre une étape, ce qui est une première itération. descente lot gradient itération des mises à jour toutes les thêta, chaque mise à jour est dans la direction la plus raide.

(2) algorithme du gradient stochastique - en minimisant la fonction de perte pour chaque échantillon, mais pas chaque itération direction résultante des fonctions de perte vers l'optimum global, mais une grande orientation générale de la solution globale optimal, le résultat final est souvent est une solution à court optimale au niveau mondial. Que j'ai utilisé un échantillon aléatoire d'exemple pour approcher tous mes échantillons pour ajuster thêta, il ne calcule pas le sens de la pente maximale, mais à chaque fois que sélectionner une dimension à l'étape suivante, une baisse de la première itération uniquement les mises à jour thêta, a rapporté que la marche est pas rigoureuse et voir l'attitude à venir.

Quatre, explication batch_size

Batch_size (taille du lot) est un paramètre important dans l'apprentissage de la machine, impliquant de nombreuses contradictions, développez la suivante par un.

1, tout d'abord, pourquoi avoir batch_size cet argument?

option de lot, d'abord décider de la direction est vers le bas. Si l'ensemble de données est relativement faible, il peut prendre la forme de l'ensemble des données (Full lot d'apprentissage), et de faire au moins deux avantages: Tout d'abord, déterminer la direction de l'ensemble des données de l'échantillon plus représentatif de la population, afin de manière plus précise vers la direction dans laquelle la valeur extrême. En second lieu, en raison des différents poids des valeurs de gradient énorme différence, afin de choisir un taux global d'apprentissage est très difficile. La pleine Batch L'apprentissage RPROP peut être utilisé que mis à jour en fonction d'un gradient pour chaque symbole et le poids spécifique de l'individu.

Pour les ensembles de données plus volumineux, plus de deux avantages, il est un deux inconvénients: Tout d'abord, avec la croissance massive des ensembles de données et limites de la mémoire, charge une seule fois toutes les données à venir en devient moins disponible. En second lieu, afin de RPROP de manière itérative, en raison de différences entre les échantillons individuels par lots, la valeur de correction de gradient à chaque fois décalé de l'autre, ne peut pas être corrigée. Cela a compromis la suite RMSProp.

2, étant donné que la pleine Batch L'apprentissage ne concerne pas les grands ensembles de données, alors que diriez-vous l'autre extrême?

Le soi-disant autre extrême, est un temps pour former un échantillon qui batch_size = 1. Ceci est l'apprentissage en ligne (apprentissage en ligne). surface d'erreur neuronal linéaire moyenne fonction de coût d'erreur quadratique est une section transversale parabolique est une ellipse. Multilayer neural, le réseau non linéaire, reste localement sensiblement parabolique. L'utilisation de l'apprentissage en ligne, chaque correction de cours à la direction de gradient de chaque correction d'échantillon, saccage fragmenté, difficile à réaliser la convergence. Comme le montre:

3, peut choisir une valeur modérée batch_size il?

Bien sûr, cela est la descente de gradient de lots (mini-lots d'apprentissage). Parce que si l'ensemble de données assez suffisant, compté par la moitié (voire beaucoup moins) du gradient de formation de données et une formation avec tout le gradient de données est presque le même.

4, dans des limites raisonnables, quels sont les avantages de l'augmentation batch_size?

utilisation de la mémoire améliorée, une grande amélioration de l'efficacité multiplication matrice parallélisée.

le temps d'arrivée Epoch (full ensemble de données) pour réduire le nombre d'itérations nécessaires pour la même quantité de données que la vitesse de traitement est en outre accélérée.

Au sein d'une certaine plage, batch_size générale, plus permettant la détermination de la direction de descente, plus le choc causé par la formation.

5, aveugle Quel mal augmente batch_size?

Utilisation de la mémoire améliorée, mais la capacité de mémoire peut à peine.

le temps d'arrivée Epoch (ensemble complet de données) pour réduire le nombre d'itérations afin d'obtenir la même précision, il faut batch_size augmente dans une certaine mesure, détermine la direction de recul n'a pas sensiblement changé.

6, à la fin sur la façon de régler l'impact effet de la formation batch_size?

Ici, une performance en cours d'exécution sur le jeu de données MNIST Lenet. MNIST est une bibliothèque standard manuscrite, j'utilise le cadre Théano. Ceci est une bibliothèque Python de l'apprentissage en profondeur. Facile à installer (seulement quelques lignes de commande), un réglage facile (Profil natif), prise CPU tous les GPU /, le tutoriel officiel est complet, le support des modules est très riche (sauf CNNs, soutient également RBM / DBN / LSTM / RBM-RNN / sda / MLP). Une couche supérieure de l'emballage a Keras support GRU / JZS1, JZS2, JZS3 plus récente comme la structure, l'optimisation du support Adagrad / Adadelta / RMSprop / Adam analogues. Comme le montre:

Résultats de l'opération comme indiqué ci-dessus, dans lequel le temps absolu pour faire du traitement par unité. les résultats et les analyses ci-dessus confirme d'exploitation:

Batch_size trop petit, l'algorithme ne convergeait pas à moins de 200 époques.

Avec batch_size augmente, la même quantité de traitement plus rapide des données de vitesse.

Avec batch_size augmente, un nombre croissant d'époque à atteindre la même précision souhaitée.

En raison de la contradiction de ces deux facteurs, batch_size a augmenté à un point du temps optimal.

Étant donné que la précision de la convergence ultime tombera dans différents extrême locale, donc batch_size a augmenté à un moment donné, pour atteindre la convergence ultime sur la précision optimale.

Suprême: étudiera l'étiquette d'information « vieux Lai » dans la QQ micro lettre
Précédent
L'utilisation de moins de 10%? Reporters enquête: après charge embarrassant
Prochain
L'un des 50 plus grande invention, le monde du « artefact de blocage règle, » a déclaré que les barres de fer brutalement démantelés
La machine n'apprend pas: d'un arbre de décision de xgboost
les prix montent en flèche graphiques, maintenant comment plus d'argent peut acheter?
Rejoindront la technologie d'affichage noir, PC est sur le point d'ouvrir la voie à l'ère de HDR
l'apprentissage de la machine n'est pas: compétences d'apprentissage en profondeur la formation crépus 2 régularisation de régularisation L1 et L2
"Union Heroes" mois Sa Feng Ting 267.000 joueurs illégaux: Nivellement plus de 130000
Aussi populaire que d'Apple iPhone7! OPPO téléphone shell R11 recommandé
La machine n'apprend pas: compétences d'apprentissage en profondeur la formation crépus une normalisation par lots par lots Normalization
Station de chargement dacentrurus R5 hôte vraiment pas cher! 3000 yuans écran de configuration de l'ordinateur de jeu
liste des ordinateurs Jingdong publiée en Août pour voir où la plupart des joueurs prêts à investir!
Et chercher le développement commun de Smart Home Smart Home Chine Xiuzhou Industrial Park Hangzhou Recommander
Abandonner fantaisie, revenir au simple! Apple iPhone7 / 7Plus recommandé téléphone mobile fixe