Frage

Für eine Studie habe ich ein System (Blackbox), das eine Eingabe in Form eines Arrays mit 4 Werten erfordert (input_array) und abhängig von ihren Werten ein Ausgangs- (Antwort-) Signal erzeugt.

Block diagram

Der input_array enthält 4 reale Werte (Parameter P1-4) mit vorgegebenen und getrennten Bereichen.Die Qualität des Ausgangssignals wird durch Berechnung seines Signal-Rausch-Verhältnisses (SNR) gemessen.Jeder input_array variante kann einmal alle 3 Sekunden (nicht schneller als 3 s) auf das System angewendet werden.

Ich muss das Optimale finden input_array das erzeugt das größte SNR (vorzugsweise in der kürzesten Zeit).Das heißt, die Kombination der 4 realen Werte, die das SNR maximiert (eine optimale Lösung ist ausreichend;eine absolute Lösung ist willkommen, aber nicht unbedingt erforderlich).Wenn dies bei der Suche nach einer Lösung hilfreich ist, können die 4 Parameter diskretisiert werden, aber ihre Bereiche würden Hunderte von möglichen (diskreten) Werten enthalten.

Die Werte können als unabhängig betrachtet werden, für sie liegen außer ihren Reichweiten keine Vorkenntnisse vor, und ihr individueller Einfluss auf das SNR ist unbekannt.Das SNR ist ein reeller Wert, der durch Rauschen beeinflusst wird (also für dasselbe input_array nacheinander angewendet, kann es unterschiedliche (aber nahe) Werte haben).

Welche Lösung (en) können auf dieses Problem angewendet werden?

  1. Die einfachste Lösung, die mir in den Sinn kommt, ist die Durchführung einer umfassende Suche in der Parameterdomäne, aber es ist nicht anwendbar, weil die benötigte Zeit zu lang sein wird.

  2. Anfangs überlegte ich, mich zu bewerben verstärkendes Lernen algorithmen für kontinuierliche Aktionsräume, indem sie jeweils berücksichtigen parameter eine separate Aktion und Rückgabe einer positiven / negativen Belohnung wenn das SNR zunimmt/abnimmt (z. B. +/-1).Ich denke jedoch, dass sie würde zu viel Zeit in Anspruch nehmen;trotzdem kann ich das Lernen stoppen prozess zu jeder Zeit denke ich, dass die input_array erzeugt eine akzeptables SNR.

  3. Nach weiterem Nachdenken schien dieses Problem ein Suchproblem zu sein, also dachte ich das (heuristische) Suchalgorithmen kann sein geeignete.

Hat jemand eine Idee, was die am besten geeignete Lösung für dieses Problem wäre?

War es hilfreich?

Lösung

Es scheint, dass Sie eine Funktion haben $f:\mathbb {R}^4 \bis \mathbb{R}$ und du willst finden $x$ das maximiert $f(x)$, aber Sie können nicht berechnen $f$ direkt;sie können nur eine verrauschte Schätzung seines Wertes erhalten.

Vieler Optimierungsmethoden kann an diese Einstellung angepasst werden.Eine einfache Sache, die Sie ausprobieren könnten, wäre eine iterative Methode wie steigung mit Gefälle oder Newtons Methode, aber mit mehr Iterationen, um das Rauschen zu berücksichtigen;die Idee ist, dass das Rauschen bei genügend Iterationen gemittelt wird.

Zum Beispiel erfordert der Gradientenaufstieg, dass Sie in der Lage sind, den Gradienten zu berechnen $ abla f (x)$ für jeden Punkt Ihrer Wahl.In Ihrem Fall kann dies durch Schätzung erfolgen

$$ abla f(x) = ((f(x+ e_1)-f(x-e_1))/2, \Punkte, (f(x+e_4)-f(x-e_4))/2),$$

wo $e_1=(1,0,0,0)$, $e_2=(0,1,0,0)$, und so weiter.Jetzt die Fähigkeit gegeben zu berechnen $f$ an einem Punkt Ihrer Wahl, per Computer $f$ an 8 Eingängen können Sie abschätzen $ abla f(x)$ und dann machen Sie einen einzigen Schritt des Steigungsaufstiegs;und wiederhole bis zur Konvergenz.

Ein ausgefeilterer Ansatz wäre der Versuch, die Bayes'sche Optimierung zu verwenden, z Google Wesir.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit cs.stackexchange
scroll top