对贝尔曼(更新)运算符的困惑

机器算法验证 强化学习
2022-03-23 19:09:58

我至少看过 CS229 的两个版本,想知道是否有围绕这个主题的综合资源

第一个版本:

B(V)(s)=V(s)=R(s)+γmaxaAsSPsa(s)V(s)

来自http://cs229.stanford.edu/ps/ps4/ps4.pdf中的问题 5 在问题描述中称为Bellman 更新算子。

第二个版本:

B(V)(s)=V(s)=R(s)+γsSPsπ(s)(s)V(s)
来自https://see.stanford.edu/materials/aimlcs229/problemset4.pdf中的问题 4,在问题描述中称为Bellman 算子。

给定a相当于π(s), 主要区别是一个有一个max另一个没有的运算符,那么哪个是哪个?

2个回答

确切的术语可能因来源而异,但根据我从中了解到的来源,第一个称为贝尔曼最优方程或简称为贝尔曼方程。第二个是贝尔曼期望方程期望方程是线性的V,所以你可以解决V使用简单的线性代数。另一方面,最优性方程是非线性的(由于最大运算),因此没有封闭形式的解……这就是为什么有许多算法可以找到最优解(Q-learning、值迭代、策略迭代等)。

期望方程通常用于评估已知策略π,而最优性方程用于学习最优策略π.

一个很好的资源将是关于强化学习的经典教科书Reinforcement Learning: An Introduction,主要是关于动态规划的部分。另一个很好的资源是伯克利在 EdX 上的人工智能公开课程。

它们名称的不同(Bellman 运算符与 Bellman 更新运算符)在这里无关紧要。您将看到其他名称,例如 Bellman 备份操作员。它们都是一样的。基本上是指更新状态值的操作s从状态可能达到的其他状态的值s.

贝尔曼算子的定义还需要一个策略π(x)表示在状态下可能采取的行动的概率s. 您的示例中 Bellman 运算符的第二个定义意味着更新 state 的值s通过从任何预定义的策略中概率性地采取行动 π. 另一方面,贝尔曼算子的第一个定义只特定于一个策略,即对状态采取行动s给出最高的状态值s有 100% 的概率。

因此,第一个定义可以看作是第二个定义的一个具体例子:第二个定义适用于任何策略,而第一个定义只适用于给出最高值的最优策略。