wie man eine Belohnung beim Lernen zur Stärkung einsetzt


18

Während des Studiums von Reinforcement Learning bin ich auf viele Formen der Belohnungsfunktion gestoßen: , und sogar eine Belohnungsfunktion, die nur vom aktuellen Status abhängt. Allerdings wurde mir klar, dass es nicht sehr einfach ist, eine Belohnungsfunktion zu erstellen oder zu definieren.R ( s , a , s ' )R(s,a)R(s,a,s)

Hier sind meine Fragen:

  1. Gibt es Regeln, wie man Belohnungsfunktionen erstellt?
  2. Gibt es andere Formen der Belohnungsfunktion? Zum Beispiel eine Polynomform, die vielleicht vom Staat abhängt?

Antworten:


25

Belohnungsfunktionen beschreiben, wie sich der Agent "verhalten" soll. Mit anderen Worten, haben sie als „normativ“ Inhalt, festlegt , was Sie das Mittel erreichen möchten. Zum Beispiel, einige lohnende Zustand könnte den Geschmack von Lebensmitteln darstellen. Oder vielleicht, könnte den Akt der Verkostung des Essens darstellen. In dem Maße, in dem die Belohnungsfunktion die Motivation des Agenten bestimmt, müssen Sie es sich also ausdenken!s(s,a)

Es gibt keine absoluten Einschränkungen, aber wenn sich Ihre Belohnungsfunktion "besser verhält", lernt der Agent besser. Praktisch bedeutet dies, dass die Konvergenzgeschwindigkeit zunimmt und die lokalen Minima nicht eingehalten werden. Weitere Spezifikationen hängen jedoch stark von der Art des Verstärkungslernens ab, das Sie verwenden. Ist der Zustands- / Aktionsraum beispielsweise kontinuierlich oder diskret? Ist die Welt oder die Aktionsauswahl stochastisch? Wird die Belohnung kontinuierlich oder erst am Ende geerntet?

Eine Möglichkeit, das Problem anzuzeigen, besteht darin, dass die Belohnungsfunktion die Härte des Problems bestimmt. Beispielsweise könnten wir traditionell einen einzelnen zu belohnenden Zustand angeben: In diesem Fall ist das zu lösende Problem im Vergleich zu Sagen wir, , wobei es einen Belohnungsgradienten über Zuständen gibt. Bei schwierigen Problemen kann die Angabe weiterer Details, z. B. oder , einigen Algorithmen helfen, indem zusätzliche Hinweise bereitgestellt werden, möglicherweise jedoch auf Kosten einer weiteren Untersuchung. Möglicherweise müssen Sie Kosten als negative Ausdrücke in (z. B. Energiekosten ), um das Problem genau zu spezifizieren.

R(s1)=1
R(s2..n)=0
R(si)=1/i2R(s,a)R(s,a,s)R

Für den Fall eines kontinuierlichen Zustandsraums sollte die Belohnungsfunktion kontinuierlich und differenzierbar sein , wenn ein Agent leicht zu erlernen sein soll . So können Polynome für viele Algorithmen gut funktionieren. Versuchen Sie außerdem, lokalisierte Minima zu entfernen. Es gibt eine Reihe von Beispielen, wie man eine Belohnungsfunktion NICHT erstellt - wie die Rastrigin-Funktion . Allerdings sind einige RL-Algorithmen (z. B. Boltzmann-Maschinen ) für diese etwas robust.

Wenn Sie RL verwenden, um ein Problem in der Praxis zu lösen, werden Sie wahrscheinlich feststellen, dass das Finden der Belohnungsfunktion der schwierigste Teil des Problems ist, aber eng mit der Art und Weise verknüpft ist, wie Sie den Statusraum angeben . Beispielsweise führt bei einem zeitabhängigen Problem die Entfernung zum Ziel häufig zu einer schlechten Belohnungsfunktion (z. B. beim Problem mit dem Bergauto ). Solche Situationen können durch Verwendung höherdimensionaler Zustandsräume (versteckte Zustände oder Speicherspuren) oder durch hierarchisches RL gelöst werden.

Auf einer abstrakten Ebene sollte unbeaufsichtigtes Lernen verhindern, dass "richtige und falsche" Leistungen festgelegt werden. Aber wir können jetzt sehen, dass RL einfach die Verantwortung vom Lehrer / Kritiker auf die Belohnungsfunktion verlagert. Es gibt einen weniger kreisförmigen Weg, um das Problem zu lösen: die beste Belohnungsfunktion abzuleiten . Eine Methode heißt inverses RL oder "Lehrlingslernen" , wodurch eine Belohnungsfunktion generiert wird, die beobachtete Verhaltensweisen reproduziert. Die beste Belohnungsfunktion für die Reproduktion einer Reihe von Beobachtungen zu finden, kann auch durch MLE-, Bayes'sche oder informationstheoretische Methoden implementiert werden - wenn Sie nach "inversem Verstärkungslernen" googeln.


Hallo, warum ist das Problem mit dem Bergauto ein zeitabhängiges Problem?
GoingMyWay

Ich nehme an, das Berg Auto Problem ist „zeitabhängig“, dass das Problem auf das Netzwerk erfordert die entsprechende bereitzustellen Folge von Befehlen, oder eine Politik, die die Reihenfolge bestimmt. Die Idee ist, dass, wenn Sie nur "Position" als Ihren Zustand behandeln, das Problem schwer zu lösen ist - Sie müssen auch Ihre Geschwindigkeit (oder kinetische Energie usw.) berücksichtigen. Das ist wirklich alles, was ich implizieren wollte, wenn es darum geht, Ihren Zustandsraum in zeitabhängigen Problemen mit Bedacht zu wählen.
Sanjay Manohar

@SanjayManohar Ich glaube nicht, dass das Problem mit dem Bergauto "zeitabhängig" ist, es sei denn, Sie sprechen zeitabhängig von der Einführung eines endlichen Zeithorizonts. Position und Geschwindigkeit sind ausreichend.
User76284

Ich denke, diese Antwort vermischt Belohnungs- und Wertfunktionen. Zum Beispiel geht es darum, eine Belohnungsfunktion zu "finden", was Sie vielleicht beim inversen Verstärkungslernen tun , aber nicht in RL, das zur Kontrolle verwendet wird. Es wird auch davon gesprochen, dass die Belohnungsfunktion kontinuierlich und differenzierbar sein muss, und dies ist nicht nur nicht erforderlich, sondern in der Regel auch nicht der Fall. Es ist weitaus wahrscheinlicher, dass Sie einfache +1 für den Erfolg oder feste -1 pro Zeitschritt in der Literatur finden, als sorgfältig konstruierte differenzierbare Heuristiken.
Neil Slater

Danke @NeilSlater, Sie haben Recht, ich hätte wahrscheinlich sagen sollen, dass Sie eine Belohnungsfunktion "konstruieren" sollen, anstatt sie zu finden. In Bezug auf "Wertfunktion" reserviere ich diesen Begriff normalerweise für Zustands- oder Aktionswertzuordnungen, dh eine Funktion, mit der der Agent die zukünftige Belohnung abschätzt. "Wert" bezieht sich also auf "Belohnung", aber die Belohnung ist Teil des Problems und nicht der Algorithmus, der das Problem löst. Vielleicht lag der Schwerpunkt in der KI darauf, Ihren Lernalgorithmus zu demonstrieren, indem Sie binäre, distale und spärliche Belohnungen festlegen - aber wenn Sie die Belohnungsfunktion kontrollieren, ist das Leben einfacher, wenn es "nett" ist.
Sanjay Manohar

4

Das Entwerfen von Belohnungsfunktionen ist in der Tat ein schwieriges Problem. Im Allgemeinen lassen sich spärliche Belohnungsfunktionen leichter definieren (z. B. +1 bekommen, wenn Sie das Spiel gewinnen, sonst 0). Spärliche Belohnungen verlangsamen jedoch auch das Lernen, da der Agent viele Aktionen ausführen muss, bevor er eine Belohnung erhält. Dieses Problem wird auch als Kreditvergabeproblem bezeichnet .

Anstatt eine Tabellendarstellung für Belohnungen zu haben, können Sie auch kontinuierliche Funktionen verwenden (z. B. ein Polynom). Dies ist normalerweise der Fall, wenn der Zustands- und Aktionsraum nicht diskret, sondern stetig ist.

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.