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

我正在尝试为“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

Keras Dense层输入未被展平

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

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

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

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

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

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

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

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

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

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

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

发表回复

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