价值函数的初始化和奖励函数的定义如何影响 RL 智能体的性能?

人工智能 强化学习 价值函数 奖励设计 奖励函数 权重初始化
2021-11-14 03:28:01

是否有任何经验/理论证据表明状态动作的初始值和状态值通过 MC 方法策略评估和 GLIE 策略改进对 RL 代理的训练(RL 代理分配给访问状态的值)的影响?

例如,考虑Windy Gridworld问题的两种初始化场景:

实现:我已经修改了这个问题以及步罚,以包括一个非期望的终端状态和一个期望的终端状态,它们将分别作为负奖励状态和正奖励状态传送给代理。该实现注意 MC 采样在终端状态结束,并将惩罚/奖励作为状态动作值而不是状态值给出,因为这是一个控制问题。另外,我有5个动作:北,南,东,西和停留。

注意:我不确定这是否会改变问题的目标。在最初的问题中,它是减少到达最后阶段所需的步骤数。

  • 我们将达到期望的最终状态的奖励设置为高于价值函数的随机初始化值的值;例如,我们可以将奖励设置为20并用范围内的随机数初始化值[1,7]

  • 我们将达到期望的最终状态的奖励设置为与价值函数的随机初始化值相当的值;例如,我们可以将奖励设置为5并用范围内的随机数初始化值[1,10]

据我所知,在第一种情况下,算法很容易快速收敛,因为终端奖励状态的奖励非常高,这将使代理试图达到奖励阶段。

在第二种情况下,如果奖励状态被其他高奖励状态包围,这可能不是真的,代理将尝试进入这些状态。

阶跃惩罚确保了智能体最终达到了终端状态,但这会扭曲智能体的路径并严重影响其收敛时间吗?这在大型状态空间中可能是有问题的,因为我们将无法探索整个状态空间,但是探索常数的存在ϵ可能会通过进入较大的错误奖励状态而使训练脱轨。我的理解正确吗?

1个回答

这里的这个问题似乎有两种不同的想法:

  1. 我们选择奖励值的影响/重要性是什么?
  2. 我们选择初始值估计的影响/重要性是什么(我们如何初始化我们的表Q(s,a)在简单的表格 RL 算法(如 Sarsa 或Q-学习)?

奖励值通常被假定为问题定义的一部分——如果我们使用现有问题定义作为基准,我们不应该修改它。但如果我们自己负责定义问题,我们当然也可以选择奖励值。修改它们确实可能会对 RL 算法学习任务的速度产生巨大影响——但它也可能从本质上改变任务,改变问题的目标,可能改变哪些策略是最优的。


至于我们的值近似表的初始化:默认情况下,我们通常假设一个全0初始化。然而,乐观地初始化值估计是一个相当常见的技巧(在表格 RL 算法中,没有函数逼近)选择更高的初始Q(s,a)比可能的值估计值(甚至选择高于真实值可能是已知上限的值)。这通常是有益的——在具有稀疏奖励(例如,某处的单个遥远目标)和负奖励(即成本)的大型网格世界中,每一步都会产生负奖励(即成本)——因为它激励了对尚未尝试的状态-动作对的探索

假设您的网格世界与每个时间步相关联的负奖励,并且最佳策略是让您尽快到达遥远目标的策略。我摔倒Q(s,a)被初始化为0(或者更糟的是,负值),你的代理可能很快就会知道它所做的一切都是同样糟糕的,并且卡在起始位置附近。我摔倒Q(s,a)值被乐观地初始化(为大的正值),如果它只是试图导航到状态-动作空间的未探索部分,你的代理在学习过程中仍然会对它可以实现的目标抱有乐观的期望。