Wie können neuronale Netze mit unterschiedlichen Eingangsgrößen umgehen?


42

Soweit ich das beurteilen kann, haben neuronale Netze eine feste Anzahl von Neuronen in der Eingabeebene.

Wenn neuronale Netzwerke in einem Kontext wie NLP verwendet werden, werden Sätze oder Textblöcke unterschiedlicher Größe in ein Netzwerk eingespeist. Wie wird die variierende Eingabegröße mit der festen Größe der Eingabeebene des Netzwerks in Einklang gebracht ? Mit anderen Worten, wie kann ein solches Netzwerk flexibel genug sein, um mit Eingaben umzugehen, die von einem Wort bis zu mehreren Textseiten reichen können?

Wenn meine Annahme einer festen Anzahl von Eingangsneuronen falsch ist und neue Eingangsneuronen zum Netzwerk hinzugefügt / daraus entfernt werden, um der Eingangsgröße zu entsprechen, sehe ich nicht, wie diese jemals trainiert werden können.

Ich nenne das Beispiel von NLP, aber viele Probleme haben eine von Natur aus unvorhersehbare Eingabegröße. Ich interessiere mich für den allgemeinen Ansatz, damit umzugehen.

Bei Bildern ist es klar, dass Sie eine feste Größe für das Up- / Down-Sampling festlegen können. Bei Text scheint dies jedoch ein unmöglicher Ansatz zu sein, da das Hinzufügen / Entfernen von Text die Bedeutung der ursprünglichen Eingabe ändert.


Können Sie klären, was Sie meinen, indem Sie auf eine feste Größe herunterrechnen? Wie erfolgt das Downsampling?
Charlie Parker

Antworten:


36

Drei Möglichkeiten kommen in den Sinn.

Am einfachsten ist das Auffüllen mit Nullen . Grundsätzlich nehmen Sie eine ziemlich große Eingabegröße und fügen nur Nullen hinzu, wenn Ihre konkrete Eingabe zu klein ist. Dies ist natürlich ziemlich begrenzt und sicherlich nicht sinnvoll, wenn Ihre Eingabe von wenigen Wörtern bis zu Volltexten reicht.

Wiederkehrende NNs ( Recurrent NNs, RNN) sind eine sehr natürliche Wahl, wenn Sie Texte unterschiedlicher Größe als Eingabe haben. Sie geben Wörter als Wortvektoren (oder Einbettungen) nacheinander ein, und der interne Zustand des RNN soll die Bedeutung der gesamten Wortfolge codieren. Dies ist eine der früheren Arbeiten.

Eine andere Möglichkeit ist die Verwendung von rekursiven NNs . Dies ist im Grunde eine Form der Vorverarbeitung, bei der ein Text rekursiv auf eine kleinere Anzahl von Wortvektoren reduziert wird, bis nur noch einer übrig ist - Ihre Eingabe, die den gesamten Text codieren soll. Dies ist aus sprachlicher Sicht sehr sinnvoll, wenn Ihre Eingabe aus Sätzen besteht (die sehr unterschiedlich groß sein können), da die Sätze rekursiv strukturiert sind. Beispielsweise sollte der Wortvektor für "der Mann" dem Wortvektor für "der Mann, der seine Frau mit einem Hut verwechselt hat" ähnlich sein, da Substantivphrasen wie Substantive usw. wirken. Oft können Sie sprachliche Informationen als Leitfaden verwenden Ihre Rekursion auf den Satz. Wenn Sie weit über den Wikipedia-Artikel hinausgehen möchten, ist dies wahrscheinlich ein guter Anfang .


1
Was ist der Unterschied zwischen den sogenannten "rekursiven NNs" und den RNNs? R ist für rekursive ... Auch ein paar Zitate und Hinweise wären nützlich.
Eric Platon

3
R ist für wiederkehrende. Wiederkehrend bedeutet, die Eingabe immer wieder linear zu demselben NN hinzuzufügen. Rekursiv bedeutet, die Daten entlang einer Baumstruktur einzugeben.
BlindKungFuMaster

@BlindKungFuMaster 0 Polsterung mit Maske für MLPs ist es gut und beeinflusst die Genauigkeit nicht schlecht?
DINA TAKLIT

12

Andere haben bereits erwähnt:

  • Nullpolsterung
  • RNN
  • rekursives NN

Deshalb möchte ich eine weitere Möglichkeit hinzufügen: Verwenden von Windungen, die je nach Größe der Eingabe unterschiedlich oft verwendet werden. Hier ist ein ausgezeichnetes Buch, das diesen Ansatz bestätigt:

Stellen Sie sich eine Sammlung von Bildern vor, bei denen jedes Bild eine andere Breite und Höhe hat. Es ist unklar, wie solche Eingaben mit einer Gewichtsmatrix fester Größe modelliert werden sollen. Faltung ist einfach anzuwenden; Der Kernel wird einfach unterschiedlich oft angewendet, abhängig von der Größe der Eingabe, und die Ausgabe der Faltungsoperation skaliert entsprechend.

Entnommen aus Seite 360. Sie können es weiter lesen, um einige andere Ansätze zu sehen.


1
Mir fällt ein, dass dieser Ansatz nur dann funktioniert, wenn 1) das Seitenverhältnis (AR) aller eingegebenen Bilder gleich ist, 2) Sie alle Bilder auf ein bestimmtes AR skalieren oder 3) Sie Bilder auf Null setzen, um a zu erzwingen gegebene AR.
Matt Wenham

@Salvador Dali Kann "0" -Polsterung mit Maske eine gute Lösung für MLPs sein?
DINA TAKLIT

Ich kann den Text, den Sie in Ihrer Antwort im Buch zitieren, nicht finden. Vielleicht war es ursprünglich vorhanden und wurde später entfernt? Seite 354 enthält derzeit einen Absatz, der ähnlich beginnt, jedoch niemals eine variable Anzahl von Ebenen verwendet (sondern stattdessen eine variable Ausgabegröße).
jochen

7

In NLP haben Sie eine inhärente Reihenfolge der Eingaben, sodass RNNs eine natürliche Wahl sind.

Für Eingänge mit variabler Größe, bei denen es keine bestimmte Reihenfolge zwischen den Eingängen gibt, kann man Netzwerke entwerfen, die:

  1. Verwenden Sie eine Wiederholung desselben Subnetzwerks für jede der Eingabegruppen (dh mit gemeinsamen Gewichten). Dieses wiederholte Subnetz lernt eine Darstellung der (Gruppen von) Eingängen.
  2. Verwenden Sie eine Operation für die Darstellung der Eingänge, die dieselbe Symmetrie wie die Eingänge aufweist. Für bestellungsinvariante Daten ist die Mittelung der Darstellungen aus den Eingangsnetzen möglich.
  3. Verwenden Sie ein Ausgangsnetzwerk, um die Verlustfunktion am Ausgang basierend auf der Kombination der Darstellungen des Eingangs zu minimieren.

Die Struktur sieht wie folgt aus:

Netzwerkstruktur

Ähnliche Netzwerke wurden verwendet, um die Beziehungen zwischen Objekten zu lernen ( arxiv: 1702.05068 ).

Ein einfaches Beispiel für das Lernen der Stichprobenvarianz eines Wertesatzes mit variabler Größe finden Sie hier (Haftungsausschluss: Ich bin der Autor des verlinkten Artikels).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.