策略迭代与值迭代

在强化学习中,我试图理解策略迭代和值迭代之间的区别。虽然有一些普遍的回答,但我有两个具体的问题找不到答案。

1) 我听说策略迭代是“向前工作”的,而值迭代是“向后工作”的。这是什么意思?我以为这两种方法都只是处理每个状态,然后查看它可以到达的所有其他状态,并从中计算值——要么通过对策略的动作分布进行边缘化(策略迭代),要么通过就动作值取argmax(值迭代)。那么为什么会有每种方法“移动”的“方向”概念呢?

2) 策略迭代在策略评估期间需要一个迭代过程来找到值函数——然而,值迭代只需要一步。这是为什么不同的?为什么值迭代只需一步就能收敛?

谢谢!


回答:

由@用户提供的回答是正确的且相当完整的,但是我想补充一个图形解释来说明值迭代和策略迭代之间的区别,这可能会帮助回答您问题的第二部分。

两种方法,PI和VI,都遵循基于广义策略迭代的相同工作原理。这基本上意味着它们在改进策略(这需要知道其值函数)和计算新的、改进后的策略的值函数之间交替进行。

enter image description here

在这个迭代过程结束时,值和策略都收敛到最优状态。

然而,人们注意到不必精确计算完整的值函数,只需一步即可实现收敛。在下图中,(b)代表策略迭代执行的操作,其中计算了完整的值函数。而(d)展示了值迭代的工作方式。

enter image description here

显然,这两种方法的表示都是简化的,但它突出了每个算法背后的关键思想的区别。

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注