Support IVY : Encyclopédie #1 et site d'informations, Conseils, Tutorials, Guides et plus
  • Accueil
  • Astuces
  • Magazine
    • Conseil en relations
      • Astuces
    • Rédaction & écriture
    • Web Design
    • Réseaux sociaux
      • Facebook
  • Lifestyle
    • Food
  • Ressources
    • Questions & Réponses
    • Graphique
      • PixelArt
No Result
View All Result
Support IVY : Encyclopédie #1 et site d'informations, Conseils, Tutorials, Guides et plus
  • Accueil
  • Astuces
  • Magazine
    • Conseil en relations
      • Astuces
    • Rédaction & écriture
    • Web Design
    • Réseaux sociaux
      • Facebook
  • Lifestyle
    • Food
  • Ressources
    • Questions & Réponses
    • Graphique
      • PixelArt
Support IVY : Encyclopédie #1 et site d'informations, Conseils, Tutorials, Guides et plus
No Result
View All Result
Home Intelligence artificielle

Démantèlement des réseaux de neurones pour comprendre le fonctionnement interne avec les mathématiques et Pytorch

6 juin 2020
in Intelligence artificielle
Reading Time: 11 mins read
Démantèlement des réseaux de neurones pour comprendre le fonctionnement interne avec les mathématiques et Pytorch

Table des matières

ArticlesA lire

Normalisation – Vitrine – Programmation

Normalisation – Vitrine – Programmation

Effet du traitement dans l’étude observationnelle

Effet du traitement dans l’étude observationnelle

Quelles sont les techniques pour détecter les anomalies

Quelles sont les techniques pour détecter les anomalies

Réseaux adverses génératifs – Vers la science des données

Réseaux adverses génératifs – Vers la science des données

Démantèlement des réseaux de neurones pour comprendre le fonctionnement interne avec les mathématiques et Pytorch

La mise en œuvre de la différenciation softmax nous oblige à parcourir la liste des neurones et à se différencier par rapport à chaque neurone. Par conséquent, deux boucles sont impliquées. Gardez à l’esprit que le but de ces implémentations n’est pas d’être performant, mais plutôt de traduire explicitement les mathématiques et d’arriver aux mêmes résultats obtenus par les méthodes intégrées de Pytorch.

Dans la séquence d’opérations impliquées dans un réseau neuronal, le softmax est généralement suivi de la perte d’entropie croisée. En fait, les deux fonctions sont si étroitement liées que dans Pytorch la méthode cross_entropy combine les deux fonctions en une seule.

Je me souviens de ma première impression quand j’ai vu la formule de la perte d’entropie croisée. C’était proche d’admirer des hiéroglyphes. Après l’avoir déchiffré, j’espère que vous partagerez ma crainte face à la façon dont les idées simples peuvent parfois avoir les représentations les plus complexes.

Fonction de perte d’entropie croisée.

Les variables impliquées dans le calcul de la perte d’entropie croisée sont p, y, m, et K. Tous les deux je et k sont utilisés comme compteurs pour itérer de 1 à m et K respectivement.

  • Z: est un tableau où chaque ligne représente les neurones de sortie d’une instance. m: est le nombre d’instances.
  • K: est le nombre de classes.
  • p: est la probabilité du réseau de neurones cette instance je appartient à la classe k. Il s’agit de la même probabilité calculée à partir de softmax.
  • y: est l’étiquette d’instance je. Il s’agit soit de 1, soit de 0 selon que y appartient à la classe k ou pas.
  • Journal: est le logarithme naturel.

Supposons que nous effectuons une tâche de classification multi-classes où le nombre de classes possibles est de trois (K= 3). Chaque instance ne peut appartenir qu’à une seule classe. Par conséquent, chaque instance est affectée à un vecteur d’étiquettes avec deux zéros et un. Par exemple y=[0,0,1] signifie que l’instance de y appartient à la classe 2. De même, y=[1,0,0] signifie que l’instance de y appartient à la classe 0. L’index du 1 fait référence à la classe à laquelle appartient l’instance. Nous disons que les étiquettes sont codé à chaud.

Prenons maintenant deux instances (m= 2). Nous calculons leur z valeurs et nous trouvons: Z = [[0.1, 0.4, 0.2], [0.3, 0.9, 0.6]]. Ensuite, nous calculons leurs probabilités softmax et trouvons: Activations = [[0.29, 0.39, 0.32], [0.24, 0.44, 0.32]]. Nous savons que la première instance appartient à la classe 2 et la seconde instance appartient à la classe 0, car: y =[[[0,0,1],[1,0,0]].

Pour calculer l’entropie croisée:

  1. Nous prenons le log des activations softmax: journal (activations) = [[-1.24, -0.94, -1.14], [-1.43, -0.83, -1.13]].
  2. On multiplie par -1 pour obtenir le log négatif: -log (activations) = [[1.24, 0.94, 1.14], [1.43, 0.83, 1.13]].
  3. Multiplication du journal (activations) par y donne: [[0., 0., 1.14], [1.43, 0., 0.]].
  4. La somme de toutes les classes donne: [[0.+0.+1.14], [1.43+0.+0.]]= [[1.14], [1.43]]
  5. La somme de toutes les instances donne: [1.14+1.43] = [2.57]
  6. La division par le nombre d’instances donne: [2.57 / 2] = [1.285]

Observations:

  • Les étapes 3 et 4 sont équivalentes à la simple récupération du journal négatif de la classe cible.
  • Les étapes 5 et 6 équivalent au calcul de la moyenne.
  • La perte est égale à 1,14 lorsque le réseau neuronal a prédit que l’instance appartient à la classe cible avec une probabilité de 0,32.
  • La perte est égale à 1,43 lorsque le réseau neuronal a prédit que l’instance appartient à la classe cible avec une probabilité de 0,24.
  • Nous pouvons voir que dans les deux cas, le réseau n’a pas donné la probabilité la plus élevée à la classe correcte. Mais par rapport à la première instance, le réseau était plus confiant quant à la deuxième instance n’appartenant pas à la classe correcte. Par conséquent, il a été pénalisé avec une perte plus élevée de 1,43.

Nous combinons les étapes et les observations ci-dessus dans notre implémentation de l’entropie croisée. Comme d’habitude, nous allons également passer par la méthode équivalente de Pytorch, avant de comparer les deux sorties.

Remarque: Au lieu de stocker le codage à chaud des étiquettes, nous stockons simplement l’index du 1. Par exemple, le précédent y devient [2,0]. Remarquez, à l’index 0, la valeur de y est 2, et à l’indice 1, la valeur de y est 0. En utilisant les indices de y et leurs valeurs, nous pouvons récupérer directement les journaux négatifs pour les classes cibles. Pour ce faire, accédez à -log (activations) à la ligne 0, colonne 2 et à la ligne 1, colonne 0. Cela nous permet d’éviter les multiplications et les ajouts inutiles de zéros aux étapes 3 et 4. Cette astuce est appelée indexation de tableaux entiers et est expliqué par Jeremy Howard dans son Deep Learning From The Foundations conférence 9 à 34:57

ShareTweetPin

Related Posts

Normalisation – Vitrine – Programmation
Intelligence artificielle

Normalisation – Vitrine – Programmation

Normalisation - Vitrine - Programmation SCIENCE DES DONNÉES - COVID-19 - VISUALISATION - PROGRAMMATION Combien de personnes infectées vivent encore...

Effet du traitement dans l’étude observationnelle
Intelligence artificielle

Effet du traitement dans l’étude observationnelle

Effet du traitement dans l'étude observationnelle En inférence causale observationnelle à l'aide des dossiers de santé électroniques Inférence causale pour...

Quelles sont les techniques pour détecter les anomalies
Intelligence artificielle

Quelles sont les techniques pour détecter les anomalies

Quelles sont les techniques pour détecter les anomalies photo par Ali Hajian sur UnsplashDétection d'une anomalie est l'identification d'éléments, d'événements...

Réseaux adverses génératifs – Vers la science des données
Intelligence artificielle

Réseaux adverses génératifs – Vers la science des données

Réseaux adverses génératifs - Vers la science des données GAN dans le Deep Learning Une plongée dans le monde magique...

Next Post
But dans la vie: pour vous aider au travail – ÉCLAIRAGE

But dans la vie: pour vous aider au travail - ÉCLAIRAGE

Design : Mon histoire d’une page de garde pour le fichier Figma

Design : Mon histoire d'une page de garde pour le fichier Figma

Laisser un commentaire Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

  • Accueil
  • Questions & Réponses
  • Science
  • Astuces
  • Business
  • Cryptomonnaie
  • Design
  • Marketing
  • Programmation
  • Politique de confidentialité
  • A propos
  • Contact

© 2018-2020 SupportIVY - Premium Magazine.

No Result
View All Result
  • Accueil
  • Astuces
  • Magazine
    • Conseil en relations
      • Astuces
    • Rédaction & écriture
    • Web Design
    • Réseaux sociaux
      • Facebook
  • Lifestyle
    • Food
  • Ressources
    • Questions & Réponses
    • Graphique
      • PixelArt