Quatre tâches nécessaires à quatre modèles? Maintenant, un seul modèle de réseau de neurones est assez!

Lei Feng réseau par AI Technology Review: Comme son nom l'indique, « exprimé » (représentation) fait référence à la façon dont l'information est codée dans le réseau. Pour que nous puissions comprendre pleinement le « express », les tentatives d'auteur pour construire une description de l'image peut être complété en même temps, des mots similaires, recherche d'images similaires et recherche par image description image description quatre tâches profondeur de réseau de neurones, de sorte que nous nous sentons « , a déclaré l'opération pratique « le monde merveilleux. Lei Feng réseau AI Technology Review compilé comme suit.

Comme nous le savons tous, le réseau de neurones est très bon à traiter des tâches de spécifiques dans le domaine, mais lorsqu'ils traitent avec des résultats multi-tâches ne sont pas si bon. Ceci est différent du cerveau humain, le cerveau humain est capable d'utiliser les mêmes concepts dans des tâches diverses. Par exemple, si vous ne l'avez jamais entendu parler de « fractale » (fractale), que vous pouvez regarder l'image ci-dessous:

beauté mathématique: l'image fractale (via https://fractalfoundation.org/)

Après avoir vu une image fractale, l'humain peut gérer plusieurs tâches associées à:

  • Dans une série d'images, de distinguer l'image fractale et l'image d'un chat;

  • Un morceau de papier, dessiner une carte rugueuse comme fractale (Il ne sera pas parfait, mais ne sera pas libre de graffitis);

  • Une image fractale similaire dans les images non-forme sont classées (vous ne hésitera pas à appuyer sur l'image la plus similaire au moins manière similaire à classer);

  • Fermez vos yeux et imaginez ce qu'il était comme l'image fractale (même maintenant ne vous donne pas une image fractale ready-made, vous pouvez le lire à la fois, imaginez à quoi il ressemble, ne l'est pas génial!)

Alors, comment voulez-vous accomplir ces tâches il? Y at-il un réseau de neurones responsable de la gestion de ces tâches de votre cerveau?

Les neurosciences modernes ce qui donne la réponse: Les informations contenues dans le cerveau à travers différents sites à partager et échanger. Comment le cerveau en fait vient de terminer une étude du champ de ces tâches, et la capacité à effectuer des tâches multiples est de savoir comment produire, nous avons aussi quelques indices - la réponse peut être présent dans le magasin et la façon d'interpréter les données dans le réseau de neurones.

« Représente un » monde merveilleux

Comme son nom l'indique, « exprimé » (représentation) fait référence à la façon dont l'information est codée dans le réseau. Quand un mot, une phrase ou une image (ou autre) est entrée dans un réseau neuronal entraîné, lorsque l'entrée est multipliée par la pondération et l'opération d'activation, qui peut être obtenue sur une couche de conversion continu . Enfin, nous obtenons une chaîne de nombres dans la couche de sortie, nous allons Interprété comme une étiquette de classe ou de prix ou d'autres tâches de réseau qui la formation.

Cette entrée magique - > Conversion de conversion d'entrée-sortie se produit en raison de la couche continue est réalisée. Ces conversion de données d'entrée est appelée « représentation ». Il est une idée importante est qu'une couche plus facilement des tâches à effectuer chaque niveau pour faire. Ce procédé permet la présence d'une couche continue devient plus facile, et ainsi permet également l'actif (sur une couche de conversion d'entrée de données particulier) devient significative.

Je parle de sens Quels sont-ils? Le regard de Let l'exemple ci-dessous, montrant l'activation de différentes couches de classificateurs d'image:

Le rôle du réseau est à l'image de classification d'image dans un concept plus avancé de l'espace de pixels de l'espace. Par exemple, l'image d'origine automobile représenté par une valeur RVB, le premier bord de la première couche est représentée par l'espace, il est représenté par un cercle et la forme de base de l'espace, utiliser l'objet avancé est démarré avant-dernière couche (deuxième roue de couche , portes, etc.) représentent.

Avec la représentation (en raison du niveau de la profondeur du réseau apparaissent automatiquement) de plus en plus riche, la tâche de classification d'image devient insignifiante. La dernière est de faire peser le concept de la roue et la porte est plus comme concept de voiture et plus comme des oreilles de l'homme et les yeux.

De quelle façon peut indiquer l'utilisation?

Coder les données d'entrée stockées dans ces couches intermédiaires significatives, il est possible d'utiliser les mêmes informations à une pluralité de tâches. Par exemple, vous pouvez utiliser un modèle de langage (une formation, utilisée pour prédire le mot suivant d'un réseau de neurones récurrents) et expliquer les neurones Activate un spécifiques pour prédire l'humeur de la phrase.

(Via Unsupervised Neuron Sentiment)

Un fait surprenant est que les neurones émotion dans les tâches de modélisation du langage non contrôlé qui se produisent naturellement. (Voir article: https: //rakeshchada.github.io/Sentiment-Neuron.html). Réseau formé pour prédire le mot suivant, mais on n'a pas demandé dans les émotions de prédiction du réseau de tâches. Peut-être que l'émotion est un concept très utile que le réseau afin de mieux mener à bien le langage de modélisation et créé.

Une fois que vous comprenez le concept « express », vous commencez dans une perspective complètement différente de comprendre les réseaux de neurones profonds. Vous commencerez à exprimer (représentations de détection) considérées comme un moyen de rendre la langue de mise en uvre peut être converti pour la communication entre les différents réseaux (identiques ou différentes parties du réseau).

Pour explorons exprimé en construisant un réseau « quadruple »

Pour bien comprendre la « exprimer » Construisons un a réussi à effectuer quatre tâches de la profondeur du réseau de neurones:

  • Description générateur d'images : Compte tenu de l'image, générée pour le titre

  • Générateur de mots similaires : Étant donné un mot, trouver d'autres termes similaires avec

  • recherche d'images visuellement similaires : Étant donné une image, pour trouver la plus image similaire

  • Par image description recherche d'image description : Description du texte est donnée, avec le contenu de l'image de recherche décrit

Chaque en lui-même est un projet des trois tâches, nécessitent généralement trois modèles. Mais nous utilisons maintenant Un modèle Pour effectuer toutes ces tâches.

Le code sera utilisé dans la préparation de Pytorch dans le cahier Jupyter, vous pouvez aller au magasin à télécharger:

https://github.com/paraschopra/one-network-many-uses

Partie I: description de l'image (image Captioning)

Il y a beaucoup de bons tutoriels en ligne pour réaliser l'image décrite ici est pas en profondeur explication. Je sais que ce tutoriel méthodes utilisées exactement de la même: créer une application automatique d'images de titre (lien Tutorial: https: //daniel.lasiman.com/post/image-captioning/). La principale différence est que j'utilise la mise en uvre Pytorch est atteint, et le tutoriel est Keras.

Pour continuer, vous devez télécharger ensemble de données Flickr8K (lien de téléchargement 1 Go jeu de données Flickr8K: https: //github.com/jbrownlee/Datasets/releases/download/Flickr8k/Flickr8k_Dataset.zip, mais je ne suis pas sûr que ce lien est valable pour plus de long). Veuillez remplir ce formulaire (https://forms.illinois.edu/sec/1713398), votre e-mail recevra un lien de téléchargement. Extraire le fichier zip dans le répertoire avec le portable dossier « Flicker8k_Dataset ». Vous devez également ( Télécharger description d'ici et de l'extrait décrit dans le dossier fichier « caption_datasets ».

modèle

Description de l'image se compose généralement de deux éléments:

a) un codeur d'image (capteur d'image), qui reçoit l'image d'entrée et l'image est représentée dans une description significative du format d'image;

b) ledit décodeur figure (de décodeur de sous-titres), qui reçoit la représentation d'image, et délivre en sortie le texte descriptif.

Un codeur d'image en profondeur un réseau de convolution, et la Fig ledit décodeur est un LSTM classique / GRU récurrentes Neural Networks. Bien sûr, nous pouvons les former à partir de zéro. Mais pour cela, nous avons besoin de plus de nos existants (8k images) plus de données et plus de temps de formation. Par conséquent, nous ne partons pas de codeur d'image de formation de zéro, mais l'utilisation d'une image classificateur pré-formation et l'utiliser pour activer l'avant-dernière couche.

Vous verrez de nombreux spectacles merveilleux exemple dans cet article, ce qui suit est le premier exemple. Je l'avais utilisé sur IMAGEnet formation disponibles sur le réseau de création de PyTorch à image classer 100 catégories, et utiliser le réseau pour contribuer au cycle peut indiquer un réseau de neurones.

via https://daniel.lasiman.com/post/image-captioning/

Il est à noter que, bien que le réseau Inception n'a jamais dit des tâches de génération effectuées carte de formation, mais il a fait le travail!

Comme je l'ai fait la formation d'apprentissage apprentissage automatique de la machine dans l'idée d'un texte, nous utilisons un modèle de langage pré-formé comme décodeur Légende. Mais cette fois-ci, parce que je réimplémenter un bon modèle pour exécuter le tutoriel, il suffit de suivre les étapes décrites dans le tutoriel va commencer la formation à partir de zéro un décodeur.

l'architecture complète du modèle comme indiqué ci-dessous:

Image via https://daniel.lasiman.com/post/image-captioning/

Vous pouvez commencer modèle de formation à partir de zéro, mais vous devrez passer quelques jours sur le temps CPU (je ne dois pas être optimisé GPU). Mais ne vous inquiétez pas, mon modèle d'ordinateur portable a passé plusieurs nuits sans sommeil résultat formé, disponible pour tout le monde à utiliser. (Si vous êtes à partir de la formation de zéro, il convient de noter que la perte moyenne d'environ 2,8 à courir quand je me suis arrêté la formation dans environ 40 époques où.)

performance

Faisceau recherche je méthode (recherche de faisceau) pour obtenir une bonne performance. Ce qui suit est un réseau centralisé pour tester la carte d'image générée cet exemple (réseau avait jamais vu ces images).

Utilisez mes propres photos pour essayer de voir ce que la carte réseau qui est généré:

De bons résultats! Impressionnant est que le réseau connaît cette image un homme vêtu d'un T-shirt blanc. Et bien que certains disent erreur de syntaxe Figure de la phrase (je crois que plus de formation peut corriger ces erreurs), mais les éléments de base sont pris.

Si l'image d'entrée contient quelque chose de jamais vu dans le réseau, il a tendance à l'échec. Par exemple, je suis curieux de savoir quel type de réseau d'images d'étiquette donnera iPhone X apposé.

L'effet est pas très bon. Mais dans l'ensemble, je suis très satisfait de ses performances, ce qui est quand nous apprenons à générer la figure que l'utilisation du réseau développé « express » pour construire d'autres caractéristiques offrent une bonne base.

Partie II: Mots similaires

Rappelez-vous comment nous sommes dit par le diagramme d'images montrant décodé. Nous représentons ceci est fourni au réseau LSTM / GRU, pour générer une sortie, la sortie sera interprété comme le premier mot, puis revient au premier mot dans un réseau pour générer un second mot. Ce processus continue de générer un réseau représente une marque spéciale jusqu'à la fin d'une phrase.

Pour le mot de retour au réseau, il faut convertir le mot moyen, puis entrer dans le réseau. Cela signifie que si la couche d'entrée contient 300 neurones, puis pour plus de 8000 mots différents pour ne pas dire tous les chiffres, nous devons avoir un mot que seules des numéros « 300 ». Le processus de conversion dans un dictionnaire de mots de représentation numérique, le mot est appelé incorporé (ou des mots représentés).

Nous pouvons télécharger et utiliser des mots existants intégrés, tels que word2vec ou Glove. Mais dans ce cas, nous devons apprendre à partir de zéro un mot intégré. Nous partons du mot généré au hasard insèrent des, et explorer notre réseau à la fin de la formation appris quelque chose du mot.

Impossible d'imaginer un espace tridimensionnel numérique 100, nous allons utiliser une technique appelée la magie t-SNE apprendra des mots intégrés dans la visualisation spatiale à deux dimensions. t-SNE est une technique de réduction de dimension qui tente de rendre le quartier de l'espace de grande dimension devrait le même quartier dans l'espace à faible dimension.

mot de visualisation intégré

Le regard de déposons sur la figure décodeur a appris à dire le mot de l'espace d'encastrement (contrairement à d'autres tâches linguistiques en millions de mots et de phrases, notre décodeur dans l'ensemble des données de formation ne peut voir environ 30000 phrases).

Par conséquent, nous avons appris que le réseau comme « jeu », des mots tels que « joue » et « jeu » est très similaire (ils ont une représentation similaire, des grappes denses, comme indiqué par la flèche rouge). Le regard de déposons sur une autre zone de l'espace à deux dimensions:

Cette zone semble avoir un tas de chiffres - « deux », « trois », « quatre », « cinq » et ainsi de suite. Un autre regard:

La figure, il sait que « les gens » et « enfants » ces deux mots sont similaires. De plus, il en déduire implicitement la forme de l'objet.

mots similaires

Nous pouvons utiliser pour construire une représentation 100 dimensions d'une fonction qui peut trouver et saisir le mot mots les plus semblables. Il fonctionne très simple: une représentation 100 dimensions, et trouvent similitude avec la base de données et tous les autres cosinus mots.

look Let au « garçon » la plupart des mots similaires:

Un bon résultat. En plus du « Rider », mais les « enfants », « enfant » et « enfant en bas âge » sont corrects.

Ce réseau considéré comme « courir après » des mots similaires sont:

« Poursuites » est compréhensible, mais je me demande pourquoi il est considéré comme « police » et « chasser » semblable.

analogie Word (analogies Word)

Les faits sur le mot intégré dans un excitant, vous pouvez calculer le calcul pour eux. Vous pouvez soustraire eux est représenté pour obtenir une direction par deux mots (comme « roi » et « reine »). Lorsque vous mettez dans cette direction est appliquée à une autre représentation de texte (tel que « l'homme »), vous obtiendrez une vraie analogie avec le mot (comme « femme ») est une représentation très proche. Voilà pourquoi word2vec par l'introduction de si populaire:

via https://www.tensorflow.org/images/linear-relationships.png

Je suis curieux d'apprendre par tirage au décodeur pour indiquer si une propriété similaire. Bien que les données de formation ne sont pas grandes (environ 30000 phrases) Je suis sceptique sur les résultats, mais je l'ai essayé.

Réseau appris l'analogie n'est pas parfait (en raison du nombre d'occurrences de mots écrits sur certains <10 fois, de sorte que le réseau ne soit pas suffisamment d'informations disponibles pour apprendre). Dans ce cas, je dois regarder attentivement, mais a constaté qu'il ya des analogies.

Si la « correspond circonscription » à « assis », puis « marche » correspond à quoi? Réseau pense qu'il devrait être « pose » (Ce résultat est pas mal!)

De même, si une pluralité de « l'homme » est « hommes », le pluriel « femme » devrait être c'est-il:

Le deuxième résultat est « femmes » tout à fait bonne.

Enfin, si la « herbe » correspondant au « vert », puis « ciel » ce qui lui correspond:

Réseau croit « ciel » correspondant à la « argent » ou « grise », bien que le résultat ne semble « bleu », mais il donne des résultats sont des mots de couleur. Étonnamment, le réseau peut également en déduire la direction de la couleur.

Partie III: image similaire

Si le mot pour les mots similaires groupés ensemble, la représentation d'image (prise en charge de lancement sortie du codeur d'image) il? J'utilise la même technique est appliquée à représentation d'image t-END (-dire la première étape du décodeur 300 en tant que dimension d'entrée dans tenseur figure).

visualisation

Ces points sont une représentation différente de l'image (je n'ai pas utilisé toute l'image 8K, seulement environ 100 échantillons d'image). Les flèches rouges pointent à se regrouper près d'un groupe représenté.

images de course sont regroupées ensemble.

Les enfants des images de jeu forêt / prairie seront regroupés.

L'image des joueurs de basket-ball sont également regroupés ensemble.

Trouver image d'entrée similaire

Trouver des mots similaires pour la tâche, nous avons limité à trouver des mots similaires dans le vocabulaire du jeu de test (Si le jeu de test n'existe pas un mot, notre point de vue dudit décodeur ne sera pas apprendre à intégrer le mot). Cependant, pour tâche d'images similaires, nous avons un générateur de représentation d'image, qui peut recevoir toute entrée et génère son image de codage.

Cela signifie que nous pouvons construire une fonction de recherche en utilisant la similarité cosinus méthode d'image, comme suit:

Etape 1: Obtenir toute la base de données d'image ou le dossier cible, et des représentations de ceux-ci stocke (représenté par un décodeur d'image est donnée);

Étape 2: Lorsque l'utilisateur souhaite rechercher les plus semblables à l'image existante peut représenter une nouvelle image d'entrée et de trouver l'image la plus proche (donnée par la base de données de similarité cosinus) dans la base de données.

Google image peut être utiliser officiellement ce (ou similaire) méthode pour soutenir sa fonction de recherche d'image inversée.

Voyons voir comment ce réseau fonctionne. Je clique sur ce vacances à Goa quand je tiré la photo ci-dessous. (PS: J'adore Goa!)

Notez que cette image est le mien, et le modèle que nous avons utilisé avait jamais vu cette image. Quand je vérifie des images similaires de sortie de jeu de données réseau Flickr8K image suivante:

Il ne ressemble pas? Je ne pensais pas que ce modèle aura une bonne performance, mais il fait vraiment! La profondeur du réseau de neurones est fantastique! (Https://www.youtube.com/watch?v=Y-WgVcWQYs4)

Partie IV: recherche d'images en décrivant

Dans la dernière partie, nous courrons en sens inverse le générateur illustré. Par conséquent, nous ne recevons pas l'image et génère une carte pour cela, mais SAISIR DITES (description du texte) pour trouver l'image avec la meilleure correspondance.

Il semble beau pour être vrai? Bien sûr, vous pouvez croire! Nous faisons ceci:

  • Étape 1: Tout d'abord, l'entrée est un tenseur de dimension complètement aléatoire 300, plutôt que d'une représentation d'image 300 dimensions du codeur;

  • Etape 2: geler toutes les couches de l'ensemble du réseau (par exemple, pas pour guider le calcul de gradient PyTorch);

  • Etape 3: En supposant tenseur entrée générés au hasard par le codeur d'image qui est entré dans ledit décodeur de la figure;

  • Etape 4: Accéder au réseau génère une temporisation aléatoire ladite entrée et ladite figure utilisateur muni on compare la figure;

  • Etape 5: comparaison de la générée et fournie par l'utilisateur par exemple Diagramme de la figure, à la fois calculé et il y a une perte;

  • Etape 6: les gradients de find de tenseurs d'entrée, de minimiser les pertes (par exemple, chaque valeur numérique dans quelle direction et 300 le nombre de dimensions doivent être changés beaucoup, alors que le tenseur est entré dans la figure ledit décodeur, la figure audit utilisateur fourni la carte que près);

  • Etape 7: Le changement de la direction du tenseur de gradient d'entrée (le taux d'apprentissage est donnée à un petit pas);

  • Continuer les étapes 4 à 7, jusqu'à ce que la convergence ou lorsque la perte est inférieur à un certain seuil

  • Etape finale: prendre le tenseur d'entrée final, et utiliser sa valeur pour trouver le plus proche des images de similarité (300 à arpenter la représentation dimensionnelle) par le cosinus;

Ce faisant, nous obtenons les résultats tout à fait étonnante:

Je recherchais « un chien, » Ceci est l'image du réseau trouvé:

Recherche « un garçon souriant »:

Enfin, quand je recherche:

Les deux premiers résultats sont les suivants:

et

C'est vraiment une révélation, non?

Résumé et défis

Pour rappel, vous pouvez télécharger le code complet pour toutes ces opérations de mon dépôt Github (https://github.com/paraschopra/one-network-many-uses) dans. Le référentiel comprend un modèle de données de pré-traitement figure décrit, générer ledit réseau pré-formation, le code visuel, mais ne comprend pas Flickr8K figure ledit ensemble de données ou - la nécessité de télécharger séparément (https://forms.illinois.edu/ sec / 1713398).

J'espère que vous avez apprécié cet article. Si vous voulez plus en profondeur de fonctionnement pratique, il y a un défi: pour générer une image basée sur la description donnée. C'est comme un point de départ aléatoire est de générer une carte qui fournit à l'utilisateur une représentation 300 dimensions de la même image correspondant, mais vous pouvez aller plus loin, à partir de zéro pour fournir aux utilisateurs une carte qui génère l'image il?

Ceci est 10 fois plus dur que l'opération de l'article, mais je me sens que cela est possible. S'il y a un service d'un tel, il ne peut pas seulement rechercher l'image correspondant au texte et les images peuvent être générées dynamiquement, que plus fraîche est!

À l'avenir, si les images de Google pour obtenir cette fonctionnalité, et peuvent fournir des résultats pour l'image qu'ils n'existent pas (comme « deux licorne volante dans la pizza faite tapis »), je ne serais pas surpris.

C'est tout. J'espère que vous serez en mesure de « représenter » la sécurité du monde, mais nager avec bonheur dans.

via: https: réseau //towardsdatascience.com/one-neural-network-many-uses-image-captioning-image-search-similar-image-and-words-in-one-model-1e22080ce73d Lei Feng compilé AI Technology Review

Samsung et mener à bien son truc! Ironie du sort, la nouvelle publicité « pomme » trop loin derrière
Précédent
2017 Salon de Francfort: Bin Limu est toujours édition spéciale dévoilée
Prochain
« L'action de la mer Rouge » à contre-attaque box-office unique jour premier décrochage du Nouvel An chinois, super « Monster Hunt 2 » juste autour du coin
opérations montrent de force Lenovo officier de Lenovo Z5s à nouveau déclaré le 18 Décembre officiellement publié
percée majeure DeepMind: AI a évolué capacités de navigation au niveau du cerveau, comme un animal serait « » raccourcis
Lourds favoris! Le premier article avec vue sur plaque Kechuang 29 actions, trois stocks des principales activités de haute fréquence!
Je suis un profane, toutes les tentatives en raison de l'insécurité | Interview Zheng Jun
Yichun à travers la forêt enneigée, 5A free shopping sites pittoresques, le journal vous invitent à venir, il y a des millions prix!
« ancêtres neuvième génération de » box-office épouvantable, mais Guo Degang beaucoup de succès dans les yeux de ce film?
côté du film exclusif a répondu: "Yin et Yang" la version du film deviendra non Emirates dessiner guide de carte?
2017 Salon de Francfort: La nouvelle Suzuki Swift Sport
Version Millet MIX 3 débuts 5G: à partir Xiaolong 855, des vitesses de téléchargement jusqu'à 2 Gbps
Le responsable chinois est venu à la marque Tide Pays-Bas Patta, à la fin ce soutient?
le bouche à oreille « action de la mer Rouge » est si bon, si ces quatre films viennent également de la main du directeur