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 ( sich) = 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.