Umgang mit sich ändernden Eingangsvektorlängen mit neuronalen Netzen

9

Ich möchte ein neuronales Netzwerk mit einer Zeichenfolge als Eingabevektor trainieren. Lernbeispiele sind unterschiedlich lang und aus diesem Grund weiß ich nicht, wie ich sie darstellen soll.

Angenommen, ich habe zwei Beispiele für Sequenzen, hier Namen:

john doe
maurice delanoe

Das erste Beispiel hat die Länge 8, das zweite die Länge 15.

Gibt es eine Möglichkeit, diese beiden Beispiele kennenzulernen? Dies bedeutet, dass sowohl ein Eingabevektor der Größe 8 als auch 15 im selben Lernsystem verwendet werden soll.

Danke für Ihre Hilfe !

mazieres
quelle

Antworten:

4

Es gibt drei allgemeine Strategien, die ich mir für NNs mit unterschiedlichen Eingabegrößen vorstellen kann:

  1. Verarbeiten Sie die Eingaben vor, um dieselbe Größe zu speichern. Beispielsweise ändern Benutzer häufig die Größe von Bildern (ohne Berücksichtigung des Seitenverhältnisses) auf eine quadratische Standardauflösung für NNs. Im Sprachfall können Sie alle Wörter in eine symbolische Darstellung umwandeln (z. B. "john" = 1, "james" = 2, "maurice" = 3, "kelly" = 4, "doe" = 5), wenn dies sinnvoll ist in Ihrer Bewerbung.
  2. Verwenden Sie ein Schiebefenster. Das Netzwerk sieht einen Teil der Eingabe mit fester Größe, und dann schieben Sie das Fenster um einen festen Schritt und führen es erneut aus (von Grund auf neu), wiederholen es bis zum Ende und kombinieren dann alle Ausgaben auf irgendeine Weise.
  3. Wie # 2, jedoch unter Verwendung eines wiederkehrenden neuronalen Netzwerks, so dass das Netzwerk einen internen Zustand aufweist, der sich zwischen den einzelnen Schritten überträgt. So verarbeiten NNs beispielsweise Sprachaudio. Dies ist natürlich eine dramatischere Änderung der Architektur als die anderen Optionen, aber für viele Sprachaufgaben kann dies erforderlich sein (wenn Sie lange Eingaben haben und Informationen auf komplizierte Weise über die Zeichenfolge hinweg kombinieren müssen).
Chris
quelle