假设我们有一个机器人,它有一些资金和一些股票。输入是过去30天的价格列表。它不使用RNN,所有价格同时输入。输出是一个连续的动作,正数表示买入,负数表示卖出相应数量的股票。我如何限制动作空间,使其在拥有的股票数量(下限)和拥有的资金(上限)之间进行剪裁?
我是应该剪裁动作,还是只是对非法动作进行惩罚?哪种选择能带来最佳结果?
回答:
你可以对非法动作进行惩罚,但根据我的经验,这对AI的效果并不好(又多了一件需要担心的事)。直接剪裁输出,如果它试图使用超出可用资金的金额,就花光所有资金。如果它试图卖出超过所持有的股票数量,就卖出所有股票。网络会很快学会当它试图使用超过其拥有的资源时会发生什么,因此不会导致性能下降。