### 强化学习中值迭代的基础情况

我正在尝试为“3×4有风的网格世界”MDP实现值迭代,并且在理解Bellman方程及其实现方面遇到了困难。

我正在使用的Bellman方程形式如下

输入图片说明

假设这是我正在处理的网格世界,我想找到标记为X的瓷砖的值(U(s))。

输入图片说明

(图片快照来自这个视频)

除了终止瓷砖外,所有瓷砖的奖励都被定义为零,并且还假设如果一个人试图朝某个方向移动,实际移动可能会以小概率发生在与预定移动成直角的方向上。(如果您试图从x向下移动,您将以0.8的概率向下移动,但以0.1的概率向左或向右移动)

现在,当您尝试为位置x解开Bellman方程时,对于“向上”动作,有三个邻居(U(s'))。原始位置本身(因为它无法向上移动)以0.8的概率,它右侧的+1状态以0.1的概率,以及它左侧的瓷砖也以0.1的概率。这些构成了s'状态。

因此,一个查找状态X值的函数将递归调用所有s'状态。+1状态不是问题,因为它是一个终止瓷砖,这将构成基础情况。但其中一个状态是原始状态X本身,我不明白这种情况在递归调用中如何终止。同样的问题也适用于第三个瓷砖;在调用了它的所有邻居之后,它是否会终止?


回答:

值迭代本身不会终止;只要γ < 1 且奖励不是无限的,它就会渐进地收敛到正确的值。

在实践中,您可以在折扣项(在每次递归级别上以γ指数增长)变得如此之小时终止,继续计算下一个U(s')将不会对您已经累积的值产生影响。

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中创建了一个多类分类项目。该项目可以对…

发表回复

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