Reinforcement Learning中的Reward Function设计

在Reinforcement Learning中,reward function的设计至关重要。最近大概总结了一些reward function的设计原则。

概要

Reinforcement Learning (RL)在各种应用中得到了广泛的应用,其中reward function的设计是RL的核心部分。一个好的reward function可以指导agent向着预定的目标前进,而一个不佳的设计可能会导致训练失败或低效。

Reward Function的基本原则

  1. 基于目标:Reward function应主要基于agent的目标。
  2. 限制输入数据:它应考虑起始状态s、采取的行动a、结果状态s′和/或随机数量。避免使用这四种数据以外的其他数据,以确保你的环境仍然是一个Markov Decision Process (MDP)。
  3. 简洁明了:简单直接往往是最佳的。例如,在大多数2-player游戏中,胜利给予+1的奖励,平局为0,失败为-1,就足够了。
  4. 正面奖励与负面奖励:普遍来说,对于你希望agent达到或重复的目标应给予正面的奖励,而对于你希望agent避免的行为则应给予负面奖励。
  5. 无关目标的奖励为0:这可以让agent自己学习是否值得使用特定的状态/行动。
  6. 奖励缩放:虽然在理论上缩放所有奖励不会有影响,但为了方便评估和技术实施,最好使用简单的数字,如+1/-1。
  7. 避免使用启发式函数:因为这可能插入了关于如何解决问题的个人意见,并可能实际上不是最佳的。

如何平衡不同的目标?

当需要在单一场景中考虑多个目标时,可能需要在单一的reward function中比较非常不同的部分。在此情况下,你需要更加仔细地思考这意味着什么:

  • 单位转换:例如,在商业和生产过程中,可以使用货币作为奖励单位,将消耗的能量、运输距离等转换为该货币。
  • 考虑约束:对于高度不希望发生的结果,而不是分配负奖励,可以考虑对环境施加约束。

有效地定义和调整奖励

尽管实验和直觉在某种程度上是必要的,但通常不仅仅是随意尝试不同的奖励值。最好的做法是基于问题分析和学习目标来制定reward function,然后再进行实验。

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus