Comment les réseaux de neurones peuvent-ils gérer des tailles d’entrée variables?


43

Autant que je sache, les réseaux de neurones ont un nombre fixe de neurones dans la couche d'entrée.

Si des réseaux de neurones sont utilisés dans un contexte tel que la PNL, des phrases ou des blocs de texte de différentes tailles sont envoyés à un réseau. Comment la taille de l'entrée variable est-elle réconciliée avec la taille fixe de la couche d'entrée du réseau? En d'autres termes, comment un tel réseau est-il suffisamment flexible pour traiter une entrée pouvant aller d'un mot à plusieurs pages de texte?

Si mon hypothèse d'un nombre fixe de neurones d'entrée est fausse et que de nouveaux neurones d'entrée sont ajoutés / retirés du réseau pour correspondre à la taille de l'entrée, je ne vois pas comment ils pourraient être formés.

Je donne l'exemple de la PNL, mais beaucoup de problèmes ont une taille d'entrée intrinsèquement imprévisible. Je suis intéressé par l'approche générale pour faire face à cela.

Pour les images, il est clair que vous pouvez monter / réduire l’échantillon à une taille fixe, mais pour le texte, cela semble être une approche impossible, car l’ajout / la suppression de texte modifie le sens de la saisie d’origine.


pouvez-vous clarifier ce que vous entendez par sous-échantillonnage à une taille fixe? Comment se fait le sous-échantillonnage?
Charlie Parker

Réponses:


37

Trois possibilités me viennent à l’esprit.

Le plus simple est le zero-padding . En gros, vous prenez une taille d’entrée assez grande et vous n’ajoutez que des zéros si votre entrée concrète est trop petite. Bien sûr, ceci est assez limité et certainement pas utile si votre saisie va de quelques mots à des textes entiers.

Les NN récurrents (RNN) sont des NN très naturels à choisir si vous avez des textes de taille variable en entrée. Vous entrez des mots en tant que vecteurs de mots (ou imbrications) les uns après les autres et l'état interne du RNN est censé coder la signification de la chaîne complète de mots. C'est l'un des précédents articles.

Une autre possibilité consiste à utiliser des NN récursifs . Il s'agit essentiellement d'une forme de prétraitement dans laquelle un texte est récursivement réduit à un nombre réduit de vecteurs de mots jusqu'à ce qu'il ne reste qu'un seul mot - votre entrée, qui est censée coder l'intégralité du texte. Cela a beaucoup de sens d’un point de vue linguistique si votre entrée est composée de phrases (dont la taille peut varier beaucoup), car les phrases sont structurées de manière récursive. Par exemple, le mot vecteur pour "l'homme" devrait être similaire au mot vecteur pour "l'homme qui a confondu sa femme avec un chapeau", car les expressions nominales agissent comme des noms, etc. Vous pouvez souvent utiliser des informations linguistiques pour vous guider. votre récurrence sur la phrase. Si vous voulez aller au-delà de l'article de Wikipedia, c'est probablement un bon début .


1
Quelle est la différence entre ce que vous avez appelé "NN récursifs" et les RNN? R est pour récursif ... En outre, quelques citations et des pointeurs seraient utiles.
Eric Platon

3
R est pour récurrent. Récurrent signifie que l’on ajoute encore et encore des entrées linéaires au même NN. Récursif signifie entrer les données le long d'une structure arborescente.
BlindKungFuMaster

@BlindKungFuMaster 0 Le remplissage avec masque pour MLP est-il bon et n'affecte pas la précision?
DINA TAKLIT

12

D'autres ont déjà mentionné:

  • zéro remplissage
  • RNN
  • NN récursif

Je vais donc ajouter une autre possibilité: utiliser des convolutions différents nombre de fois en fonction de la taille de l'entrée. Voici un excellent livre qui confirme cette approche:

Prenons une collection d’images où chaque image a une largeur et une hauteur différentes. Il est difficile de savoir comment modéliser ces entrées avec une matrice de pondération de taille fixe. La convolution est simple à appliquer; le noyau est simplement appliqué un nombre de fois différent en fonction de la taille de l'entrée, et la sortie de l'opération de convolution est mise à l'échelle en conséquence.

Tiré de la page 360. Vous pouvez le lire davantage pour voir d'autres approches.


1
Il me semble que cette approche ne fonctionnera que si 1) le rapport de format (AR) de toutes les images en entrée est identique, 2) vous redimensionnez toutes les images en un AR donné, ou 3) vous utilisez des images zéro-pad pour forcer étant donné AR.
Matt Wenham

@Salvador Dali Le remplissage avec masque "0" peut-il être une bonne solution pour les MLP?
DINA TAKLIT

Je ne trouve pas le texte que vous citez dans votre réponse dans le livre. Peut-être qu'il était présent à l'origine et a été retiré plus tard? La page 354 a actuellement un paragraphe qui commence de manière similaire, mais n'utilise jamais un nombre variable de calques (mais une taille de sortie variable à la place).
Jochen

7

En PNL, vous avez un ordre inhérent des entrées, donc les RNN sont un choix naturel.

Pour les entrées de taille variable où il n'y a pas d'ordre particulier parmi les entrées, on peut concevoir des réseaux qui:

  1. utilisez une répétition du même sous-réseau pour chacun des groupes d'entrées (c'est-à-dire avec des poids partagés). Ce sous-réseau répété apprend une représentation des (groupes de) entrées.
  2. utilisez une opération sur la représentation des entrées qui a la même symétrie que les entrées. Pour les données invariantes aux ordres, la moyenne des représentations des réseaux d'entrée est un choix possible.
  3. utilisez un réseau de sortie pour minimiser la fonction de perte au niveau de la sortie en fonction de la combinaison des représentations de l'entrée.

La structure se présente comme suit:

structure du réseau

Des réseaux similaires ont été utilisés pour apprendre les relations entre les objets ( arxiv: 1702.05068 ).

Un exemple simple sur la façon d'apprendre la variance d'un échantillon d'un ensemble de valeurs de taille variable est donné ici (disclaimer: je suis l'auteur de l'article lié).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.