Black-Box-Signalvorhersage


7

Ich habe eine Stateful Black Box mit vier reellen Eingaben und einer reellen Ausgabe. Mein Problem ist es, die Ausgabe zu jedem Zeitpunkt vorherzusagen, wenn man die Reihenfolge der Eingaben bis zu diesem Zeitpunkt berücksichtigt. Während einer Lernphase kann ich die Eingaben variieren, wie ich möchte, und die Ausgabe beobachten. Es gibt natürlich ein wenig Lärm und die Black Box scheint nicht vollständig deterministisch zu sein.

Insbesondere modelliere ich eine Festplatte und möchte die Zugriffszeit der letzten Anforderung bei allen vorherigen Anforderungen vorhersagen. Ich möchte jedoch einen Black-Box-Ansatz, da explizite Modelle komplex sind und dies auch für andere ähnliche Geräte wie SSDs funktionieren soll.

Einige Leute haben vorgeschlagen, dass die Signalverarbeitung geeignet sein könnte, um die Sequenzen von Eingabe- und Ausgabewerten zu analysieren.

Gibt es Ideen aus der Signalverarbeitung, die mir helfen könnten, die Ausgabe vorherzusagen oder die Eingabe zu charakterisieren?

Antworten:


2

Im Allgemeinen sind für nichtlineare Systeme keine Werkzeuge verfügbar, deren Funktion garantiert ist. Sie müssen etwas über die Art der Box wissen . Wenn Sie es mit einem System mit unbekannten Parametern modellieren können, kann Ihnen das "Lernen" durch Beobachten von Eingabe-Ausgabe-Beziehungen helfen, diese Parameter abzuschätzen, aber ich bezweifle, dass Sie das Systemmodell blind "lernen" können, insbesondere wenn es Speicher / Zustände hat. Eine mehr oder weniger generische Methode zur Schätzung nichtlinearer Systeme bis zu einem Polynomgrad ist jedoch die Verwendung von Volterra-Kerneln mit einer Art Gradientenabstiegsmethode zur rekursiven Fehlerminimierung . Methoden wie LMS und RLS sind weit verbreitet.

Volterra-Kernel helfen Ihnen dabei, ein System des Formulars zu schätzen

y(t)=k0+n=1kn(t1,t2,,tn)x(tt1)x(tt2)x(ttn)dt1dt2dtn

Eine Möglichkeit, das folgende System zu betrachten, besteht darin, seine Ähnlichkeit mit der Faltung durch Hinzufügen nichtlinearer Terme in . Beachten Sie jedoch, dass, wenn die Nichtlinearität Ihres Systems nicht mit einem Polynom (Exponential, Logarithmus und vielen anderen Funktionen) modelliert werden kann, dies eine unendliche Komplexität erfordert, um Ihr System korrekt abzuschätzen.x

Es sind nicht viele Artikel zu diesem Thema kostenlos online verfügbar, aber Sie können sich diesen und diesen ansehen , um eine Vorstellung davon zu bekommen, worum es geht.


Das ist sicherlich interessant, aber ich habe zu jedem Zeitschritt einen Eingabevektor, und dies scheint nur mit Skalaren zu funktionieren.
Adam Crume

Ich bin sicher, Sie können eine Zustandsraumdarstellung der obigen Gleichung finden. Das wird ziemlich einfach mit mehreren Eingaben umgehen.
Phonon

Nachdem ich es mir eine Weile angesehen habe, denke ich, dass ich etwas Ähnliches getan habe. Ich baute ein Polynom aus x1 (t), x2 (t), ..., x1 (t-1), x2 (t-1), ... und versuchte, die Koeffizienten mithilfe des Gradientenabfalls zu lernen. Das Problem ist, dass nur ein Polynom der Ordnung vier, das zwei Zeitschritte zurückblickt, ungefähr tausend Parameter erfordert.
Adam Crume

@ AdamCrume In der Tat. Diese Probleme sind sehr rechenintensiv und viele Artikel, die zu diesem Thema veröffentlicht wurden, befassen sich eher mit der Optimierung von Algorithmen als mit neuen Wegen, um die Probleme anzugehen.
Phonon

1

Wenn Ihre Box (meistens) linear ist, ist das ein sehr einfaches Problem, wenn es hauptsächlich nicht linear ist, kann es beliebig kompliziert werden. Wenn wir Linearität annehmen, gilt einfache Überlagerung. Sie können die Übertragungsfunktion von jedem Eingang zum Ausgang messen (während die anderen Eingänge Null sind) und dann den Ausgang als Summe der einzelnen Eingangsantworten berechnen. Im Frequenzbereich würden wir schreiben

Y(w) = X1(w)*H1(w) + X2(w)*H2(w) + X3(w)*H3(w) + X4(w)*H4(w); 

wobei Y (w) das Ausgangsspektrum ist, Xn das Eingangsspektrum für den Eingang "n" und Hn die Übertragungsfunktion vom Eingang "n" zum Ausgang ist. Im Zeitbereich wäre es

y(t) = x1(t)**h1(t) +  ... + x4(t)**h4(t);

Dabei ist '**' der Faltungsoperator, y (t) Ihr Ausgangssignal, xn (t) die Eingangssignale und hn (t) die Impulsantworten vom Eingang n zum Ausgang. Die beiden Gleichungen sind im Grunde die Fourier-Transformationen voneinander.


Leider ist es nicht linear.
Adam Crume
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.