Neuronales Netz mit flexibler Anzahl von Eingängen?

7

Ist es möglich, ein neuronales Netzwerk zu erstellen, das eine konsistente Ausgabe liefert, da die Eingabe in Vektoren unterschiedlicher Länge vorliegen kann?

Ich bin derzeit in einer Situation, in der ich viele Audiodateien mit unterschiedlicher Länge abgetastet habe und ein neuronales Netzwerk trainieren muss, um bei einer bestimmten Eingabe die gewünschte Ausgabe zu erhalten. Ich versuche, ein Regressionsnetzwerk zu erstellen, das MFCC-Funktionen generieren kann, wenn Beispiele einer Audiodatei unterschiedlicher Länge vorhanden sind, die unterschiedlich nummerierte Eingaben vornehmen.

Carlton Banks
quelle

Antworten:

9

Ja, dies ist möglich, indem das Audio als Sequenz in einem wiederkehrenden neuronalen Netzwerk (RNN) behandelt wird . Sie können eine RNN gegen ein Ziel trainieren, das am Ende einer Sequenz korrekt ist, oder sogar einen anderen Sequenzversatz von der Eingabe vorhersagen.

Beachten Sie jedoch, dass Sie ein wenig über Optionen für den Aufbau und die Schulung eines RNN lernen müssen , die Sie bei der Betrachtung einfacher geschichteter Feed-Forward-Netzwerke noch nicht studiert haben. Moderne RNNs verwenden Schichtdesigns, die Speichergatter enthalten. Die beiden beliebtesten Architekturen sind LSTM und GRU. Diese fügen jeder Schicht mehr trainierbare Parameter hinzu, da die Speichergatter zusätzlich zu den Gewichten zwischen und innerhalb der Schicht Gewichte lernen müssen.

RNNs werden häufig verwendet, um aus Audiosequenzen, die bereits in MFCC oder ähnlichen Funktionssätzen verarbeitet wurden, Vorhersagen zu treffen, da sie sequenzierte Daten als Eingabe und / oder Ausgabe verarbeiten können. Dies ist eine wünschenswerte Funktion, wenn Daten mit variabler Länge wie gesprochenes Wort verarbeitet werden , Musik etc.

Einige andere bemerkenswerte Dinge:

  • RNNs kann auch für arbeitet Sequenzen von Daten , die mit variabler Länge sind, und wo es eine gut definierte Dimension , über die die Sequenzen zu entwickeln. Sie sind jedoch weniger gut für Feature-Sets mit variabler Größe geeignet, bei denen es keine klare Reihenfolge oder Reihenfolge gibt.

  • RNNs können hochmoderne Ergebnisse für Signalverarbeitung, NLP und verwandte Aufgaben erhalten, jedoch nur, wenn eine sehr große Menge an Trainingsdaten vorhanden ist. Andere, einfachere Modelle können genauso gut oder besser funktionieren, wenn weniger Daten vorhanden sind.

  • Für das spezielle Problem der Erzeugung von MFCCs aus Roh-Audio-Samples: Während es möglich sein sollte, eine RNN zu erstellen, die MFCC-Funktionen aus Roh-Audio vorhersagt, kann dies einige Anstrengungen und Experimente erfordern, um richtig zu werden, und es kann viel Rechenleistung erfordern, um sie zu erstellen Ein RNN, das leistungsfähig genug ist, um sehr lange Sequenzen bei normalen Audio-Abtastraten zu bewältigen. Das Erstellen von MFCC aus Roh-Audio mit dem Standardansatz, beginnend mit FFT, ist viel einfacher und garantiert genau.

Neil Slater
quelle
Oh .. Ich denke, ich habe vergessen zu erwähnen, dass die Ausgabe ein Wert und keine Klasse ist => Ich denke, RNN würde sie eher einer Klasse als dem Wert zuordnen?
Carlton Banks
1
@CarltonBanks: RNN-Ausgänge können mit denselben Zieltypen (unter Verwendung derselben Verlustfunktionen) wie andere NNs trainiert werden. Sie können also eine Klassifizierung oder Regression durchführen.
Neil Slater
Für Audio ist dies eine großartige Lösung. Für andere Personen müssen Sie darauf achten, dass RNNs eine Reihenfolge in der Reihenfolge annehmen, die es für einige Anwendungsfälle weniger nützlich macht
Jan van der Vegt
@JanvanderVegt: Ja, wenn Sie eine "Tasche" mit variablen Größen von Merkmalsvektoren haben, ist RNN möglicherweise weniger nützlich. Ich werde versuchen, das klarer zu machen
Neil Slater
1
@ echan00: Nein, die Eingabe kann mit einem einfachen CNN keine variable Länge haben. Sie müssen entweder auf eine feste Größe auffüllen oder zuschneiden. Es ist wahrscheinlich, dass das von Ihnen verknüpfte Papier in Zeitrahmen mit Fenstern und festgelegter Größe funktioniert. Dies ist möglicherweise auch eine Option für Ihr Projekt - dh Sie teilen Ihr Signal in (möglicherweise überlappende) Segmente auf und verarbeiten es separat. Dies funktioniert möglicherweise in der Reihenfolge einwandfrei -zu-Sequenz-Klassifizierung oder -Regression, aber weniger gut für Sequenz-zu-Einzelwert. Sie können auch verschiedene CNN / RNN-Hybride erhalten.
Neil Slater