策略迭代与值迭代

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

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

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

谢谢!


回答:

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

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

enter image description here

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

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

enter image description here

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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