Verstärkungslernen anhand historischer Daten

8

Ich habe daran gearbeitet, die optimale Kommunikationsrichtlinie für Kunden zu lernen (welche Benachrichtigungen gesendet werden sollen, wie viele gesendet werden sollen und wann gesendet werden soll). Ich habe historische Daten früherer Benachrichtigungen (mit Zeitstempeln) und deren Leistungen gesendet. Ich habe versucht, RL auf dieses Problem anzuwenden, um die optimale Richtlinie zu erlernen. Eine wichtige Einschränkung hierbei ist jedoch, dass ich nicht den Luxus habe, die Richtlinien im laufenden Betrieb (online) zu lernen, da ich derzeit die Aktionen nicht kontrolliere (welche Benachrichtigungen an welche Kunden gesendet werden können). Ich habe zwei Fragen:

  1. Ist RL unter solchen Bedingungen der richtige Rahmen?
  2. Wie können wir in solchen Situationen offline die optimale Richtlinie lernen und wie bewerten wir diese?
Ashay Tamhane
quelle

Antworten:

6
  1. Ist RL unter solchen Bedingungen der richtige Rahmen?

Es sieht möglich aus , aber vielleicht würden einige kleine Details, die Sie nicht angegeben haben, andere Ansätze praktikabler machen. Wenn beispielsweise die Benachrichtigungsereignisse als mehr oder weniger unabhängig behandelt werden können, ist ein überwachter Lernansatz möglicherweise besser oder zumindest pragmatischer.

In der Praxis ist nicht 100% klar, wie Ihr Status, Ihre Zeitschritte und Ihre Aktionsoptionen aussehen werden. Diese müssen genau definiert sein, damit RL-Ansätze funktionieren. Darüber hinaus möchten Sie in der Lage sein, Zustände zu konstruieren, die die Markov-Eigenschaft haben (oder fast haben) - im Wesentlichen, dass alles, was über die erwartete Belohnung und den nächsten Zustand bekannt und nicht zufällig ist, vom Staat abgedeckt wird.

  1. Wie können wir in solchen Situationen offline die optimale Richtlinie lernen?

Sie möchten sowohl einen Offline-Lerner (Daten sind historisch, nicht "live") als auch einen Off-Policy-Lerner (Daten werden von einer anderen Richtlinie als der zu bewertenden generiert). Außerdem vermute ich, dass Sie die Verhaltensrichtlinien, die Ihre Daten generiert haben, nicht kennen, sodass Sie keine Wichtigkeitsstichproben verwenden können .

λ

Es ist nicht garantiert, dass dies funktioniert, da das Lernen außerhalb der Richtlinien weniger stabil ist als das Lernen innerhalb der Richtlinien und möglicherweise mehrere Versuche erfordert, Hyperparameter zu erhalten, die funktionieren. Sie benötigen eine gute Anzahl von Beispielen, die optimale oder nahezu optimale Auswahlmöglichkeiten für jeden Schritt abdecken (nicht unbedingt in denselben Episoden), da Q-Learning auf Bootstrapping beruht - im Wesentlichen das Kopieren von Wertschätzungen von Aktionsoptionen rückwärts in frühere Zeitschritte, um Einfluss zu nehmen In diesem früheren Abschnitt zieht es der Agent vor, Maßnahmen zu ergreifen, auf die er zusteuert.

Wenn Ihr Status / Aktionsbereich klein genug ist (wenn Sie die Status und Aktionen vollständig auflisten), bevorzugen Sie möglicherweise die tabellarische Form des Q-Learning, da dies einige Konvergenzgarantien bietet. Bei den meisten praktischen Problemen ist dies jedoch nicht wirklich möglich. Daher sollten Sie Optionen für die Verwendung von Approximationsfunktionen prüfen.

... und wie bewerten wir das gleiche?

Wenn Sie aus Ihrem Q-Learning (durch Inspektion) realistisch aussehende konvergierte Aktionswerte erhalten können, gibt es nur zwei vernünftige Möglichkeiten, die Leistung zu bewerten:

  • Indem Sie den Agenten in einer Simulation ausführen (und dort möglicherweise weiter verfeinern), erwarte ich nicht, dass dies für Ihr Szenario machbar ist, da Ihre Umgebung Entscheidungen Ihrer Kunden enthält. Dies ist jedoch ein gutes Sprungbrett für einige Szenarien, beispielsweise wenn die Umgebung von der grundlegenden realen Physik dominiert wird.

  • Durch Ausführen des Agenten für real, möglicherweise für einen Teil der Arbeitslast, und Vergleichen der tatsächlichen Belohnungen mit den vorhergesagten über genügend Zeit, um statistische Sicherheit herzustellen.

Sie können den Agenten auch zusammen mit einem vorhandenen Bediener trocken laufen lassen und Feedback erhalten, ob seine Vorschläge für Maßnahmen (und Vorhersagen der Belohnung) realistisch erscheinen. Dies ist ein subjektives Feedback, und es ist schwierig, die Leistung numerisch zu bewerten, wenn die Aktionen verwendet werden können oder nicht. Es würde Ihnen jedoch ein wenig QS geben.

Neil Slater
quelle
1

Die kurze Antwort lautet: Nein.

Jetzt haben Sie bereits die historische Aktion und Leistung. Dies ist ein klassisches überwachtes Lernproblem, das Ihr Tupel (Kundenprofil, Aktion) einem Leistungsfaktor zuordnet.

Die folgenden Gründe sind, warum das Lernen zur Stärkung eine schlechte Wahl für Ihre Aufgabe ist:

  1. Reinforcement Learning macht die Verwendung von Daten sehr ineffizient, daher erfordert es normalerweise eine unendliche Menge an gelieferten Daten, entweder vom Simulator oder aus der realen Erfahrung. Ich würde denken, dass keiner dieser Fälle auf Sie zutrifft, da Sie nicht möchten, dass Ihr ungeschultes Modell zu Beginn der Schulung zufällige Benachrichtigungen an Ihre Kunden sendet, und Ihr Problem als gelöst betrachtet wird, wenn Sie bereits einen Simulator haben.

  2. Verstärkungslernen wird normalerweise verwendet, um lange Abfolgen von Aktionen zu bewältigen, und die frühe Aktion kann einen drastischen Einfluss auf das Endergebnis haben, beispielsweise im Schach. In diesem Fall gibt es keine eindeutige Aufteilung der endgültigen Belohnung, die am Ende jedes Schritts Ihrer Aktionen erhalten wurde. Daher wird die Bellman-Gleichung explizit oder implizit beim Verstärkungslernen verwendet, um dieses Problem der Belohnungszuweisung zu lösen. Auf der anderen Seite scheint Ihr Problem nicht so sequentiell zu sein (es sei denn, ich habe es falsch verstanden oder Ihr System sendet eine E-Mail mit einem Kunden hin und her), und jede Stichprobe aus Ihren Daten ist eine Einzelschritt-IID.

DiveIntoML
quelle
1

Diese Papiere bieten eine Methode namens Einbau Q Iteration für die Batch - Verstärkung Lernen (dh eine Politik aus früheren Erfahrungen zu lernen) https://pdfs.semanticscholar.org/2820/01869bd502c7917db8b32b75593addfbbc68.pdf https://pdfs.semanticscholar.org/03fd/37aba0c900e232550cf8cc7f66e9465fae94 .pdf

Sie benötigen eine klar definierte Belohnungsfunktion, Zustände und Aktionen.

Zum Testen verwenden Sie am besten eine kleine Benutzerkohorte und einen A / B-Test in Bezug auf Ihre Metriken.

DaT
quelle