强化学习 (RL) 包含一类机器学习 (ML) 技术,可用于解决顺序决策问题。 RL 技术已在众多领域得到广泛应用,包括金融服务、自主导航、工业控制和电子商务。 RL 问题的目标是训练一个代理,根据其环境的观察,该代理将选择最大化累积奖励的最佳动作。 使用 RL 解决业务问题涉及指定代理的环境、操作空间、观察结构以及目标业务结果的正确奖励函数。 在基于策略的 RL 方法中,模型训练的结果通常是一个策略,它定义了给定观察的动作的概率分布。 最优策略将使智能体获得的累积回报最大化。
在约束决策问题中,代理的任务是在约束条件下选择最佳行动。 存在一类不同的此类问题,其中根据状态,可能仅允许代理从所有操作的子集中进行选择。 其余的行为是不可接受的。
例如,考虑一辆具有 10 种可能速度级别的自动驾驶汽车。 在穿过居民区时,可能只允许这辆车从其速度级别的子集中进行选择。 在这里,对速度级别的限制由汽车的位置决定。 这种对动作的参数化约束在许多现实世界的问题中很常见。 使用 RL 解决此类问题需要在训练过程中加入约束条件。 动作掩蔽 是一种解决 RL 问题的方法,该问题以样本有效的方式涉及不可接受的约束。 顾名思义,它涉及通过将抽样概率设置为零来掩盖任何不允许的操作。 下图描述了带有动作掩码的 RL 循环。 它由代理、确定动作掩码的约束、掩码、状态转换和观察到的奖励组成。
在这篇文章中,我们描述了如何使用 亚马逊SageMaker RL 在中使用参数化动作空间 射线库. 我们描述了一个涉及离散多维动作空间和多个约束的示例问题。 要访问这篇文章的完整笔记本,请参阅 SageMaker笔记本示例 在GitHub上。
用例概述
我们考虑一个示例投资组合优化问题,其中投资者交易多种资产类型以最大化其总投资组合价值。 该投资组合由三种不同的资产类型和现金余额组成,现金余额仅指您银行账户中的资金。 在每个投资期间,代理人必须选择他们购买或出售的每种资产类型的数量。 代理使用可用现金余额为任何资产购买提供资金。 还有与每个资产买卖行为相关的交易成本。 假定每项资产的市场价格随时间变化。 价格是随机抽样的,但经过建模以显示具有不同波动水平的不同行为。 下图显示了三种资产类别的价格范围。
代理人可采取的一系列行动由当前投资组合总价值、当前现金余额、持有的每种资产的数量及其当前市场价值等参数决定。 对于这个问题,我们对可能的操作实施以下约束:
- C1 – 代理人不能出售比他们目前拥有的更多的任何资产类型的单位。 例如,如果代理人在时间 k 的投资组合中有 100 个单位的资产 3,那么此时它不能出售 120 个单位的该资产。
- C2 – 资产 3 被投资者认为具有高度波动性。 如果代理人持有资产 3 的总价值超过其投资组合总价值的三分之一,则不允许代理人购买资产 3。
- C3 – RL 模型的消费者具有适度的风险偏好,并认为资产 2 是保守的购买。 因此,当资产 2 持有的总价值超过投资组合总价值的三分之二时,代理人不得购买资产 2。
- C4 – 如果代理人当前现金余额低于 1 美元,则不能购买任何资产。
搭建环境
首先,通过 亚马逊SageMaker Studio。 有关更多信息,请参阅 使用 Amazon SageMaker Notebook 实例.
接下来,我们在自定义中实现投资组合交易问题 打开人工智能健身房 环境并使用 SageMaker RL 训练 RL 代理。 Gym 环境为 RL 代理提供了一个与其环境交互并生成奖励和观察的接口。 投资组合交易的环境位于 trading.py
模块。 我们使用 __init__
方法来定义和初始化一些环境参数。 这包括与资产买卖行为相关的交易成本、资产价格的平均值、价格差异等。 我们还定义了观察和行动空间 __init__
方法。 请参阅以下代码:
因为代理人在任何给定时间交易三种资产,所以代理人采取的行动使用三维动作向量表示。 构成动作向量的三个离散动作代表每个资产类别中的交易,每个动作可以取 11 个可能的值。 11 个离散值编码不同的卖出、买入和持有操作,如下图所示。 例如,选择一个1=3 表示代理出售 20 个单位的资产类型 1。资产以 10 的倍数买卖。
观察空间具有包含两个元素的字典结构。 这些代表当前交易状态和当前操作掩码值。 交易状态是一个 7×1 向量,由代理人当前持有的每种资产的数量、当前现金余额以及三种资产中每种资产的当前市场价值组成。 动作掩码是一个 3×11 矩阵,其中掩码值对应于每个可能的动作。 环境每次使用 update_mask()
方法。 违反任何约束 C1:C4 的操作将分配一个零掩码。 对于允许的操作,mask 的值设置为 1。 请参见以下代码:
在每一集的开始,一个 reset()
方法被调用以重新初始化交易状态、观察和其他参数。 代理人以 1,000 美元的现金余额和零持有的资产开始每个训练阶段。 每集由 20 个投资期组成。
在每个投资期开始时,智能体都会根据其记录的最新观察结果对操作进行采样,并更新其投资组合。 这是建模使用 step()
方法。 投资组合更新后,我们重新计算状态。 动作掩码也通过调用更新 update_mask()
方法。
奖励函数被定义为最终的总投资组合价值,并在每集结束时计算,这发生在 20 个投资期之后。
遮蔽模型
在每个时间步,环境返回字典状态,表示策略的 ML 模型基于该状态对操作进行采样。 参数化动作模型有助于仅对未屏蔽(屏蔽≠0)的动作进行采样。 在这里,我们描述了启用动作屏蔽的参数化动作模型:
模型使用动作嵌入模型给出的 logits 通过 Softmax 函数对动作进行采样。 该模型定义在 __init__
方法。 屏蔽行为本身是在 forward()
方法。 在这里,我们将动作掩码和交易状态与从环境中检索到的字典状态分开。 然后通过将交易状态传递给动作嵌入网络来获得动作嵌入。 接下来,我们通过添加来修改每个动作的嵌入值 logit_mod
到逻辑。 请注意 logit_mod
是动作掩码的对数函数。 对于 mask = 1 的动作,mask 的对数将为零,这使得它们的嵌入不受干扰。 另一方面,当mask=0时,mask的对数→ −∞。 因为 Softmax(x)
→0 作为 x→ −∞,这可以确保代理不会对屏蔽的操作进行采样。
让我们测试掩码是否按预期工作。 我们启动一个射线训练器对象并屏蔽一些动作,看看训练器是否只对未屏蔽的动作进行采样:
以下屏幕截图中的输出显示了初始动作掩码数组。
现在我们修改掩码向量,以便1, 除行动 8 外的所有选择(购买 30 单位资产 1); 为一个2 除行动 5 之外的所有内容(将资产 2 保持在当前数量); 和一个3,除了动作 1 和 2(出售 40 或 30 单位的资产 3)之外的所有内容都被屏蔽:
现在我们已经修改了动作掩码数组,我们尝试对新动作进行采样。
代理仅对那些未屏蔽的操作进行采样。 这验证了动作屏蔽是否按预期工作。
成果
现在已经定义了环境和参数操作模型,我们训练代理使用 SageMaker RL 解决投资组合优化问题。 我们训练 RL 代理学习最优策略以在约束 C1:C4 下最大化奖励。 我们使用 SageMaker RL 中的近端策略优化 (PPO) 算法来训练 RL 代理 500,000 集。 下面的训练配置展示了我们如何指定代理使用 trading_mask
作为一个 custom_model
要使用的:
代理人的初始现金余额为 1,000 美元。 每集的平均奖励被绘制为训练时间的函数,如下图所示。 回想一下,我们使用最终的总投资组合价值作为奖励。 在 20 个投资期结束时,我们观察到代理人投资组合的平均值超过 3,000 美元。
清理
除了使用 SageMaker 笔记本实例之外,我们没有提供任何基础设施。 如果您通过 Studio 使用 SageMaker 笔记本实例,则可以按照中的说明将其关闭 关闭打开的笔记本.
结论
在本文中,我们讨论了如何实施动作屏蔽以在 RL 模型训练中强制执行约束。 通过屏蔽不允许的动作,我们使代理能够仅对有效动作进行采样,并以采样有效的方式学习最优策略。 我们引入了一个投资组合优化问题,其中代理人的任务是通过在多重约束下交易三种资产类型来最大化其投资组合价值。 我们演示了如何使用 Ray RLlib 为这个问题实现多维动作掩蔽。 我们使用 SageMaker RL 训练了一个 RL 代理来解决受约束的投资组合优化问题。
既然您知道如何使用 SageMaker RL 和 Ray RLlib 对投资组合优化执行动作掩蔽,您可以在涉及不允许动作的其他 RL 问题上尝试它。 您还可以调整本文中开发的动作屏蔽代码,以解决涉及一维动作空间的更简单问题。 我们鼓励您将此处开发的方法应用于您的 RL 用例,如果您有任何问题或反馈,请告诉我们。
其他参考
有关其他信息和相关内容,请参阅以下资源:
作者简介
迪尔沙德·莱汉·阿卡姆·维蒂尔 是 AWS 专业服务的数据科学家,他与各行各业的客户合作,通过使用机器学习和云计算来解决他们的业务挑战。 他拥有德克萨斯 A&M 大学学院站的航空航天工程博士学位。 在闲暇时间,他喜欢看足球和阅读。
保罗布纳兰 是亚马逊库存预测系统 (IFS) 小组的应用科学家,常驻加利福尼亚州洛杉矶。
- SEO 支持的内容和 PR 分发。 今天得到放大。
- 柏拉图区块链。 Web3 元宇宙智能。 知识放大。 访问这里。
- Sumber: https://aws.amazon.com/blogs/machine-learning/portfolio-optimization-through-multidimensional-action-optimization-using-amazon-sagemaker-rl/
- :是
- $3
- $UP
- 000
- 1
- 10
- 100
- 11
- 500k
- 7
- 8
- a
- 以上
- ACCESS
- 账号管理
- 横过
- 操作
- 行动
- 适应
- 额外
- 附加信息
- 航空航天
- 后
- 经纪人
- 中介代理
- AI
- 算法
- 所有类型
- Amazon
- 亚马逊SageMaker
- 和
- 洛杉矶
- 应用领域
- 应用的
- 使用
- 的途径
- 保健
- 排列
- AS
- 财富
- 办公室文员:
- 分配
- 相关
- 假定
- At
- 自主性
- 可使用
- AWS
- AWS专业服务
- 当前余额
- 银行
- 银行账户
- 基于
- BE
- 因为
- 开始
- 超越
- 买
- 商业
- 购买
- by
- 计算
- 计算
- 加州
- 被称为
- 调用
- CAN
- 汽车
- 案件
- 例
- 现金
- 挑战
- 图表
- 选择
- 选择
- 程
- 类
- 云端技术
- 云计算
- 码
- 学院
- 相当常见
- 完成
- 计算
- 流程条件
- 配置
- 保守的
- 考虑
- 考虑
- 组成
- 约束
- 消费者
- 内容
- 继续
- 控制
- 相应
- 价格
- 成本
- USB和Thunderbolt Cross
- 电流
- 目前
- 习俗
- 合作伙伴
- 周期
- data
- 数据科学家
- 决策
- 定义
- 定义
- 证明
- 根据
- 描述
- 确定
- 决心
- 发达
- 不同
- 讨论
- 不同
- 分配
- 域名
- 向下
- ,我们将参加
- 电子商务行业
- 每
- 高效
- 分子
- enable
- 使
- 包含
- 鼓励
- 工程师
- 环境
- 所有的
- 一切
- 例子
- 除
- 存在
- 预期
- 探索
- 功能有助于
- 反馈
- 数字
- 最后
- 金融
- 金融
- 金融服务
- 以下
- 足球
- 针对
- 发现
- 止
- 功能
- 生成
- GitHub上
- 特定
- 团队
- 健身房
- 手
- 发生
- 有
- 保持
- 相关信息
- 高
- 高度
- 举行
- 控股
- 持有
- 创新中心
- How To
- HTML
- HTTPS
- 实施
- 实施
- 进口
- in
- 包括
- 包含
- 结合
- 指数
- 产业
- 行业
- 信息
- 基础设施
- 初始
- 开始
- 例
- 说明
- 相互作用
- 接口
- 介绍
- 库存
- 投资
- 投资者
- 投资者
- 涉及
- IT
- 它的
- 本身
- JPG
- 知道
- 最新
- 学习用品
- 学习
- 长度
- 各级
- 位于
- 圖書分館的位置
- 该
- 洛杉矶
- 低
- 机
- 机器学习
- 使
- 制作
- 方式
- 许多
- 市场
- 市场价格
- 面膜
- 面膜
- 数学
- 矩阵
- 最大
- 生产力
- 最大程度地增强
- 最多
- 方法
- 方法
- 最低限度
- ML
- 模型
- 改性
- 修改
- 模块
- 钱
- 显示器
- 更多
- 多
- 姓名
- 旅游导航
- 网络
- 全新
- 下页
- 笔记本
- 数
- 数字
- 众多
- 麻木
- 对象
- 目标
- 观察
- 获得
- of
- on
- 打开
- 最佳
- 优化
- 其他名称
- 成果
- 产量
- 己
- 拥有
- 参数
- 通过
- 演出
- 期间
- 期
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 政策
- 个人档案
- 可能
- 帖子
- 车资
- 价格
- 市场问题
- 问题
- 过程
- 所以专业
- 提供
- 规定
- 购买
- 数量
- 有疑问吗?
- 随机
- RAY
- 阅读
- 真实的世界
- 记录
- 指
- 注册处
- 有关
- 其余
- 代表
- 代表
- 代表
- 需要
- 住宅
- 资源
- 导致
- 回报
- 回报
- 积分
- 奖励
- 风险
- 运行
- sagemaker
- 盐
- 科学家
- 自
- 出售
- 卖房
- 分开
- 特色服务
- 集
- 设置
- 显示
- 如图
- 作品
- 只是
- So
- 出售
- 解决
- 解决
- 一些
- 太空
- 剩余名额
- 速度
- 开始
- 启动
- 州/领地
- 站
- 步
- Stop 停止
- 结构体
- 工作室
- 这样
- 提示
- 产品
- 采取
- 目标
- 技术
- test
- 德州
- 这
- 国家
- 其
- 博曼
- 第三
- 三
- 三维
- 通过
- 次
- 至
- 合计
- 行业
- 交易
- 培训
- 熟练
- 产品培训
- 交易
- 交易成本
- 交易
- 转换
- true
- 三分之二
- 类型
- 下
- 单元
- 单位
- 大学
- 更新
- 更新
- 最新动态
- 更新
- us
- USD
- 使用
- 折扣值
- 价值观
- 通过
- 挥发物
- 挥发性
- 观看
- 什么是
- 这
- 广泛
- 将
- 加工
- X
- 完全
- 您一站式解决方案
- 和风网
- 零