Comment gérer la modification de la longueur du vecteur d'entrée avec les réseaux de neurones

9

Je veux former un réseau neuronal avec une séquence de caractères comme vecteur d'entrée. Les exemples d'apprentissage ont une longueur différente et pour cette raison, je ne sais pas comment les représenter.

Disons que j'ai deux exemples de séquences, voici des noms:

john doe
maurice delanoe

Le premier exemple est de longueur 8, le second est de longueur 15.

Existe-t-il un moyen d'apprendre ces deux exemples? Cela signifie utiliser à la fois un vecteur d'entrée de taille 8 et 15 dans le même système d'apprentissage.

Merci de votre aide !

mazieres
la source

Réponses:

4

Il y a trois stratégies générales auxquelles je peux penser pour les NN avec différentes tailles d'entrée:

  1. Prétraitez les entrées pour enregistrer la même taille. Par exemple, les gens redimensionnent souvent les images (en ignorant les proportions) à une résolution carrée standard pour les NN. Dans le cas de la langue, vous pouvez convertir tous les mots en une représentation symbolique (par exemple "john" = 1, "james" = 2, "maurice" = 3, "kelly" = 4, "doe" = 5) si cela a du sens dans votre candidature.
  2. Utilisez une fenêtre coulissante. Le réseau voit une partie de taille fixe de l'entrée, puis vous faites glisser la fenêtre par une foulée fixe et la réexécutez (à partir de zéro), répétez jusqu'à ce que vous atteigniez la fin, puis combinez toutes les sorties d'une manière ou d'une autre.
  3. Identique à # 2, mais en utilisant un réseau de neurones récurrent afin que le réseau ait un état interne qui se perpétue entre chaque foulée. C'est ainsi que les NN traitent l'audio vocal, par exemple. Évidemment, il s'agit d'un changement plus spectaculaire de l'architecture que les autres options, mais pour de nombreuses tâches de langage, cela peut être nécessaire (si vous avez de longues entrées et devez combiner des informations à travers la chaîne de manière compliquée).
Chris
la source