réseau profondeur mathématique derrière le secret de Deep Web

Cet article est une compilation de technologie blog AI Yanxishe, le titre original:

Plongez en mathématiques derrière les réseaux profonds

Auteur | Piotr Skalski

Traduction | gris dans l'apprentissage, Désillusion

Relecture | sauce poire finale Fan | soeur d'ananas

Lien original: l

https://towardsdatascience.com/https-medium-com-piotr-skalski92-deep-dive-into-deep-networks-math-17660bc376ba

La première partie du mystère du réseau de neurones

Aujourd'hui, nous avons beaucoup avancé, des bibliothèques et des cadres spéciaux, tels que Keras, tensorflow ou PyTorch, plus besoin de se soucier de la matrice de poids total de la taille, mais ne pas besoin de se rappeler certains d'entre nous avons décidé d'utiliser la formule de sa fonction d'activation. En général, nous avons juste besoin d'essayer un réseau de neurones, même si une structure est des réseaux de neurones très complexes, et la nécessité d'importer seulement quelques lignes de code peuvent être accomplies. Cela permet de gagner du temps et simplifier notre recherche de failles dans notre travail. Cependant, une compréhension en profondeur du réseau de neurones est terminée dans le cadre de notre choix, ou d'ajuster les paramètres ou super grande aide sur la tâche d'optimisation.

Faites attention : Merci de l'aide de Jung Yi Lin, vous pouvez également lire la version chinoise de cet article. Je vous offre un code source visuelle utilisé pour créer cette utilisation de l'article sur GitHub.

introduction

Apprenez réseau plus de neurones. J'ai décidé de tirer en point l'heure d'été l'apprentissage en profondeur sur les mathématiques. Je compte aussi écrire un article sur le dernier conseil d'étude afin d'aider les autres à comprendre certains saccadés et des concepts difficiles. Je l'ai écrit cet article pour ceux qui sont moins bonnes à l'algèbre linéaire et le calcul sont très sympathiques, mais comme le titre l'indique, ce sera étroitement lié à un article mathématique.

formation de visualisation définie 1. La figure.

À titre d'exemple: nous allons résoudre le problème afin de déterminer l'ensemble des données de classification binaire, comme le montre la figure 1 ci-dessous. Si deux classes différentes qui formeront deux cercles - cet ensemble est très peu pratique dans de nombreux algorithme ML classique, mais quelques petits réseaux de neurones, mais peut avoir de très bons résultats. Pour résoudre ce problème, nous allons utiliser le réseau de neurones n'a --5 la structure Figure II de couches entièrement connectées ayant un nombre différent d'unités. Pour la couche cachée, nous utiliserons Relu comme fonction d'activation et la Sigmod comme la couche de sortie. Ceci est une structure assez simple, plutôt que assez compliqué d'être un besoin pour un exemple de notre bien pensé.

Figure 2. L'architecture de réseau de neurones

solution KERAS

Tout d'abord, nous utilisons une de la bibliothèque d'apprentissage de la machine la plus populaire --KERAS d'abord proposé une solution.

de keras.models importer séquentielle de keras.layers Dense d'importation model = Sequential model.add (Dense (4, input_dim = 2, l'activation = 'Relu')) model.add (Dense (6, = activation 'Relu')) model.add (Dense (6, = activation 'Relu')) model.add (Dense (4, = activation 'Relu')) model.add (Dense (1, activation = 'sigmoïde')) model.compile (perte = 'binary_crossentropy', optimiseur = 'adam', métriques = ) model.fit (X_train, y_train, époques = 50, verbeux = 0)

Comme ça. Comme je l'ai mentionné dans l'introduction, certaines importations ajouter quelques lignes de code suffit pour créer une presque 100% capable et formé du modèle de classification pour notre ensemble d'échantillons de test. Notre tâche est finalement définie en fonction de l'hyper-paramètres (le nombre de couches, le nombre de neurones dans les couches, le nombre de fois ou la fonction d'activation) pour sélectionner la structure du réseau de neurones. Maintenant, nous allons jeter un regard sur le processus de formation derrière elle. Oh ...... J'ai créé une interface visuelle fraîche dans le processus d'apprentissage. J'espère que vous ne serez pas lu, il est difficile de dormir.

Figure 3. cours de formation appropriés affichage visuel

Qu'est-ce qu'un réseau de neurones?

Répondons à la question: Qu'est-ce qu'un réseau de neurones? La méthode de construction d'un programme informatique qui est une inspiration biologique, pour apprendre à trouver et connexion de données séparée. Comme le montre la figure II. Logiciel de réseau est « neurone » est défini cascadable, d'une manière qui leur permet de communiquer ensemble.

Un seul neurone

Chaque neurone reçoit un ensemble de valeurs x (numérotées de 1 à n) en entrée et calcule les valeurs prédites de Y ^. X est la valeur de la concentration en fonction de la formation du vecteur de l'une de la quantification des échantillons de m. Le plus important est que chaque unité a son propre ensemble de paramètres, le processus d'apprentissage nécessite généralement le changement de poids (vecteurs de colonne de poids) et B (valeur d'écart), le calcul de l'élément neuronal à chaque itération du vecteur x les valeurs moyennes pondérées en fonction de son vecteur de courant de poids w, et en ajoutant l'écart, le résultat final du calcul de la fonction d'activation non linéaire g. Je mentionnerai quelques-uns des plus populaires sur la fonction d'activation dans les sections suivantes.

couche unique

Maintenant, le regard de laisser la petite place, pensez à la manière dont le calcul de la totalité de la couche de réseau de neurones. Nous utiliserons notre connaissance des principes au sein d'un seul neurone, vectorisation la couche ensemble, ces calculs seront intégrés dans l'équation de la matrice. L'équation sera écrit dans la couche sélectionnée, afin d'unifier le symbole . Soit dit en passant, l'indice i marquer les neurones de la couche d'index.

5, une seule couche

Une évaluation plus importante: lorsque l'on écrit l'équation comme une seule unité, nous utilisons le x et y ^, qui sont des vecteurs de colonne et la valeur prédite de la valeur caractéristique, lorsque nous sommes passés à la représentation de la couche, en général, nous avons utilisé le vecteur a - le vecteur peut activer la couche respective. Ainsi, x serait vecteur couches peuvent être activées 0-- couche d'entrée, chaque neurone d'effectuer des calculs similaires sont les suivants:

Pour plus de clarté, nous allons écrire l'équation comme la deuxième couche:

Comme vous pouvez le voir, pour chaque couche, nous devons effectuer de nombreuses opérations sont très similaires, donc en fait, pour cette efficacité du cycle est pas élevé, donc nous allons vectorisée pour accélérer l'opération, tout d'abord, nous vecteurs seront empilés horizontalement dans un vecteur de N * 1.

Nous chaque poids w transposé pour former une preuve W, de même, nous biaiser les couches empilées de chaque neurone, de manière à créer un vecteur B vertical, rien ne nous empêche maintenant construire une équation matricielle, il afin que nous puissions une fois que toutes les couches de neurones sont calculées. Ecrivons les dimensions de la matrice et le vecteur que nous utilisons.

Des exemples de la pluralité de vecteurs

Nous avons créé cette équation comporte donc des jusqu'à présent un seul exemple. réseau de neurones dans le processus d'apprentissage, vous utilisez généralement de grandes quantités de données, jusqu'à des millions. Ainsi, l'étape suivante sera un vecteur d'une pluralité d'exemples. Supposons que nous avons un ensemble de données d'entrées de m, chaque entrée a nx caractéristique, d'abord, nous allons chaque vecteur x vertical, a et z sont combinées, créent séparé X, A et Z de la matrice. Ensuite, nous réécrivons la mise en page précédente de l'équation, en tenant compte de la matrice nouvellement créée.

Quelle est la fonction d'activation, et pourquoi nous avons besoin de le faire?

fonction d'activation est l'un des éléments clés du réseau de neurones, composés s'ils sont absents, nous nous retrouvons avec des réseaux de neurones pour la fonction linéaire du. Par conséquent, le réseau de neurones sera une fonction linéaire directe. Notre modèle sera également manque d'évolutivité diversifiée, ce qui conduit à même pas aussi bonne que la régression logistique.

des éléments non linéaires ayant des fonctions complexes telles qu'une plus grande souplesse et la plasticité dans le processus d'apprentissage. La principale raison pour laquelle nous avons choisi la fonction d'activation est qu'il a un impact significatif sur la vitesse d'apprentissage, la figure 6 montre une fonction d'activation commune. À l'heure actuelle, couche cachée le plus populaire devrait être fonction Relu, mais nous utilisons encore parfois sigmoïde, en particulier dans la couche de sortie. Lorsque vous traitez avec la classification binaire, le modèle que nous voulons revenir à la valeur comprise entre 0 et 1.

. La figure 6. Le plus populaire et les dérivés de ceux-ci la fonction d'activation de la Fig.

La perte de fonction

Pierre angulaire du processus de développement de l'apprentissage en profondeur peut dire est la valeur de la perte. En général, la perte de la fonction de l'écart entre l'idéal et la réalité de nos valeurs est représentée. Dans notre exemple, nous utilisons une entropie croisée binaire, mais selon le problème, on peut aussi utiliser une autre fonction. Nous utilisons la fonction représentée par la formule suivante, vous pouvez voir les variations de la valeur du processus d'apprentissage à la figure 7. Il montre comment la valeur de la fonction de perte de chaque itération est réduite alors que la valeur exacte est augmentée.

Figure 7. Changement dans le processus d'apprentissage et la valeur précise des valeurs de perte

Comment les réseaux de neurones apprennent?

En fait, le processus d'apprentissage est de minimiser la perte de valeur, et en changeant la valeur du paramètre W. Pour atteindre cet objectif, nous utilisons l'intégrale et le gradient de descente algorithme pour trouver une valeur minimale de la perte de la fonction. Dans chaque itération est calculée la valeur de la dérivée partielle de la fonction de perte de chaque partie du réseau de neurones. Pour ceux qui ne sont pas très bons à ce calcul, je dirais simplement, le dérivé a la capacité de la fonction pente bien décrite. Puisque nous savons comment changer les variables pour se déplacer sur la carte.

Afin de former une compréhension intuitive de la façon dont il fonctionne sur une descente de gradient (attirer votre attention à nouveau) J'ai préparé un petit schéma visuel. Vous pouvez voir toutes les étapes que nous allons vers le point le plus bas d'un point aléatoire. Il fonctionne de la même façon dans nos réseaux de neurones - sont chaque itération du gradient pour nous montrer la direction que nous devrions aller. La principale différence est que dans notre modèle de réseau de neurones, nous avons plus de paramètres à prendre en compte. Mais ... comment peut-on calculer la dérivée totale de celui-ci?

Dans la figure 8. La descente de gradient réel

Rétropropagation

Tout comme nous avons besoin, il est un rétropropagation nous permet de calculer l'algorithme de gradient très complexe, on peut régler les paramètres du réseau de neurones selon la formule suivante.

Dans l'équation ci-dessus, représente un taux d'apprentissage - un paramètre super, vous pouvez contrôler les paramètres de performance de réglage. Sélectionnez le taux d'apprentissage est cruciale - si l'on en général trop faible. Notre réseau de neurones apprendra très lentement, si l'on est trop élevé, nous ne pouvons pas atteindre le minimum. dérivée partielle dW W et b et db sur la fonction de perte, on utilise la méthode de calcul de la chaîne. W est la taille de la matrice dW et db. La figure 9 montre la séquence des opérations du réseau de neurones. Nous voyons clairement comment propager avant et ensemble de travail pour optimiser la fonction de perte.

Figure 9. Vers l'avant et propagation

conclusion

J'espère que je l'ai expliqué les mathématiques produites dans le réseau de neurones. Lors de l'utilisation du réseau de neurones, au moins une compréhension de base de ce processus est très utile. Je pense que ces choses que je parlais sont les plus importants, mais ils ne sont que la pointe de l'iceberg. Je vous suggère fortement d'essayer de vous préparer pour un tel petits réseaux de neurones, sans l'utilisation d'un cadre de haut niveau, que Numpy.

Si vous réussissez cette lecture, félicitations. Ceci est certainement pas un simple article. Si vous aimez cet article, s'il vous plaît Suivez-moi sur Twitter et moyennes entreprises, et de voir d'autres projets sur lesquels je travaille, comme GitHub et Kaggle. Cet article est la deuxième de la série « mystère des réseaux de neurones », et d'autres articles si vous avez pas la chance de lire. Soyez curieux! Lei Feng réseau

Je veux continuer à voir les articles liens et références connexes? Lei Feng réseau

Cliquez sur le lien pour ouvrir la presse ou cliquez sur [profondeur mathématique du réseau derrière le secret de la profondeur du réseau]:

https://ai.yanxishe.com/page/TextTranslation/1161

AI Yanxishe contenu passionnant mis à jour quotidiennement, la visualisation de contenu plus excitant: Lei Feng réseau

Réalisation de l'algorithme génétique en Python

Comment l'apprentissage profond appliqué à l'image de drone de détection cible

l'apprentissage de la machine et l'apprentissage en profondeur grand PK! Classement des insectes qui est plus forte?

Python pointe avancée: coupé en deux avec une seule ligne de l'empreinte mémoire de code

En attendant vous interprétez:

Cinq CNN l'architecture très puissante

Estimation d'état: filtre de Kalman

Comment la structure sémantique référencé dans le traitement PNL nerveux

Laissez réseau de neurones a dit: « Je ne sais pas » - avec Pyro / PyTorch mettre en uvre bayésienne Réseaux de Neurones

Le nouvel élan de l'activité, peintre officiel poing à finalisent mil carte? plan de collègues Jian Ji est la source!
Précédent
Non seulement augmenter le lecteur de test simple, Peugeot 5008
Prochain
Vote fait référence à la Shu du Nord Ne voyez-vous la « louange de sable de Thunder! « Les ufs! Comme la famille de sable sur scène, réalisé à la fin de l'uf « Black Adam »
Sicong c'est vraiment en colère! Leur propre argent pour les fans de récompense, microblogging colère déteste la planification officielle!
« Docteur Strange 2 » devrait commencer le tournage ce printemps, « Black Widow » film personnel l'année prochaine!
Vs. Cody contraste Senanayake entre l'industrie de l'exploration qui portent hunter
Nike HyperAdapt vague de 1,0 secondes informations publiques nationale complète! Ne manquez pas la chance de commencer à nouveau les amis de prix d'origine
Internet des objets et de nuages AI Zhi Yi vie antérieure
Ligue de nouveau sur la recherche chaude! Ce n'est pas une fête IG à gagner! Les gens démissionnent exactement pourquoi?
Tout simplement l'envie jalouse, chaussures sur le rallye Paris Sneakerness tous doivent acheter acheter acheter!
Méchant souffle Day Film | 180 minutes et 58 secondes! « Complexe avec 4 » Final Bande-annonce la première semaine du monde au box-office ou un nouveau record
5G à venir! Qualcomm a dévoilé un nouveau phare Snapdragon 855
OPPO a annoncé de nouveaux produits Reno, produit de première génération Le 10 Avril
Suspendu ou battu un tas de machine de fée! HTC U12 + score composite au-delà de DxO Huawei P20