gradient visualisation montée convolutif réseau neuronal

Note de Lei Feng réseau AI Technology Review: L'auteur Chen Zhongming, Lei Feng réseau AI Technology Review sa libération autorisée.

Pourquoi mon modèle de réseau CNN choses sont formés surajustement? Les paramètres ont été modifiés à plusieurs reprises ne fonctionneront pas, à la fin est un échantillon d'un problème ou un problème avec les définitions du modèle de réseau? Il n'y aurait pas de problème?

CNN chaque modèle de réseau de couche d'apprentissage est quelles sont les caractéristiques? Pourquoi certaines personnes disent que la première couche est la caractéristique d'information de bord extrait du noyau de convolution, certaines personnes disent que la première couche de base de convolution est extrait fonction de la couleur? Les deux ont en fin de compte est ou ce qui se passe?

couches réseau CNN et peut ensuite perdre de maintenir le même taux de précision et la perte de celui-ci? couches Soustraire peuvent réduire les paramètres réseau, j'ai eu la mémoire GPU n'est pas très grand, réseau trop grand cadrerait, ne veulent pas acheter un GPU ne peut être couche retaillés, il n'y a pas grand Dieu peut me apprendre comment faire fonctionner ah?

Plusieurs fois, nous rencontrons les problèmes ci-dessus, et par ouï-dire ont commencé à souffler se vanter des gens aveugles Baba. Avant cela, même je ne sais pas le réseau VGG16 deux dernières block5 de conv2, la formation block5 de conv3 durer presque ne se composent beaucoup de texture. Le saviez-vous? Je ne sais pas si vous pouvez apprendre avec moi, je suis un débutant dans la CNN nationale n'a pas encore commencé à fosse de saut avant trop populaire, et a été fosse profonde. ing fosse abandonnée. . . .

Récemment écrit à propre où un outil de l'entreprise pour analyser le modèle de réseau CNN formé, comme indiqué ci-dessous: A partir du premier graphique, nous pouvons voir cette image il y a certains modèles de poisson rouge poisson rouge, comme beaucoup de queue de poisson, alors il y a beaucoup d'échelles intermédiaires, une image très étrange, mais ne tiennent rien contre cette image, car il est supposé que vous mettez cette image jeté par modèle de données VGGNet IMAGEnet pratiqué dans le camp d'entraînement pour la probabilité de poisson rouge est certainement 99% vous essayez plus de 100 fois pour voir si elles sont des poissons rouges.

De même, la figure 2, les trois plans, les résultats sont comme ça, même mon arts libéraux école papier soeur pour voir ces chiffres yaya appelés, quel est ce, dégoûtant, comment les trois premiers, mais il est un peu comme un oiseau il est pas un oiseau. Oui, nous aimons à ces réseaux de neurones dégoûtant images. La plus évidente les caractéristiques plus dégoûtant.

La visualisation a été obtenue par convolution ascension du gradient Figure

visualisation graphique de synthèse On suppose Convolution x, nous voulons faire de cette image composite peut être x neurones correspondants (convolution) ayant la valeur la plus élevée d'activation. Cette image composite obtenue par le noyau de convolution est le volume de la base ou « caractéristiques de texture recherchent », « veulent voir ». C'est quand nous voulons trouver une image à travers le réseau CNN, la propagation du noyau de convolution spécifié, cette image peut faire le meilleur score du noyau de convolution.

Pour la synthèse de cette image, nous commençons par un début d'une image aléatoire de bruit, chaque valeur de pixel d'une couleur sélectionnée au hasard.

Ensuite, nous utilisons cela comme un bruit d'entrée CNN figure de réseau de propagation vers l'avant, alors accéder à la i-ième couche de la j-ième convolution activation noyau a_ij (x), puis de faire un delta calcul réseau back-propagation a_i (x ) / delta x du gradient, enfin, nous convolution du bruit de gradient est mis à jour modèle de bruit de la figure. L'objectif est de modifier les valeurs de couleurs pour chaque pixel pour augmenter l'activation du noyau de convolution, en utilisant ici une méthode de remontée de gradient:

Ce qui est le taux d'apprentissage de remontée gradient itselong. Le procédé ci-dessus est répété jusqu'à ce que l'image x i-ième couche permet au noyau j-ième convolution ayant une valeur d'activation ultérieure.

Pour la mise en uvre spécifique, nous devons définir une fonction de perte, la fonction de perte sera utilisée pour maximiser une convolution donnée la valeur d'activation du noyau. Pour la perte en fonction des objectifs d'optimisation, nous pouvons comprendre à la fin ce genre d'images peut faire ce noyau de convolution pour obtenir une meilleure valeur d'activation.

Maintenant, nous utilisons le Keras arrière pour remplir cette fonction de perte, gradients (perte, variables) pour la perte de retour de gradient de fonction par rapport aux variables.

start_time = time.time

# La perte est l'activation du neurone pour la classe choisie

perte = layer_output

# On calcule le gradient de l'image d'entrée WRT cette perte

grades = K.gradients (perte, input_img)

# Cette fonction retourne la perte et Grads donné l'image d'entrée

# Ajouter également un drapeau pour désactiver la phase d'apprentissage (dans notre cas d'abandon)

iterate = K.function ( , )

np.random.seed (1337) pour la reproductibilité #

# Nous partons d'une image grise avec un peu de bruit aléatoire

input_img_data = np.random.normal (0, 10, (1,) + model.input_shape )

# (1,) pour l'axe de traitement par lots

Notez qu'il ya un petit gradient calculé de trick-- de l'opération de régularisation L2, de sorte que le gradient est pas trop petit ou trop grand, ses avantages est d'être la procédure de remontée de gradient lisse.

Fonction de fonctionner avec les paramètres de transmission d'extrémité arrière instancier une classe de retour Fonction Keras. Ceci correspond à un objet en fonction de la fonction est utilisée, l'équivalent de la surcharge d'opérateur du support, en tant que sorties = self.train_function (entrées).

La fonction perte iterate_fun vient d'être définie, peut maintenant atteindre progressivement la valeur d'activation calculée en fonction du gradient d'augmentation du noyau de convolution.

# Nous courons ascension de gradient pour 1000 étapes

for i in range (1000):

loss_value, grads_value = iterate ( ) # 0 pour la phase de test

input_img_data + = grads_value * learning_rate # Appliquer le dégradé à l'image

print ( 'valeur de la perte actuelle:', loss_value)

# Décoder l'image d'entrée résultante et l'ajouter à la liste

img = deprocess (input_img_data )

kept_images.append ((img, loss_value))

end_time = time.time

imprimer ( '% d Filtre traités% ds s% (class_index, end_time - start_time))

Enfin, la sortie d'image comme indiqué ci-dessous, qui est la tête? Ou la tête de mouton? Vous ne trouvez pas le IMAGEnet de connexion Je ne sais pas ce que la tête. Mais cette méthode est que nous essayons de faire quelque chose avec les noyaux convolution d'image d'entrée veulent voir, être complétée par des pertes en hausse et les noyaux de convolution de couche de gradient sur l'image originale entrée en remplissant les détails convolution obtenir visuelle carte nucléaire.

Tous convolution visuelle figure

noyau de convolution de visualisation est la plus partie intéressante de cet exemple, il est ma partie préférée. En analysant le noyau de convolution de modèle de réseau CNN, nous verrons à la fin de chaque couche noyau est extraite convolution quel type de contenu, les caractéristiques de texture. Lorsque nous comprenons la signification derrière elle extrait les caractéristiques modèle CNN, vous pouvez avoir assez de confiance pour modifier les paramètres de convolution réseau de neurones CNN.

Ici, nous allons utiliser VGG16 modèles de réseau ont été formés à base de convolution systématique de chaque Visualize couche réseau est de voir la couche CNN par décomposition de la couche de l'extraction de caractéristiques d'entrée à la fin est ce.

Le résultat final de l'exécution comme indiqué ci-dessous, pour compléter le noyau de convolution de couleur principale de codage Block1_Conv1, direction, etc., au noyau de convolution Block2_Conv2 plus beaucoup plus texture et la direction du grain différent de Block1_Conv1, la couleur et plus exprimé riche et varié, et on peut le voir au bord de certaines performances inégales.

Avec plus de modèle continu réseau VGG16, la direction de la couleur et la texture de la composition de base, de générer progressivement la texture spéciale. Lors de la saisie Block3_Conv1, la direction et la performance des couleurs commence devient faible, ont commencé à apparaître des caractéristiques de texture plus complexes (circulaire, en spirale, polygonale, comme une vague forme en combinaison), à laquelle vous pouvez voir clairement la texture Block5_Conv1 Plus particulièrement, convolution avec la croissance du cyberespace l'information nucléaire et l'émergence de fonctionnalités plus sophistiquées et complexes.

noyau Convolution est de plus en plus complexe, car ils ont commencé à intégrer de plus en plus de l'étendue spatiale de l'information, l'information présentée et a exprimé enrichi.

Après un lecteur attentif peut trouver la tentative réelle: il y aura une petite quantité de noyau de convolution visuelle est vide ou le même que dans la même couche de convolution, ce qui signifie que l'opération de convolution et vérification ultérieure sans effet pratique, par DropOut le noyau de convolution pour réduire la quantité de calcul et de réduire la possibilité de overfitting réseau.

De plus, il y aura une partie du noyau de convolution par rotation et visualisé la traduction, pour obtenir un autre noyau de convolution visuelle. Ceci est une direction de recherche très intéressant, nous pourrions être en mesure de remplacer potentiellement autre couche réseau du noyau de convolution en trouvant une méthode de invariance par rotation, comprimant ainsi le nombre de noyau de convolution. Surprenant que même pour un niveau relativement élevé de filtre, tels que Block4_Conv1 par rotation, translation pour obtenir le même noyau de convolution visuelle est toujours valide.

Mais conv3 block5 dernier, après le code de la pratique, nous constatons qu'il n'y a que le noyau 512 convolution 65 convolution perte de noyau est de 0, qui est, le reste du noyau de convolution ne peut plus continuer à l'information d'extrait sur la fonction de la texture de grande dimension c'est ainsi la même chose? Pourquoi est-ce pas? Ceci est aussi le ResNet ou GoogleNet pour améliorer VGGNet peuvent parfois pas tous les réseaux CNN noyau de convolution (neurones) peuvent participer réseau informatique, jouer un rôle dans l'extraction de caractéristiques dimensionnelle. Le montre la figure ci-dessous couche saut ResNet façon, parce que VGG de conv3 block5, block5 conv2 ont commencé à apparaître un noyau de convolution beaucoup d'aucune utilité, et block4 conv3 il y a beaucoup d'informations utiles peuvent être transmises en arrière.

Avec l'analyse visuelle du modèle de réseau CNN, nous comprenons plus profondément détails par étape sur le fonctionnement du réseau de neurones convolution CNN, plus précisément ce qui est texture extrait présente des informations. Si vous avez l'énergie, vous pouvez également spécifier afficher vos propres mains d'abandon des neurones leur convolution réseau de neurones overfitting pourquoi, comment peut couper le réseau. Ce processus est très intéressant, mais aussi un processus d'essai humain de patience.

CNN comprennent vraiment visuelle

Deux fonctions principales convolution réseau neuronal CNN que: 1) l'entrée d'une combinaison de l'image du noyau de convolution visuo-spatiale, le niveau des composants de découplage. 2) par l'entrée de données de la carte hiérarchique noyau de convolution dans un espace géométrique différente.

Certaines personnes prétendront convolution réseau de neurones CNN par la pensée hiérarchique du découplage d'entrée d'image, un processus qui simule le cortex visuel humain, afin d'obtenir un effet sophistiqué. Mais le fait est-ce vraiment? Du point de vue scientifique, cela ne signifie pas que nous sommes vraiment une façon de résoudre le problème de la vision par ordinateur, nous utilisons simplement une approche mathématique pour l'échantillonnage d'entrée de données d'image et cartographie l'espace géométrique. la science même est tellement expliqué, mais leur réalité n'a pas réfuté le cortex visuel fonctionne pas de cette façon.

Bien que l'étude ne peut pas exprimer la profondeur de l'intelligence réelle, mais sans doute son efficacité est tellement incroyable qu'aucun autre algorithme ne peut égaler au cours des dernières années, et dans certains cas même dépassé la précision de la prédiction de l'humanité! Nous ne regardons pas en avant à des algorithmes d'apprentissage de notre façon de penser, mais plutôt d'embrasser les mathématiques, avec sa façon particulière au service de l'humanité, continuent à découvrir, continuer à créer et de continuer à mener dans le domaine de la simulation numérique!

références:

Yosinski__2015__ICML_DL__Understanding_Neural_Networks_Through_Deep_Visualization

Comment les réseaux de neurones convolutionnel voient le monde

Adresse: https: //blog.keras.io/how-convolutional-neural-networks-see-the-world.html

Lei Feng réseau AI Technology Review.

CI haut-parleurs customisés de Dani Nordic PHANTOM S180 expérience ensemble
Précédent
Ce Noël SWAG complet! Rap Nas a publié la étoile conception personnelle d'un seul produit
Prochain
Charlize Theron dominateur des enfants Reine Fan louange gagné Beat Street: un garde du corps semblait faire petite femme
2019 premier jour venu stocker la plupart membres
Investissement haussier, la fatigue subséquente --2017 tendances de l'investissement de la chaîne de bloc rapport, l'autorité des idées CB émis
voiture nue 15-20W, voiture familiale, acheter ce qui est mieux?
Parce joué trop bon, les développeurs « Battlefield 5 » sont « Black Ops 4 » comme le titre suspendu
Cette semaine a caché complètement le Chunxindangyang, que le frère de marteau comme nous avons réalisé un « spectacle très bien. »
Ni Ni paillettes d'or jupe aux États-Unis aux sourires extrêmes, est livré avec un excellent style de tempérament
Mignon Gakki encore, oublier la dernière fille du 20ème siècle idole Hirosue
Résumé des affiches nubiens Alpha faits saillants sont trop nombreux pour avoir été l'avenir
2 ans à moins de 6 fois le prix a doublé, « miracle de montée » de Nvidia continue
King est né la nuit! « Chanteur » Roi de bataille 2019 commencera duel
voiture approche du Nouvel An est au moment pourquoi la grande étape des salariés X7 devenir un favori?