概要
Reinforcement Learning (RL)在各种应用中得到了广泛的应用,其中reward function的设计是RL的核心部分。一个好的reward function可以指导agent向着预定的目标前进,而一个不佳的设计可能会导致训练失败或低效。
Reward Function的基本原则
- 基于目标:Reward function应主要基于agent的目标。
- 限制输入数据:它应考虑起始状态s、采取的行动a、结果状态s′和/或随机数量。避免使用这四种数据以外的其他数据,以确保你的环境仍然是一个Markov Decision Process (MDP)。
- 简洁明了:简单直接往往是最佳的。例如,在大多数2-player游戏中,胜利给予+1的奖励,平局为0,失败为-1,就足够了。
- 正面奖励与负面奖励:普遍来说,对于你希望agent达到或重复的目标应给予正面的奖励,而对于你希望agent避免的行为则应给予负面奖励。
- 无关目标的奖励为0:这可以让agent自己学习是否值得使用特定的状态/行动。
- 奖励缩放:虽然在理论上缩放所有奖励不会有影响,但为了方便评估和技术实施,最好使用简单的数字,如+1/-1。
- 避免使用启发式函数:因为这可能插入了关于如何解决问题的个人意见,并可能实际上不是最佳的。
如何平衡不同的目标?
当需要在单一场景中考虑多个目标时,可能需要在单一的reward function中比较非常不同的部分。在此情况下,你需要更加仔细地思考这意味着什么:
- 单位转换:例如,在商业和生产过程中,可以使用货币作为奖励单位,将消耗的能量、运输距离等转换为该货币。
- 考虑约束:对于高度不希望发生的结果,而不是分配负奖励,可以考虑对环境施加约束。
有效地定义和调整奖励
尽管实验和直觉在某种程度上是必要的,但通常不仅仅是随意尝试不同的奖励值。最好的做法是基于问题分析和学习目标来制定reward function,然后再进行实验。