Ich habe mich gefragt und versucht zu verstehen, ob es einen mathematischen Grund für die Überlegenheit von RNNs gegenüber Feed-Forward-Netzwerken beim Umgang mit sequentiellen Daten gibt. Zum Beispiel beim Modellieren von Zeitreihen, HMMs usw. Angenommen, die Länge der Sequenz ist fest, aber sehr groß.
Intuitiv ist klar, dass RNNs die relevanten Informationen bis zum aktuellen Zeitpunkt in der Zustandsvariablen und damit ihren Zustand basierend auf der aktuellen Eingabe auf aktualisieren können . Wenn wir beispielsweise Verwendung eines Feed-Forward-Netzwerks modellieren möchten , sollten wir für jedes einen Eingabeknoten haben und diese summieren, um zu erhalten, während wir mit RNN nur benötigen einen einzelnen Eingabeknoten für und der Status merkt sich die Summe .
Obwohl das obige Beispiel ziemlich elementar ist, zeigt es, dass die Komplexität von RNN (Anzahl der Knoten, Tiefe) viel geringer ist als die eines Feed-Forward-Beispiels.
Kann jemand ein Beispiel für Familien von Funktionen liefern, die nicht durch Feed-Forward erfasst werden können, aber durch RNNs gut angenähert werden können? Alle Verweise, die darauf verweisen, sind ebenfalls willkommen.
quelle
Antworten:
Ich denke nicht, dass dies eine sehr befriedigende Antwort sein wird, da es per Definition ein Beweis ist, aber ich glaube, dass es trotzdem richtig ist (wenn auch nicht sehr mathematisch ).
Zumindest nicht, wenn wir diese Definition einer Funktion akzeptieren;
Wenn wir uns eine hypothetische Funktion vorstellen , die auf einem Vektor von Eingaben und noch nicht von einem neuronalen Feed-Forward-Netzwerk ausgedrückt werden kann, könnten wir einfach als Übertragungsfunktion verwenden, und voila , wir können Konstruieren Sie nun ein einfaches Perzeptron, das eine Obermenge der Funktionalität von ausführt .ψ(x) x ψ(x) ψ(x)
Ich überlasse es dem Leser als Übung, herauszufinden, welche Werte wir für die Vorspannung und den Gewichtsvektor benötigen , damit unsere Perzeptronausgabe die unserer Mysterienfunktion nachahmt !b w f(x) ψ(x)
Das einzige, was ein RNN tun kann, was ein Feed-Forward-Netzwerk nicht kann, ist, den Status beizubehalten. Aufgrund der Anforderung, dass ein Eingang nur einem einzigen Ausgang zugeordnet ist, können Funktionen den Status nicht beibehalten. An dem oben verzerrten Beispiel können wir also erkennen, dass ein Feed-Forward-Netzwerk alles (aber nicht mehr) als jede Funktion (kontinuierlich oder anderweitig) ausführen kann.
Hinweis : Ich glaube, ich habe Ihre Frage beantwortet, aber ich denke, es lohnt sich, auf eine kleine Einschränkung hinzuweisen. Während es keine Funktion gibt, die nicht von einem Feed-Forward-Netzwerk abgebildet werden kann, gibt es mit Sicherheit Funktionen, die für RNNs besser geeignet sind als Feed-Forward-Netzwerke. Jede Funktion, die so angeordnet ist, dass Merkmalssätze innerhalb der Funktion leicht als Transformationen früherer Ergebnisse ausgedrückt werden können, ist möglicherweise besser für eine RNN geeignet.
Ein Beispiel hierfür könnte das Finden der n- ten Nummer der Fibonacci-Sequenz sein, wenn die Eingaben nacheinander präsentiert werden;
Ein RNN könnte diese Sequenz effektiv approximieren, indem nur ein Satz linearer Transformationsfunktionen verwendet wird, während eine zustandslose Funktion oder ein vorwärts gerichtetes neuronales Netz die funktionale Lösung an die Fibonacci-Sequenz approximieren müsste:
Dabei ist der goldene Schnitt und .ϕ ψ≈1.618
Wie Sie sich vorstellen können, ist die erste Variante angesichts der üblichen Reihe von Übertragungsfunktionen, die dem Entwickler eines neuronalen Netzwerks zur Verfügung stehen, viel einfacher zu approximieren.
quelle