Intelligence artificielle

Capsule Neural Networks – L'avenir des véhicules autonomes

Capsule Neural Networks - L'avenir des véhicules autonomes


Avouons-le. Nous sommes tous mauvais en orthographe (vous êtes peut-être l'exception 🤷). Thier? Leur? Définitivement? Absolument?

Dans les deux cas, notre cerveau comprend toujours que c'est le mot leur et absolument.

Essayons de prendre cet exemple de visage.

Un visage normal

Et si je commence à bouger la bouche vers le front et les yeux vers le menton? C’est peut-être plus difficile à dire, mais c’est toujours un visage.

Un visage déformé

Les réseaux de neurones convolutifs (CNN) font un excellent travail de classification des images (comme l'image ci-dessus) en comprenant les différentes caractéristiques du visage. Ils le font en examinant des milliers d’images d’échantillons et en apprenant par son erreur. Les couches convolutives proches du début aident à détecter les caractéristiques de base (les bords) et les couches plus profondes du réseau aident à détecter les caractéristiques plus détaillées (yeux, bouche, etc.).

CNN architecture mise en page

Cependant, vous pourriez vous demander, Comment le réseau le fait-il efficacement avec toutes ces données?

Couches Max-Pooling

Entre chaque couche de convolution existe un couche max-pooling. Ces couches prennent les neurones les plus actifs de chaque couche de convolution et les transmettent à la couche de convolution suivante. Cela signifie que le les neurones moins actifs sont abandonnés. La suppression de ces neurones est la raison pour laquelle les informations spatiales sont perdues au fur et à mesure que les données progressent dans le réseau.

C’est ironique de voir comment fonctionnent les couches de max-pooling. En laissant tomber les neurones, on s’attend à ce que la précision diminue, mais cette pratique fonctionne si bien que Geoffrey Hinton a même déclaré:

"La mise en commun utilisée dans les réseaux de neurones à convolution est une grave erreur et le fait qu'elle fonctionne si bien est un désastre" - Geoffery Hinton

Cela pose également un autre problème avec les CNN. Que se passe-t-il dans chaque couche masquée et comment ces couches communiquent-elles entre elles?

Nous avons besoin d'une autre méthode qui puisse nous aider à exécuter les fonctions d'un CNN tout en améliorant l'architecture pour des classifications plus robustes. Et c’est là que réseaux neuronaux de la capsule entrer en jeu.

Les réseaux de capsules utilisent des capsules, comparés aux neurones d'un réseau de neurones standard. Les capsules encapsulent toutes les informations importantes d’une image générant un vecteur. Par rapport aux neurones, qui produisent une quantité scalaire, les capsules ont la capacité de suivre la direction de la caractéristique. Par conséquent, si nous commençons à modifier la position de l'entité, la valeur du vecteur restera la même, mais la direction indiquera le changement de position.

Avantages

1. Fonctionne très bien sur des jeux de données plus petits (c'est-à-dire MNIST)

2. Plus facile à interpréter des images plus robustes

3. garde tout les informations (pose, texture, emplacement, etc.)

Les inconvénients

1. Ne surperforme pas les jeux de données plus volumineux (c.-à-d. CIFAR10)

2. L'algorithme de routage par accord nécessite plus de temps pour calculer

Un réseau de capsules (CapsNet) contient un encodeur et un décodeur. Ensemble, le codeur et le décodeur contiennent 6 couches.

Architecture du codeur

Les trois premières couches sont les codeurs et sont responsables de prendre l'image d'entrée et de la convertir en un vecteur 16 dimensions. Les trois couches qui créent l'encodeur d'un CapsNet sont les suivantes:

1. Réseau de neurones convolutifs

2. Réseau PrimaryCaps

3. Réseau DigitCaps

La première couche est responsable de extraire les caractéristiques de base de l'image (c'est-à-dire trouver les traits qui composent le nombre 4).

La deuxième couche (PrimaryCaps) est chargée de prendre ces caractéristiques de base et trouver des modèles plus détaillés entre eux (c'est-à-dire la relation spatiale entre chaque trait). Le nombre de capsules dans cette couche varie en fonction du jeu de données, mais pour le jeu de données MNIST, 32 capsules permettent de conserver les informations les plus pertinentes.

Tout comme la deuxième couche, le nombre de capsules varie dans la troisième couche (couche DigitCaps). En particulier, pour le jeu de données MNIST, nous avons 10 capsules; une capsule pour chaque chiffre.

MNIST chiffres manuscrits

Pour déterminer quelle capsule de PrimaryCaps va aux DigitCaps, les poids de la capsule de niveau inférieur (PrimaryCaps) doivent correspondre aux poids de la capsule de niveau supérieur (DigitCaps). (Nous en discuterons plus tard.)

Architecture du décodeur

À la fin du codeur, nous avons un vecteur 16-D. Ceci est transmis au décodeur. le décodeur a trois couches entièrement connectées. La tâche principale du décodeur est de prendre le vecteur 16-D et tenter de reconstruire l'image à partir de zéro en utilisant ces données. C’est étonnant car cela rend le réseau plus robuste en générant des prédictions basées sur ses posséder connaissance.

Décomposition de l'architecture du décodeur

Dans cet esprit, il existe quatre calculs principaux dans un réseau de neurones de capsules.

1. Multiplication matricielle

2. Pondération scalaire

3. algorithme de routage dynamique

4. Non-linéarité de vecteur à vecteur

Multiplication matricielle.

Nous effectuons une multiplication de la matrice de pondération entre les informations transmises de la première à la deuxième couche afin de coder les informations permettant de comprendre les relations spatiales. Cette information codée représente la probabilité de classer les étiquettes correctes.

Pondération scalaire.

Rappelez-vous comment j'ai parlé de la façon dont le poids de la capsule de niveau inférieur doit concorder avec le niveau supérieur. À ce stade, les gélules du niveau inférieur ajustent leurs poids afin de correspondre aux poids du niveau supérieur.

Vous vous demandez peut-être: les capsules de plus haut niveau reçoivent de nombreuses contributions, comment choisissent-ils les bonnes capsules inférieures?

Eh bien, les capsules de niveau supérieur représentent graphiquement la distribution des poids et acceptent la plus grande distribution / grappe à transmettre.

Comment communiquent-ils?

Algorithme de routage dynamique.

En utilisant l'algorithme de routage dynamique, les couches peuvent communiquer entre elles. L'algorithme se concentre sur l'idée de "routage à convenir”, Qui est ce que nous avons parlé plus tôt de faire concorder le poids / contenu des capsules. L'algorithme de routage dynamique nous permet de mieux transmettre les données entre les couches du réseau, ce qui, en théorie, renforcera la complexité temporelle et spatiale. En pratique, nous utilisons trois itérations de routage car une itération excessive entraînerait une sur-adaptation et de mauvaises performances.

Contenu des gélules inférieures correspondant aux gélules de niveau supérieur

Non-linéarité de vecteur à vecteur.

Après avoir effectué l’algorithme de routage dynamique, passé les capsules à l’emplacement approprié et reconstitué l’image, la dernière étape nécessaire consiste à: compresser les informations. Nous avons besoin d’un moyen de condenser toute cette information en une chose que nous pouvons réutiliser.

Comment nous faisons cela utilise un fonction de squash.

La fonction squash prend la taille finale du vecteur et compresse la longueur en taille inférieure à 1, tout en maintenant la direction du vecteur. Voici la représentation mathématique de la fonction squash:

Le côté gauche (zone rouge) de la formule effectue la mise à l'échelle dont nous avons discuté plus tôt. Et le côté droit (zone verte) attribue une longueur d'unité au vecteur écrasé.

Récapitulation rapide: Ce vecteur de sortie (v_j) représente la probabilité que cette caractéristique soit reconnue par la capsule.

Tout comme un réseau traditionnel, les réseaux tirent les leçons de leurs erreurs. Nous pouvons représenter cette erreur par une fonction de perte qui ressemble à ceci:

Ventilation de la fonction de perte CapsNet [Source]

Cette fonction de perte retournera 0 si le réseau prédit la classe correcte avec une probabilité de 0,9 ou plus. Sinon, si la confiance est inférieure à 0,9, la fonction de perte renverra un nombre compris entre 0 et 1.

Afficher plus

SupportIvy

SupportIvy.com : Un lieu pour partager le savoir et mieux comprendre le monde. Meilleure plate-forme de support gratuit pour vous, Documentation &Tutoriels par les experts.

Articles similaires

Laisser un commentaire

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

Bouton retour en haut de la page
Fermer