强化学习中连续动作的动作掩蔽 space
Action masking for continuous action space in reinforcement learning
有没有办法为连续动作 space 模拟动作掩蔽?我想用强化学习来模拟经济问题。这些问题往往有连续的动作和状态 spaces。此外,状态通常会影响可能的操作,因此允许的操作会逐步变化。
简单示例:
智能体拥有财富(连续状态)并决定支出(连续动作)。接下来的时期是财富减去支出。但他受到预算约束的限制。不允许他花费超过他的财富。对此建模的最佳方法是什么?
我尝试了什么:
对于离散操作,可以使用 action masking。因此,在每个时间步长中,我都向代理提供了哪些操作是允许的,哪些是不允许的。我还尝试通过连续动作 space 通过提供允许动作的下限和上限并剪辑从演员网络(例如 DDPG)中抽取的动作来做到这一点。
我想知道这是否是一件有效的事情(它在一个简单的玩具模型中工作),因为我没有找到任何实现它的 RL 库。或者是否有更聪明的 way/best 做法来将有关允许的操作的信息包含在代理中?
我认为您的方向是正确的。我研究了屏蔽动作并发现了两种可能的方法:在尝试采取无效动作时给予负面奖励(不让环境进化),或者深入研究神经网络代码并让神经网络仅输出有效动作。
我一直认为最后一种方法是最有效的,您引入边界的方法似乎与它非常相似。因此,只要这是您正在寻找的掩码(边界)类型,我认为您就可以开始了。
有没有办法为连续动作 space 模拟动作掩蔽?我想用强化学习来模拟经济问题。这些问题往往有连续的动作和状态 spaces。此外,状态通常会影响可能的操作,因此允许的操作会逐步变化。
简单示例:
智能体拥有财富(连续状态)并决定支出(连续动作)。接下来的时期是财富减去支出。但他受到预算约束的限制。不允许他花费超过他的财富。对此建模的最佳方法是什么?
我尝试了什么: 对于离散操作,可以使用 action masking。因此,在每个时间步长中,我都向代理提供了哪些操作是允许的,哪些是不允许的。我还尝试通过连续动作 space 通过提供允许动作的下限和上限并剪辑从演员网络(例如 DDPG)中抽取的动作来做到这一点。
我想知道这是否是一件有效的事情(它在一个简单的玩具模型中工作),因为我没有找到任何实现它的 RL 库。或者是否有更聪明的 way/best 做法来将有关允许的操作的信息包含在代理中?
我认为您的方向是正确的。我研究了屏蔽动作并发现了两种可能的方法:在尝试采取无效动作时给予负面奖励(不让环境进化),或者深入研究神经网络代码并让神经网络仅输出有效动作。 我一直认为最后一种方法是最有效的,您引入边界的方法似乎与它非常相似。因此,只要这是您正在寻找的掩码(边界)类型,我认为您就可以开始了。