强化学习中的策略是什么?

What is a policy in reinforcement learning?

我见过这样的话:

A policy defines the learning agent's way of behaving at a given time. Roughly speaking, a policy is a mapping from perceived states of the environment to actions to be taken when in those states.

但还是没完全看懂。强化学习中的策略到底是什么?

这个定义是正确的,虽然如果你是第一次看到它,但不是很明显。让我这样说吧:一个策略就是一个代理的策略

例如,想象一个机器人穿过房间的世界,任务是到达目标点 (x, y),并在那里获得奖励。这里:

  • 一个房间就是一个环境
  • 机器人的当前位置是状态
  • A policy 是代理为完成此任务所做的工作:

    • 愚蠢的机器人只是随机四处游荡,直到它们意外地出现在正确的地方(策略 #1)
    • 出于某种原因,其他人可能会学会沿着大部分路线(政策 #2)沿着墙壁走
    • 智能机器人在 "head" 中规划路线并直奔目标(策略 #3)

显然,有些策略比其他策略更好,有多种方法可以评估它们,即状态值函数动作值函数。 RL 的目标是学习最佳策略。现在定义应该更有意义了(注意在上下文中时间更好地理解为状态):

策略定义学习代理在给定时间的行为方式。

正式

更正式地说,我们应该首先将马尔可夫决策过程(MDP)定义为元组(SAPRy),其中:

  • S 是状态的有限集
  • A 是一组有限的动作
  • P是一个状态转移概率矩阵(每个当前状态和每个动作结束在一个状态的概率)
  • R 是奖励函数,给定一个状态和一个动作
  • y是折扣系数,在0到1之间

然后,策略 π 是给定状态下动作的概率分布。这是当代理处于特定状态时每个动作的可能性(当然,我在这里跳过了很多细节)。此定义对应于您定义的第二部分。

我强烈推荐 David Silver's RL course 在 YouTube 上播放。前两节课特别关注 MDP 和政策。

简而言之,在最简单的情况下,策略 π 是一个将状态 s 和 returns 动作 a 作为输入的函数。即:π(s) → a

这样,代理通常使用策略来决定在给定状态 s 时应执行什么操作 a

有时,策略可以是随机而不是确定性。在这种情况下,策略 returns 不是返回一个唯一的动作 a,而是一组动作的概率分布。

一般来说,任何 RL 算法的目标都是学习实现特定目标的最优策略。

这是一个简洁的答案:策略是代理的'thinking'。它是当您处于某种状态 s 时,代理现在应该采取哪个操作 a 的映射?您可以将策略视为查找 table:

state----action----probability/'goodness' of taking the action
  1         1                     0.6
  1         2                     0.4
  2         1                     0.3
  2         2                     0.7

如果您处于状态 1,您将(假设采用贪婪策略)选择操作 1。如果您处于状态 2,您将选择操作 2。