Reinforcement Learning (RL) umfasst eine Klasse von Techniken des maschinellen Lernens (ML), die verwendet werden können, um Probleme der sequentiellen Entscheidungsfindung zu lösen. RL-Techniken haben weit verbreitete Anwendungen in zahlreichen Bereichen gefunden, darunter Finanzdienstleistungen, autonome Navigation, industrielle Steuerung und E-Commerce. Das Ziel eines RL-Problems besteht darin, einen Agenten zu trainieren, der aufgrund einer Beobachtung aus seiner Umgebung die optimale Aktion auswählt, die die kumulative Belohnung maximiert. Um ein Geschäftsproblem mit RL zu lösen, müssen die Umgebung des Agenten, der Aktionsraum, die Beobachtungsstruktur und die richtige Belohnungsfunktion für das angestrebte Geschäftsergebnis festgelegt werden. Bei richtlinienbasierten RL-Methoden ist das Ergebnis des Modelltrainings häufig eine Richtlinie, die eine Wahrscheinlichkeitsverteilung über die Aktionen bei einer Beobachtung definiert. Die optimale Strategie maximiert die vom Agenten erzielten kumulativen Renditen.
Bei eingeschränkten Entscheidungsproblemen hat der Agent die Aufgabe, die optimalen Aktionen unter Einschränkungen auszuwählen. Es gibt eine bestimmte Klasse solcher Probleme, bei denen es dem Agenten je nach Zustand möglicherweise nur erlaubt ist, aus einer Teilmenge aller Aktionen auszuwählen. Die übrigen Klagen sind unzulässig.
Stellen Sie sich zum Beispiel ein autonomes Auto vor, das 10 mögliche Geschwindigkeitsstufen hat. Dieses Auto darf nur aus einer Teilmenge seiner Geschwindigkeitsstufen wählen, wenn es eine Wohngegend durchquert. Hier wird die Begrenzung der Geschwindigkeitsstufen durch den Standort des Autos bestimmt. Solche parametrisierten Einschränkungen für die Aktionen sind bei vielen realen Problemen üblich. Das Lösen solcher Probleme mit RL erfordert die Einbeziehung der Einschränkungen in den Trainingsprozess. Aktionsmaskierung ist ein Ansatz zur stichprobeneffizienten Lösung von RL-Problemen, die Unzulässigkeitsbeschränkungen beinhalten. Wie der Name schon sagt, geht es darum, alle unzulässigen Aktionen zu maskieren, indem ihre Stichprobenwahrscheinlichkeit auf Null gesetzt wird. Die folgende Abbildung zeigt den RL-Zyklus mit Aktionsmaskierung. Es besteht aus einem Agenten, den Beschränkungen, die die Aktionsmasken, die Masken, Zustandsübergänge und die beobachteten Belohnungen bestimmen.
In diesem Beitrag beschreiben wir, wie Sie die Aktionsmaskierung mit implementieren Amazon SageMaker RL Verwenden von parametrischen Aktionsräumen in Ray RLlib. Wir beschreiben ein Beispielproblem, das diskrete mehrdimensionale Aktionsräume und mehrere Einschränkungen beinhaltet. Um auf das vollständige Notizbuch für diesen Beitrag zuzugreifen, siehe die Beispiel für ein SageMaker-Notebook auf GitHub.
Anwendungsfallübersicht
Wir betrachten ein beispielhaftes Portfoliooptimierungsproblem, bei dem ein Investor mehrere Arten von Vermögenswerten handelt, um seinen Gesamtportfoliowert zu maximieren. Das Portfolio besteht aus drei verschiedenen Arten von Vermögenswerten und einem Barguthaben, das sich einfach auf Geld bezieht, das Sie auf Ihrem Bankkonto haben. Während jeder Investitionsperiode muss der Agent die Menge jedes Vermögenstyps auswählen, den er kauft oder verkauft. Der Agent verwendet das verfügbare Barguthaben, um alle Asset-Käufe zu finanzieren. Es gibt auch Transaktionskosten, die mit jeder Kauf-/Verkaufsaktion von Vermögenswerten verbunden sind. Es wird davon ausgegangen, dass der Marktpreis jedes Vermögenswerts im Laufe der Zeit variiert. Die Preise werden nach dem Zufallsprinzip abgetastet, aber modelliert, um ein unterschiedliches Verhalten mit unterschiedlichen Volatilitätsniveaus zu zeigen. Die Preisspannen für die drei Anlageklassen sind in der folgenden Abbildung dargestellt.
Der Satz zulässiger Aktionen für den Agenten wird durch Parameter bestimmt, wie z. B. den aktuellen Gesamtwert des Portfolios, den aktuellen Barbestand, die Anzahl der jeweils gehaltenen Arten von Vermögenswerten und deren aktuellen Marktwert. Für dieses Problem erzwingen wir die folgenden Einschränkungen für mögliche Aktionen:
- C1 – Der Agent kann nicht mehr Einheiten eines Vermögenstyps verkaufen, als er derzeit besitzt. Wenn der Agent beispielsweise zum Zeitpunkt k 100 Einheiten des Vermögenswerts 3 in seinem Portfolio hat, kann er zu diesem Zeitpunkt keine 120 Einheiten dieses Vermögenswerts verkaufen.
- C2 – Vermögenswert 3 wird von Anlegern als sehr volatil angesehen. Der Agent darf Vermögenswert 3 nicht kaufen, wenn der Gesamtwert seiner Bestände an Vermögenswert 3 über einem Drittel seines gesamten Portfoliowerts liegt.
- C3 – Verbraucher des RL-Modells haben eine moderate Risikopräferenz und betrachten Asset 2 als konservativen Kauf. Folglich ist es dem Agenten nicht gestattet, Anlage 2 zu kaufen, wenn der Gesamtwert der Bestände an Anlage 2 zwei Drittel des gesamten Portfoliowerts überschreitet.
- C4 – Der Agent kann keine Vermögenswerte kaufen, wenn sein aktuelles Barguthaben weniger als 1 USD beträgt.
Richten Sie die Umgebung ein
Stellen Sie zunächst eine SageMaker-Notebookinstanz über bereit Amazon SageMaker-Studio. Weitere Informationen finden Sie unter Verwenden Sie Amazon SageMaker Notebook-Instances.
Als nächstes implementieren wir das Portfolio-Trading-Problem in einem Custom Öffnen Sie das AI-Fitnessstudio Umgebung und trainieren Sie einen RL-Agenten mit SageMaker RL. Eine Gym-Umgebung bietet eine Schnittstelle für den RL-Agenten, um mit seiner Umgebung zu interagieren und Belohnungen und Beobachtungen zu generieren. Die Umgebung für den Portfoliohandel befindet sich im trading.py
Modul. Wir benutzen das __init__
-Methode zum Definieren und Initialisieren einiger Umgebungsparameter. Dazu gehören Transaktionskosten im Zusammenhang mit Kauf-/Verkaufsaktionen von Vermögenswerten, Mittelwert der Preise von Vermögenswerten, Preisabweichungen und mehr. Wir definieren auch die Beobachtungs- und Aktionsräume im __init__
Methode. Siehe folgenden Code:
Da der Agent zu jedem beliebigen Zeitpunkt mit drei Vermögenswerten handelt, werden die vom Agenten durchgeführten Aktionen unter Verwendung eines dreidimensionalen Aktionsvektors dargestellt. Die drei diskreten Aktionen, die den Aktionsvektor bilden, stellen die Trades in jeder Anlageklasse dar und können jeweils 11 mögliche Werte annehmen. Die 11 diskreten Werte codieren verschiedene Verkaufs-, Kauf- und Halteaktionen, wie in der folgenden Abbildung dargestellt. Wählen Sie zum Beispiel a1=3 bedeutet, dass der Agent 20 Einheiten des Vermögenstyps 1 verkauft. Vermögenswerte werden in Vielfachen von 10 gekauft und verkauft.
Der Beobachtungsraum hat eine Wörterbuchstruktur mit zwei Elementen. Diese stellen den aktuellen Handelsstatus und die aktuellen Aktionsmaskenwerte dar. Der Handelsstatus ist ein 7 × 1-Vektor, der aus den Mengen aller Vermögenswerte besteht, die derzeit vom Agenten gehalten werden, dem aktuellen Kassenbestand und dem aktuellen Marktwert jedes der drei Vermögenswerte. Die Aktionsmaske ist eine 3 × 11-Matrix mit Maskenwerten, die jeder möglichen Aktion entsprechen. Die Umgebung berechnet die Maskenwerte zu jeder Zeit mit einem update_mask()
Methode. Aktionen, die eine der Einschränkungen C1:C4 verletzen, wird eine Nullmaske zugewiesen. Der Wert von mask wird für zulässige Aktionen auf 1 gesetzt. Siehe folgenden Code:
Zu Beginn jeder Folge a reset()
-Methode wird aufgerufen, um den Handelsstatus, Beobachtungen und andere Parameter neu zu initialisieren. Der Agent beginnt jede Trainingsepisode mit einem Barguthaben von 1,000 USD und null Beständen an Vermögenswerten. Jede Episode besteht aus 20 Investitionsperioden.
Zu Beginn jeder Anlageperiode testet der Agent eine Aktion basierend auf den neuesten Beobachtungen, die er aufgezeichnet hat, und aktualisiert sein Portfolio. Dies wird mit a modelliert step()
Methode. Nachdem das Portfolio aktualisiert wurde, berechnen wir den Status neu. Die Aktionsmaske wird auch durch den Aufruf der aktualisiert update_mask()
Methode.
Die Belohnungsfunktion wird als der endgültige Gesamtportfoliowert definiert und am Ende jeder Episode berechnet, was nach 20 Anlageperioden geschieht.
Maskierungsmodell
Bei jedem Zeitschritt gibt die Umgebung den Wörterbuchstatus zurück und das ML-Modell, das die Richtlinie darstellt, probiert eine Aktion basierend auf diesem Status aus. Ein parametrisches Aktionsmodell erleichtert das Abtasten nur der unmaskierten (Maske ≠ 0) Aktionen. Hier beschreiben wir das parametrische Aktionsmodell, das die Aktionsmaskierung ermöglicht:
Aktionen werden vom Modell über eine Softmax-Funktion abgetastet, wobei die Logits verwendet werden, die von einem Aktions-Einbettungsmodell angegeben werden. Dieses Modell ist in der definiert __init__
Methode. Das Maskierungsverhalten selbst ist in implementiert forward()
Methode. Hier trennen wir die Aktionsmasken und den Handelsstatus vom Wörterbuchstatus, der aus der Umgebung abgerufen wird. Die Aktionseinbettungen werden dann erhalten, indem der Handelszustand an das Aktionseinbettungsnetzwerk weitergegeben wird. Als nächstes ändern wir den Wert der Einbettungen jeder Aktion durch Hinzufügen logit_mod
zu den Logis. Beachte das logit_mod
ist eine Funktion des Logarithmus der Aktionsmaske. Für Aktionen mit Maske = 1 ist der Logarithmus von Maske Null, was ihre Einbettungen ungestört lässt. Andererseits, wenn mask=0, der Logarithmus von mask → −∞. weil Softmax(x)
→0 als x→ −∞, stellt dies sicher, dass maskierte Aktionen nicht vom Agenten abgetastet werden.
Lassen Sie uns testen, ob die Maske wie erwartet funktioniert. Wir initiieren ein Ray-Trainer-Objekt und maskieren einige der Aktionen und prüfen, ob der Trainer nur die nicht maskierten Aktionen abtastet:
Die Ausgabe im folgenden Screenshot zeigt das anfängliche Aktionsmasken-Array.
Jetzt modifizieren wir die Maskenvektoren so, dass für a1, alle Auswahlmöglichkeiten außer Aktion 8 (30 Einheiten von Anlage 1 kaufen); Für ein2 alles außer Aktion 5 (Anlage 2 bei aktuellen Nummern halten); und für ein3, alles außer den Aktionen 1 und 2 (verkaufe 40 oder 30 Einheiten von Anlage 3) ist maskiert:
Nachdem wir das Aktionsmasken-Array geändert haben, versuchen wir, eine neue Aktion abzutasten.
Der Agent tastet nur die Aktionen ab, die nicht maskiert sind. Dadurch wird überprüft, ob die Aktionsmaskierung wie erwartet funktioniert.
Die Ergebnisse
Nachdem die Umgebung und das parametrische Aktionsmodell definiert sind, schulen wir einen Agenten, um das Portfoliooptimierungsproblem mit SageMaker RL zu lösen. Wir schulen einen RL-Agenten, um die optimale Richtlinie zu lernen, um die Belohnung unter den Einschränkungen C1: C4 zu maximieren. Wir verwenden den Algorithmus zur proximalen Richtlinienoptimierung (PPO) in SageMaker RL, um den RL-Agenten für 500,000 Episoden zu trainieren. Die folgende Trainingskonfiguration zeigt, wie wir den zu verwendenden Agenten angeben trading_mask
als ein custom_model
verwendet werden:
Der Agent beginnt mit einem anfänglichen Barguthaben von 1,000 USD. Die durchschnittliche Belohnung pro Episode wird als Funktion der Trainingszeit dargestellt, wie in der folgenden Tabelle dargestellt. Denken Sie daran, dass wir den endgültigen Gesamtwert des Portfolios als Belohnung verwenden. Am Ende von 20 Investitionsperioden stellen wir fest, dass der Mittelwert des Portfolios des Agenten über 3,000 USD liegt.
Aufräumen
Wir haben keine Infrastruktur bereitgestellt, die über die Verwendung einer SageMaker-Notebook-Instanz hinausgeht. Wenn Sie eine SageMaker-Notebookinstanz über Studio verwenden, können Sie sie herunterfahren, indem Sie den Anweisungen in folgen Herunterfahren eines geöffneten Notebooks.
Zusammenfassung
In diesem Beitrag haben wir besprochen, wie Sie Aktionsmaskierung implementieren können, um Einschränkungen im RL-Modelltraining durchzusetzen. Indem wir unzulässige Aktionen maskieren, ermöglichen wir es dem Agenten, nur gültige Aktionen abzutasten und die optimale Richtlinie auf eine abtasteffiziente Weise zu lernen. Wir haben ein Portfoliooptimierungsproblem eingeführt, bei dem der Agent die Aufgabe hat, seinen Portfoliowert zu maximieren, indem er drei Arten von Vermögenswerten unter mehreren Einschränkungen handelt. Wir haben gezeigt, wie Sie mit Ray RLlib eine mehrdimensionale Aktionsmaskierung für dieses Problem implementieren. Wir haben einen RL-Agenten für die Lösung des eingeschränkten Portfoliooptimierungsproblems mit SageMaker RL geschult.
Nachdem Sie nun wissen, wie Sie Aktionsmaskierung mit SageMaker RL und Ray RLlib zur Portfoliooptimierung durchführen, können Sie es bei anderen RL-Problemen ausprobieren, die unzulässige Aktionen beinhalten. Sie können den in diesem Beitrag entwickelten Aktionsmaskierungscode auch für einfachere Probleme mit eindimensionalem Aktionsraum anpassen. Wir empfehlen Ihnen, den hier entwickelten Ansatz auf Ihre RL-Anwendungsfälle anzuwenden, und lassen Sie uns wissen, wenn Sie Fragen oder Feedback haben.
Zusätzliche Referenzen
Weitere Informationen und zugehörige Inhalte finden Sie in den folgenden Ressourcen:
Über die Autoren
Dilshad Raihan Akkam Veettil ist Data Scientist bei AWS Professional Services, wo er mit Kunden aus verschiedenen Branchen zusammenarbeitet, um ihre geschäftlichen Herausforderungen durch den Einsatz von maschinellem Lernen und Cloud Computing zu lösen. Er promovierte in Luft- und Raumfahrttechnik an der Texas A&M University, College Station. In seiner Freizeit schaut er gerne Fußball und liest.
Paul Budnarain ist ein angewandter Wissenschaftler in der Amazon Inventory Forecasting Systems (IFS)-Gruppe und lebt in Los Angeles, Kalifornien.
- SEO-gestützte Content- und PR-Distribution. Holen Sie sich noch heute Verstärkung.
- Platoblockkette. Web3-Metaverse-Intelligenz. Wissen verstärkt. Hier zugreifen.
- Quelle: https://aws.amazon.com/blogs/machine-learning/portfolio-optimization-through-multidimensional-action-optimization-using-amazon-sagemaker-rl/
- :Ist
- $3
- $UP
- 000
- 1
- 10
- 100
- 11
- 500K
- 7
- 8
- a
- oben
- Zugang
- Konto
- über
- Action
- Aktionen
- automatisch
- Zusätzliche
- Zusätzliche Angaben
- Luft- und Raumfahrt
- Nach der
- Makler
- Agenten
- AI
- Algorithmus
- Alle
- Amazon
- Amazon Sage Maker
- und
- Angeles
- Anwendungen
- angewandt
- Bewerbung
- Ansatz
- SIND
- Feld
- AS
- Vermögenswert
- Details
- zugewiesen
- damit verbundenen
- angenommen
- At
- Autonom
- verfügbar
- AWS
- Professionelle AWS-Services
- Balance
- Bank
- Bankkonto
- basierend
- BE
- weil
- Anfang
- Beyond
- gekauft
- Geschäft
- Kaufe
- by
- berechnet
- berechnet
- Kalifornien
- namens
- Aufruf
- CAN
- Auto
- Häuser
- Fälle
- Bargeld
- Herausforderungen
- Chart
- Entscheidungen
- Auswählen
- Auswahl
- Klasse
- Unterricht
- Cloud
- Cloud Computing
- Code
- Hochschule
- gemeinsam
- abschließen
- Computing
- Zustand
- Konfiguration
- konservativ
- Geht davon
- betrachtet
- Bestehend
- Einschränkungen
- KUNDEN
- Inhalt
- fortsetzen
- Smartgeräte App
- Dazugehörigen
- Kosten
- Kosten
- Cross
- Strom
- Zur Zeit
- Original
- Kunden
- Zyklus
- technische Daten
- Datenwissenschaftler
- Decision Making
- definiert
- Definiert
- Synergie
- Abhängig
- beschreiben
- Bestimmen
- entschlossen
- entwickelt
- anders
- diskutiert
- deutlich
- Verteilung
- Domains
- nach unten
- im
- e-commerce
- jeder
- effizient
- Elemente
- ermöglichen
- ermöglicht
- umfasst
- ermutigen
- Entwicklung
- Arbeitsumfeld
- Jedes
- alles
- Beispiel
- Außer
- existiert
- erwartet
- ERKUNDEN
- erleichtert
- Feedback
- Abbildung
- Finale
- Finanzen
- Revolution
- Finanzdienstleistungen
- Folgende
- Fußball
- Aussichten für
- gefunden
- für
- Funktion
- erzeugen
- GitHub
- gegeben
- Gruppe an
- Turnhalle
- Pflege
- das passiert
- Haben
- Statt
- hier
- GUTE
- hoch
- Holdings
- hält
- Ultraschall
- Hilfe
- HTML
- HTTPS
- implementieren
- umgesetzt
- importieren
- in
- Dazu gehören
- Einschließlich
- einarbeiten
- Index
- industriell
- Branchen
- Information
- Infrastruktur
- Anfangs-
- initiieren
- Instanz
- Anleitung
- interagieren
- Schnittstelle
- eingeführt
- Inventar
- Investition
- Investor
- Investoren
- beteiligen
- IT
- SEINE
- selbst
- jpg
- Wissen
- neueste
- LERNEN
- lernen
- Länge
- Cholesterinspiegel
- located
- Standorte
- die
- Los Angeles
- Sneaker
- Maschine
- Maschinelles Lernen
- um
- MACHT
- Weise
- viele
- Markt
- Markt Preise
- Maske"
- Masken
- Mathe
- Matrix
- max
- Maximieren
- maximiert
- maximal
- Methode
- Methoden
- Minimum
- ML
- Modell
- geändert
- ändern
- Modul
- Geld
- Überwachen
- mehr
- mehrere
- Name
- Menü
- Netzwerk
- Neu
- weiter
- Notizbuch
- Anzahl
- Zahlen
- und viele
- numpig
- Objekt
- Ziel
- beobachten
- erhalten
- of
- on
- XNUMXh geöffnet
- optimal
- Optimierung
- Andere
- Ergebnis
- Möglichkeiten für das Ausgangssignal:
- besitzen
- Besitz
- Parameter
- Bestehen
- Ausführen
- Zeit
- Zeiträume
- Plato
- Datenintelligenz von Plato
- PlatoData
- Datenschutzrichtlinien
- Mappe
- möglich
- Post
- Preis
- Preise
- Aufgabenstellung:
- Probleme
- Prozessdefinierung
- Professionell
- bietet
- Bereitstellung
- Einkäufe
- Menge
- Fragen
- zufällig
- RAY
- Lesebrillen
- realen Welt
- aufgezeichnet
- bezieht sich
- Registratur
- bezogene
- verbleibenden
- vertreten
- vertreten
- Darstellen
- erfordert
- Wohn
- Downloads
- Folge
- Rückkehr
- Rückgabe
- Belohnen
- Belohnung
- Risiko
- Führen Sie
- sagemaker
- Salz
- Wissenschaftler
- SELF
- verkaufen
- in XNUMX Minuten
- getrennte
- Lösungen
- kompensieren
- Einstellung
- erklären
- gezeigt
- Konzerte
- einfach
- So
- verkauft
- LÖSEN
- Auflösung
- einige
- Raumfahrt
- Räume
- Geschwindigkeit
- Anfang
- beginnt
- Bundesstaat
- Station
- Schritt
- Stoppen
- Struktur
- Studio Adressen
- so
- Schlägt vor
- Systeme und Techniken
- Nehmen
- Target
- Techniken
- Test
- Texas
- zur Verbesserung der Gesundheitsgerechtigkeit
- Das
- Der Staat
- ihr
- Diese
- Dritte
- nach drei
- dreidimensional
- Durch
- Zeit
- zu
- Gesamt
- Trades
- Trading
- Training
- trainiert
- Ausbildung
- Transaktion
- Transaktionskosten
- Transaktionen
- Übergänge
- was immer dies auch sein sollte.
- zwei Drittel
- Typen
- für
- Einheit
- Bereiche
- Universität
- Aktualisierung
- aktualisiert
- Updates
- Aktualisierung
- us
- USD
- -
- Wert
- Werte
- flüchtig
- Flüchtigkeit
- beobachten
- Was
- welche
- weit verbreitet
- werden wir
- mit
- arbeiten,
- X
- Du
- Ihr
- Zephyrnet
- Null