[PYTHON] Technologie d'apprentissage en profondeur à grande échelle

Livre Deep Learning (supervisé par la Society of Artificial Intelligence) - 2015/11/5 http://www.amazon.co.jp/dp/476490487X/ref=pd_lpo_sbs_dp_ss_1?pf_rd_p=187205609&pf_rd_s=lpo-top-stripe&pf_rd_t=201&pf_rd_i=4061529021&pf_rd_m=AN1VRQENFRJN5&pf_rd_r=1ZJ9T7KCKHC8QV0QKN9H J'ai résumé le chapitre 4 de.

DistBelief Google est la source de Tensorflow, qui a été développé. Une bonne implémentation de la technologie parallèle distribuée.

Jusqu'à présent, MapReduce nécessitait une communication de haute qualité. La solution à cela.

Il existe deux types de parallélisation -Modèle (tâche) parallèle: le processus est divisé pour chaque machine. Travail de flux. -Données parallèles: divisez les données à inclure dans le flux de traitement. Distbelief les utilise ensemble.

Avec Distbelief, les utilisateurs n'ont qu'à se concentrer sur «comment calculer un nœud» et «les informations à envoyer au nœud suivant», et l'ordinateur décidera où diviser le modèle et où diviser les données.

Le calcul du gradient et la mise à jour des paramètres sont effectués en parallèle avec le modèle, et le calcul des données réelles est effectué en parallèle avec les données. Downpour SGD (méthode de descente de gradient probabiliste) est utilisé comme méthode de calcul du gradient, mais même si le modèle de réplique traitant un certain groupe de données échoue, le reste fonctionnera.

Sandblaster L-BFGS est utilisé pour le traitement par lots (une méthode pour le faire petit à petit). Puisqu'il s'agit de données parallèles, la synchronisation des données est requise à la fin. Attendre l'ordinateur le plus lent est trop ennuyeux, alors réduisez le lot et donnez-le aux nœuds un par un. Les tâches sont réparties dans l'ordre à partir de la fin.

Utilisation du GPU

Dans le traitement linguistique, seule une petite partie du vecteur long est non nulle et le reste est égal à 0 (matrice creuse). Le traitement d'image, en revanche, a un vecteur dense. Il y a peu de branches dans le traitement d'image et le même traitement peut être effectué à l'infini. C'est un domaine dans lequel les GPU sont bons. C'est pourquoi beaucoup de gens pensent à laisser le GPU.

En outre, la vitesse de transfert entre GPU / CPU / mémoire peut être un goulot d'étranglement subtil.

InfiniBand Câble incroyablement rapide. Bénéficiant d'une performance de 56Gbps ~, il semble pouvoir résoudre le problème de vitesse de transfert propre au GPU.

Accélérez la convergence d'apprentissage

Normalisation par lots

Technologie pour résoudre le problème du changement de covariable interne. Le décalage de covariable interne signifie que la distribution de x au moment de l'entrée change de manière significative pendant l'apprentissage. Puisque les poids sont enthousiastes à l'idée de s'adapter à ce changement, l'apprentissage de la couche elle-même ne peut se poursuivre qu'après cela. Cela me ralentit.

La normalisation par lots normalise ce décalage. En même temps, un blanchiment (normalisation + décorrélation) est effectué.

distillation

L'apprentissage d'ensemble qui utilise la moyenne de plusieurs modèles pour l'inférence est précis. Mais cela prend trop de temps.

Dans le cas d'un réseau neuronal, peu profond est rapide et profond est lent. La distillation accélère l'apprentissage des réseaux neuronaux profonds à partir de l'apprentissage des réseaux neuronaux peu profonds.

Lorsque l'optimum θ est sélectionné, le gradient de E est égal à 0. Ensuite, les pentes du terme d'erreur L et du terme de normalisation R de E correspondent. En d'autres termes, si vous savez faire une erreur, vous pouvez également connaître le terme de normalisation. Une technique qui en fait bon usage.

Dropout Comment contrôler le surapprentissage. Une méthode pour ignorer les nœuds à un certain rythme au stade de l'apprentissage. Chaque fois que vous modifiez les données à apprendre, changez le nœud pour ignorer. N'ignorez pas pendant les tests. Le taux d'ignorance est généralement entré: 0,2, couche intermédiaire: 0,5.

Types de fonctions d'activation

ReLu

max(0,x)

Le calcul du gradient est rapide et ne nécessite aucune ingéniosité particulière. L'erreur ne disparaît pas et l'erreur se propage aux nœuds profonds. MaxOut

max wx

Une méthode de sélection de la plus grande des multiples fonctions linéaires. Il est linéaire et incroyablement simple tout en étant capable d'exprimer des états complexes. Cela semble très bien.

Recommended Posts

Technologie d'apprentissage en profondeur à grande échelle
L'apprentissage en profondeur
Mémorandum d'apprentissage profond
Commencer l'apprentissage en profondeur
Apprentissage en profondeur Python
Apprentissage profond × Python
Premier apprentissage profond ~ Lutte ~
Python: pratique du Deep Learning
Fonctions d'apprentissage en profondeur / d'activation
Apprentissage profond à partir de zéro
Apprentissage profond / entropie croisée
Premier apprentissage profond ~ Préparation ~
[AI] Apprentissage métrique profond
Python: réglage du Deep Learning
Fonction d'apprentissage profond / softmax
Apprentissage profond à partir de zéro 1 à 3 chapitres
Essayez l'apprentissage en profondeur avec TensorFlow
Deep Learning Gaiden ~ Programmation GPU ~
<Cours> Apprentissage en profondeur: Day2 CNN
Reconnaissance d'image par apprentissage profond 1 théorie
Deep running 2 Réglage de l'apprentissage profond
Apprentissage profond / code de travail LSTM
<Cours> Apprentissage en profondeur: Jour 1 NN
Apprentissage profond du noyau avec Pyro
Essayez le Deep Learning avec FPGA
Apprentissage profond pour la formation composée?
Présentation d'Udacity Deep Learning Nanodegree
Sujets> Deep Learning: Day3 RNN
Introduction au Deep Learning ~ Règles d'apprentissage ~
Apprentissage par renforcement profond 1 Introduction au renforcement de l'apprentissage
Apprentissage par renforcement profond 2 Mise en œuvre de l'apprentissage par renforcement
Générez des Pokémon avec Deep Learning
Introduction au Deep Learning ~ Rétropropagation ~
Distillateur de bibliothèque d'éclaircissement de modèles d'apprentissage profond
Deep learning / Deep learning from scratch 2 Chapitre 4 Mémo
Essayez le Deep Learning avec les concombres FPGA-Select
Identification de la race de chat avec Deep Learning
Deep learning / Deep learning made from scratch Chapitre 3 Mémo
Faites de l'art ASCII avec l'apprentissage en profondeur
Deep Learning / Deep Learning à partir de Zero 2 Chapitre 5 Mémo
Implémenter le deep learning / VAE (Variational Autoencoder)
Introduction à l'apprentissage en profondeur ~ Approximation des fonctions ~
Essayez l'apprentissage en profondeur avec TensorFlow Partie 2
À propos de la gestion de projet de deep learning (DNN)
Introduction à l'apprentissage profond ~ Préparation au codage ~
Organisez des plateformes d'apprentissage automatique et d'apprentissage en profondeur
Apprentissage profond appris par l'implémentation 1 (édition de retour)
Deep Learning / Deep Learning à partir de Zero 2 Chapitre 7 Mémo
Deep Learning / Deep Learning à partir de Zero 2 Chapitre 8 Mémo
Didacticiel "CNTK" de la bibliothèque d'apprentissage en profondeur de Microsoft
Vérifiez la forme de squat avec l'apprentissage en profondeur
Deep learning / Deep learning made from scratch Chapitre 4 Mémo
Deep Strengthening Learning 3 Édition pratique: Briser des blocs
Implémentation du modèle de reconnaissance d'images d'apprentissage en profondeur 2
Catégoriser les articles de presse grâce au Deep Learning
Deep learning / Deep learning from scratch 2 Chapitre 3 Mémo
J'ai essayé l'apprentissage en profondeur avec Theano