L'apprentissage par renforcement (RL) englobe une classe de techniques d'apprentissage automatique (ML) qui peuvent être utilisées pour résoudre des problèmes de prise de décision séquentielle. Les techniques RL ont trouvé de nombreuses applications dans de nombreux domaines, notamment les services financiers, la navigation autonome, le contrôle industriel et le commerce électronique. L'objectif d'un problème RL est de former un agent qui, étant donné une observation de son environnement, choisira l'action optimale qui maximise la récompense cumulée. Résoudre un problème métier avec RL implique de spécifier l'environnement de l'agent, l'espace des actions, la structure des observations et la bonne fonction de récompense pour le résultat métier cible. Dans les méthodes RL basées sur des politiques, le résultat de la formation du modèle est souvent une politique, qui définit une distribution de probabilité sur les actions en fonction d'une observation. La politique optimale maximisera les rendements cumulés obtenus par l'agent.
Dans les problèmes de prise de décision sous contraintes, l'agent est chargé de choisir les actions optimales sous contraintes. Une classe distincte de tels problèmes existe dans laquelle, selon l'état, l'agent peut être autorisé à choisir uniquement parmi un sous-ensemble de toutes les actions. Les autres recours sont irrecevables.
Par exemple, considérons une voiture autonome qui a 10 niveaux de vitesse possibles. Cette voiture ne peut être autorisée à choisir que parmi un sous-ensemble de ses niveaux de vitesse lorsqu'elle traverse un quartier résidentiel. Ici, la contrainte sur les niveaux de vitesse est déterminée par l'emplacement de la voiture. De telles contraintes paramétrées sur les actions sont courantes dans de nombreux problèmes du monde réel. Résoudre de tels problèmes avec RL nécessite d'intégrer les contraintes dans le processus de formation. Masquage d'action est une approche pour résoudre les problèmes de RL qui impliquent des contraintes d'inadmissibilité d'une manière efficace. Comme son nom l'indique, il s'agit de masquer les actions inadmissibles en fixant leur probabilité d'échantillonnage à zéro. La figure suivante illustre le cycle RL avec masquage d'action. Il se compose d'un agent, des contraintes qui déterminent les masques d'action, les masques, les transitions d'état et les récompenses observées.
Dans cet article, nous décrivons comment implémenter le masquage d'action avec Amazon SageMaker RL utilisation d'espaces d'action paramétriques dans Ray RLlib. Nous décrivons un exemple de problème qui implique des espaces d'action multidimensionnels discrets et de multiples contraintes. Pour accéder au cahier complet de cet article, consultez le Exemple de bloc-notes SageMaker sur GitHub.
Présentation des cas d'utilisation
Nous considérons un exemple de problème d'optimisation de portefeuille dans lequel un investisseur négocie plusieurs types d'actifs pour maximiser la valeur totale de son portefeuille. Le portefeuille se compose de trois types d'actifs différents et d'un solde de trésorerie qui fait simplement référence à l'argent que vous avez sur votre compte bancaire. Au cours de chaque période d'investissement, l'agent doit choisir la quantité de chaque type d'actif qu'il achète ou vend. L'agent utilise le solde de trésorerie disponible pour financer tout achat d'actifs. Il existe également des coûts de transaction associés à chaque action d'achat/vente d'actifs. Le prix de marché de chaque actif est supposé varier dans le temps. Les prix sont échantillonnés de manière aléatoire mais modélisés pour montrer un comportement distinct avec différents niveaux de volatilité. Les fourchettes de prix pour les trois classes d'actifs sont présentées dans la figure suivante.
L'ensemble des actions admissibles pour l'agent est déterminé par des paramètres tels que la valeur totale actuelle du portefeuille, le solde de trésorerie actuel, le nombre de chaque type d'actifs détenus et leur valeur marchande actuelle. Pour ce problème, nous appliquons les contraintes suivantes sur les actions possibles :
- C1 – L'agent ne peut pas vendre plus d'unités de n'importe quel type d'actif que ce qu'il possède actuellement. Par exemple, si l'agent a 100 unités de l'actif 3 au moment k dans son portefeuille, il ne peut pas vendre 120 unités de cet actif à ce moment-là.
- C2 – L'actif 3 est considéré comme très volatil par les investisseurs. L'agent n'est pas autorisé à acheter l'actif 3 si la valeur totale de ses avoirs dans l'actif 3 est supérieure à un tiers de la valeur totale de son portefeuille.
- C3 – Les consommateurs du modèle RL ont une préférence pour le risque modéré et considèrent l'actif 2 comme un achat prudent. Par conséquent, l'agent n'est pas autorisé à acheter l'actif 2 lorsque la valeur totale des avoirs de l'actif 2 dépasse les deux tiers de la valeur totale du portefeuille.
- C4 – L'agent ne peut acheter aucun actif si son solde de trésorerie actuel est inférieur à 1 USD.
Mettre en place l'environnement
Pour commencer, provisionnez une instance de bloc-notes SageMaker via Amazon SageMakerStudio. Pour plus d'informations, voir Utiliser les instances Amazon SageMaker Notebook.
Ensuite, nous implémentons le problème de trading de portefeuille dans un environnement personnalisé Salle de sport IA ouverte environnement et former un agent RL à l'aide de SageMaker RL. Un environnement Gym fournit une interface permettant à l'agent RL d'interagir avec son environnement et de générer des récompenses et des observations. L'environnement du négoce de portefeuille se situe dans le trading.py
module. Nous utilisons le __init__
méthode pour définir et initialiser certains paramètres d'environnement. Cela inclut les coûts de transaction associés aux actions d'achat/vente d'actifs, la valeur moyenne des prix des actifs, les écarts de prix, etc. Nous définissons également les espaces d'observation et d'action dans le __init__
méthode. Voir le code suivant:
Étant donné que l'agent négocie trois actifs à un moment donné, les actions entreprises par l'agent sont représentées à l'aide d'un vecteur d'action tridimensionnel. Les trois actions discrètes qui composent le vecteur d'action représentent les transactions dans chaque classe d'actifs et peuvent chacune prendre 11 valeurs possibles. Les 11 valeurs discrètes codent différentes actions de vente, d'achat et de conservation, comme illustré dans la figure suivante. Par exemple, choisir un1=3 signifie que l'agent vend 20 unités du type d'actif 1. Les actifs sont achetés et vendus par multiples de 10.
L'espace d'observation a une structure de dictionnaire à deux éléments. Celles-ci représentent l'état actuel de la négociation et les valeurs actuelles du masque d'action. L'état commercial est un vecteur 7 × 1 composé des quantités de chaque actif actuellement détenu par l'agent, du solde de trésorerie actuel et de la valeur marchande actuelle de chacun des trois actifs. Le masque d'action est une matrice 3×11 avec des valeurs de masque correspondant à chaque action possible. L'environnement calcule les valeurs de masque à chaque fois à l'aide d'un update_mask()
méthode. Les actions qui violent l'une des contraintes C1:C4 se voient attribuer un masque zéro. La valeur de mask est fixée à 1 pour les actions admissibles. Voir le code suivant :
Au début de chaque épisode, un reset()
La méthode est appelée pour réinitialiser l'état commercial, les observations et d'autres paramètres. L'agent commence chaque épisode de formation avec 1,000 20 USD en solde de trésorerie et aucun avoir en actifs. Chaque épisode se compose de XNUMX périodes d'investissement.
Au début de chaque période d'investissement, l'agent échantillonne une action sur la base des dernières observations qu'il a enregistrées et met à jour son portefeuille. Celle-ci est modélisée à l'aide d'un step()
méthode. Une fois le portefeuille mis à jour, nous recalculons l'état. Le masque d'action est également mis à jour en appelant le update_mask()
méthode.
La fonction de récompense est définie comme la valeur totale finale du portefeuille et calculée à la fin de chaque épisode, ce qui se produit après 20 périodes d'investissement.
Modèle de masquage
À chaque pas de temps, l'environnement renvoie l'état du dictionnaire et le modèle ML représentant la politique échantillonne une action basée sur cet état. Un modèle d'action paramétrique facilite l'échantillonnage uniquement des actions non masquées (masque ≠ 0). Nous décrivons ici le modèle d'actions paramétriques qui permet le masquage d'action :
Les actions sont échantillonnées par le modèle via une fonction Softmax en utilisant les logits donnés par un modèle d'incorporation d'action. Ce modèle est défini dans le __init__
méthode. Le comportement de masquage lui-même est implémenté dans le forward()
méthode. Ici, nous séparons les masques d'actions et l'état commercial de l'état du dictionnaire extrait de l'environnement. Les incorporations d'action sont ensuite obtenues en transmettant l'état commercial au réseau d'incorporation d'action. Ensuite, nous modifions la valeur des plongements de chaque action en ajoutant logit_mod
aux logis. Remarquerez que logit_mod
est une fonction du logarithme du masque d'action. Pour les actions avec masque = 1, le logarithme de masque sera nul, ce qui laisse leurs plongements imperturbables. Par contre, lorsque mask=0, le logarithme de mask → −∞. Car Softmax(x)
→0 comme x→ −∞, cela garantit que les actions masquées ne sont pas échantillonnées par l'agent.
Testons si le masque fonctionne comme prévu. Nous initions un objet d'entraînement de rayons et masquons certaines des actions et voyons si l'entraîneur n'échantillonne que les actions non masquées :
La sortie dans la capture d'écran suivante montre le tableau de masque d'action initial.
Maintenant, nous modifions les vecteurs de masque de sorte que pour un1, tous les choix sauf l'action 8 (acheter 30 unités de l'Actif 1) ; pour un2 tout sauf l'action 5 (maintenez l'actif 2 aux numéros actuels); et pour un3, tout sauf les actions 1 et 2 (vendre 40 ou 30 unités de l'Actif 3) sont masqués :
Maintenant que nous avons modifié le tableau de masque d'action, nous essayons d'échantillonner une nouvelle action.
L'agent n'échantillonne que les actions non masquées. Ceci vérifie que le masquage d'action fonctionne comme prévu.
Résultats
Maintenant que l'environnement et le modèle d'actions paramétriques sont définis, nous formons un agent pour résoudre le problème d'optimisation de portefeuille à l'aide de SageMaker RL. Nous formons un agent RL pour apprendre la politique optimale pour maximiser la récompense sous les contraintes C1:C4. Nous utilisons l'algorithme d'optimisation de politique proximale (PPO) dans SageMaker RL pour former l'agent RL pour 500,000 XNUMX épisodes. La configuration de formation suivante montre comment nous spécifions l'agent pour utiliser le trading_mask
en tant que custom_model
à utiliser:
L'agent commence avec 1,000 20 USD en solde de trésorerie initial. La récompense moyenne par épisode est tracée en fonction du temps d'entraînement, comme indiqué dans le tableau suivant. Rappelez-vous que nous utilisons la valeur totale finale du portefeuille comme récompense. Au bout de 3,000 périodes d'investissement, nous observons que la valeur moyenne du portefeuille de l'agent est supérieure à XNUMX XNUMX USD.
Nettoyer
Nous n'avons provisionné aucune infrastructure au-delà de l'utilisation d'une instance de bloc-notes SageMaker. Si vous utilisez une instance de bloc-notes SageMaker via Studio, vous pouvez l'arrêter en suivant les instructions de Arrêter un ordinateur portable ouvert.
Conclusion
Dans cet article, nous avons expliqué comment implémenter le masquage d'action pour appliquer des contraintes dans la formation du modèle RL. En masquant les actions inadmissibles, nous permettons à l'agent de n'échantillonner que les actions valides et d'apprendre la politique optimale de manière efficace. Nous avons introduit un problème d'optimisation de portefeuille dans lequel l'agent est chargé de maximiser la valeur de son portefeuille en négociant trois types d'actifs sous plusieurs contraintes. Nous avons montré comment implémenter un masquage d'action multidimensionnel pour ce problème à l'aide de Ray RLlib. Nous avons formé un agent RL pour résoudre le problème d'optimisation de portefeuille contraint à l'aide de SageMaker RL.
Maintenant que vous savez comment effectuer un masquage d'action à l'aide de SageMaker RL et Ray RLlib sur l'optimisation de portefeuille, vous pouvez l'essayer sur d'autres problèmes RL qui impliquent des actions inadmissibles. Vous pouvez également adapter le code de masquage d'action développé dans cet article pour des problèmes plus simples impliquant un espace d'action unidimensionnel. Nous vous encourageons à appliquer l'approche développée ici à vos cas d'utilisation RL et à nous faire savoir si vous avez des questions ou des commentaires.
Références supplémentaires
Pour plus d'informations et du contenu connexe, consultez les ressources suivantes :
À propos des auteurs
Dilshad Raihan Akkam Veettil est Data Scientist chez AWS Professional Services, où il s'engage auprès de clients de tous les secteurs pour résoudre leurs défis commerciaux grâce à l'utilisation de l'apprentissage automatique et du cloud computing. Il est titulaire d'un doctorat en génie aérospatial de la Texas A&M University, College Station. Pendant son temps libre, il aime regarder le football et lire.
Paul Budnarain est un scientifique appliqué du groupe IFS (Inventory Forecasting Systems) d'Amazon, et est basé à Los Angeles, en Californie.
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- Platoblockchain. Intelligence métaverse Web3. Connaissance Amplifiée. Accéder ici.
- La source: https://aws.amazon.com/blogs/machine-learning/portfolio-optimization-through-multidimensional-action-optimization-using-amazon-sagemaker-rl/
- :est
- $3
- $UP
- 000
- 1
- 10
- 100
- 11
- 500K
- 7
- 8
- a
- au dessus de
- accès
- Compte
- à travers
- Action
- actes
- adapter
- Supplémentaire
- renseignements supplémentaires
- Industrie aerospatiale
- Après
- Agent
- agents
- AI
- algorithme
- Tous
- Amazon
- Amazon Sage Maker
- et de
- Angeles
- applications
- appliqué
- Appliquer
- une approche
- SONT
- tableau
- AS
- atout
- Outils
- attribué
- associé
- assumé
- At
- autonome
- disponibles
- AWS
- Services professionnels AWS
- Balance
- Banque
- compte bancaire
- basé
- BE
- car
- Début
- Au-delà
- acheté
- la performance des entreprises
- acheter
- by
- calculé
- calcule
- Californie
- appelé
- appel
- CAN
- fournisseur
- maisons
- cas
- Argent liquide
- globaux
- Graphique
- choix
- Selectionnez
- choose
- classe
- les classes
- le cloud
- le cloud computing
- code
- Université
- Commun
- complet
- informatique
- condition
- configuration
- conservateur
- Considérer
- considéré
- Qui consiste
- contraintes
- Les consommateurs
- contenu
- continuer
- des bactéries
- Correspondant
- Prix
- Costs
- Cross
- Courant
- Lecture
- Customiser
- Clients
- cycle
- données
- Data Scientist
- La prise de décision
- défini
- Définit
- démontré
- Selon
- décrire
- Déterminer
- déterminé
- développé
- différent
- discuté
- distinct
- distribution
- domaines
- down
- pendant
- e-commerce
- chacun
- efficace
- éléments
- permettre
- permet
- englobe
- encourager
- ENGINEERING
- Environment
- Chaque
- peut
- exemple
- Sauf
- existe
- attendu
- explorez
- facilite
- Réactions
- Figure
- finale
- finance
- la traduction de documents financiers
- services financiers
- Abonnement
- Football
- Pour
- trouvé
- De
- fonction
- générer
- GitHub
- donné
- Réservation de groupe
- salle de sport
- main
- arrive
- Vous avez
- Tenue
- ici
- Haute
- très
- appuyez en continu
- Holdings
- détient
- Comment
- How To
- HTML
- HTTPS
- Mettre en oeuvre
- mis en œuvre
- importer
- in
- inclut
- Y compris
- incorporation
- indice
- industriel
- secteurs
- d'information
- Infrastructure
- initiale
- initier
- instance
- Des instructions
- interagir
- Interfaces
- introduit
- inventaire
- un investissement
- investor
- Investisseurs
- impliquer
- IT
- SES
- lui-même
- jpg
- Savoir
- Nouveautés
- APPRENTISSAGE
- apprentissage
- Longueur
- niveaux
- situé
- emplacement
- les
- Los Angeles
- Faible
- click
- machine learning
- a prendre une
- FAIT DU
- manière
- de nombreuses
- Marché
- Prix du marché
- masque
- Masques
- math
- Matrice
- max
- Maximisez
- optimise
- maximales
- méthode
- méthodes
- minimum
- ML
- modèle
- modifié
- modifier
- Module
- de l'argent
- Surveiller
- PLUS
- plusieurs
- prénom
- Navigation
- réseau et
- Nouveauté
- next
- cahier
- nombre
- numéros
- nombreux
- numpy
- objet
- objectif
- observer
- obtenu
- of
- on
- ouvert
- optimaux
- à mettre en œuvre pour gérer une entreprise rentable. Ce guide est basé sur trois décennies d'expérience
- Autre
- Résultat
- sortie
- propre
- propriété
- paramètres
- En passant
- Effectuer
- période
- périodes
- Platon
- Intelligence des données Platon
- PlatonDonnées
- politique
- portefeuille
- possible
- Post
- prix
- Tarifs
- Problème
- d'ouvrabilité
- processus
- professionels
- fournit
- disposition
- achats
- Quantité
- fréquemment posées
- aléatoire
- RAY
- en cours
- monde réel
- enregistré
- se réfère
- enregistrement
- en relation
- restant
- représentent
- représenté
- représentation
- a besoin
- Résidentiel
- Resources
- résultat
- retourner
- Retours
- Récompenser
- Programme de fidélité
- Analyse
- Courir
- sagemaker
- SOLDE
- Scientifique
- AUTO
- vendre
- Disponible
- séparé
- Services
- set
- mise
- montrer
- montré
- Spectacles
- simplement
- So
- vendu
- RÉSOUDRE
- Résoudre
- quelques
- l'espace
- espaces
- vitesse
- Commencer
- départs
- Région
- station
- étapes
- Arrêter
- structure
- studio
- tel
- Suggère
- Système
- Prenez
- Target
- techniques
- tester
- Texas
- qui
- La
- L'État
- leur
- Ces
- Troisièmement
- trois
- tridimensionnel
- Avec
- fiable
- à
- Total
- métiers
- Commerce
- Train
- qualifié
- Formation
- transaction
- coûts de transaction
- Transactions
- transitions
- oui
- les deux tiers
- types
- sous
- unité
- unités
- université
- Mises à jour
- a actualisé
- Actualités
- la mise à jour
- us
- USD
- utilisé
- Plus-value
- Valeurs
- via
- volatile
- Volatilité
- personne(s) regarde(nt) cette fiche produit
- Quoi
- qui
- répandu
- sera
- comprenant
- de travail
- X
- Vous n'avez
- Votre
- zéphyrnet
- zéro