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.
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.
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é.
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.
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