是否可以在on-policy 算法(例如PPO)中使用任何特定的策略来探索(例如metaheuristics),还是只能定义特定的策略来探索off-policy 算法(例如TD3)?
是否可以为策略上的 RL 代理应用特定的探索策略?
人工智能
强化学习
深度学习
策略方法
探索策略
2021-11-02 09:28:38
1个回答
部分取决于您使用的 on-policy 方法。一般来说,您不能随意更改策略上的策略梯度方法,例如 PPO 或 A3C。
但是,如果您愿意将添加的探索策略视为当前目标策略的一部分,并且可以用数学方式表达,您应该能够在策略方法中添加探索术语:
对于像 SARSA 这样的基于值的策略方法,则不需要将当前策略基于学习的值函数。但是,您可能希望随着时间的推移减少探索启发式的影响,否则算法可能不会收敛。一个简单的方法是对每个动作的启发式加权,并在决定贪婪动作时将其添加到当前值估计中,随着时间的推移将启发式的权重慢慢衰减到零。
对于策略梯度方法,调整更难。您的启发式需要在策略函数的参数控制下引入,并且应该是可微的。您也许可以简单直接地执行此操作,但这取决于细节。对于某些探索功能,根本不可能。
使用策略上的策略梯度方法可能更容易处理的方法是预训练策略网络以逼近启发式函数。然后,该策略将像启发式一样开始,然后向最优控制发展。如果您的启发式输出仅取决于当前状态的概率分布,并且没有其他信息(例如已采取相同操作的次数),则此方法有效。
如果您想使用启发式进行探索而不衰减它,或者在长期内失去探索,但仍以最优策略为目标,那么您必须使用离策略方法。大多数离策略方法是对策略版本的扩展,这些方法已被调整/扩展以处理行为和目标策略之间的分裂。因此,它们必然更复杂。
如果您想使用具有策略梯度的自定义探索函数,那么您可能会幸运地调整深度确定性策略梯度 (DDPG),其中探索函数已经是一个单独的组件并且可以替换 - 已经有几个变体在使用.
其它你可能感兴趣的问题