Monte Carlo Exploring Starts 如何运作?

人工智能 强化学习 q学习 蒙特卡罗方法
2021-11-15 11:01:34

流程图

我无法理解流程图中的第五步。

对于第 5 步,“通过取平均回报来更新 Q 函数”令人困惑。

据我了解,Q 函数基本上是放在一个表(Q 表)中的状态-动作对值。更新它意味着对各个状态及其各自动作的状态-动作对值进行调整(例如,状态 1 动作 1、状态 3 动作 1、状态 3 动作 2,等等)。

不过,我不确定“平均回报”是什么意思。是不是要求我取平均收益后X剧集?据我了解,回报是整个剧集的奖励总和(因此,AVG=x 剧集的回报总和/x)。

我该怎么处理那个'平均'?

当他们说“更新 Q 函数”时,我有点困惑,因为 Q 函数包含许多必须更新的参数(单个状态-动作对值),我不确定他们指的是哪一个。

计算平均收益有什么意义?由于特定状态和特定动作的状态-动作对值将始终相同(例如,如果我总是在状态 4 中采取动作 3,我将永远得到 value=2)

2个回答

您将计算每一集的回报,然后您将更新动作值或(s,一个) 作为每集的平均值。使用 open AI gym中的二十一点示例并使用折扣因子 1,您会得到以下结果

第 1 集 [{'state': (22, 10, False), 'reward': -1, 'action': 1}, {'state': (17, 10, False), 'reward': 0, ' action': 1}, {'state': (12, 10, False), 'reward': 0.0, 'action': 1}]

((22,10,F一个lse),0)=-1

((17,10,F一个lse),1)=-1

((12,10,F一个lse),1)=-1

第 2 集 [{'state': (21, 10, False), 'reward': 1, 'action': 0}, {'state': (17, 10, False), 'reward': 0, 'action ': 1}, {'state': (12, 10, False), 'reward': 0.0, 'action': 1}]

((21,10,F一个lse),0)=1

((17,10,F一个lse),1)=0

((12,10,F一个lse),1)=0

为了((17,10,F一个lse),1)((12,10,F一个lse),1)是平均回报,即第一集为 -1,第二集为 1。

(s,一个)表示-v一个le对于状态-动作对。这意味着如果我们从状态开始的预期回报s, 采取行动一个,并根据我们目前遵循的任何政策行事。

假设我们处于状态s0, 采取行动一个0. 为了计算回报,我们需要从我们登陆后的任何状态遵循我们当前的政策一个0,直到剧集结束,并总结我们一路上获得的奖励(或折扣奖励)。

为什么要平均回报?
因为我们希望对状态-动作对多次执行此操作并计算所有此类情节的平均值。

为什么要多次?
一般来说,环境和转换函数会有一些随机性,我们不会每次都得到相同的奖励。

为什么要计算这个?
这个想法很简单。由于我们的目标是最大化平均回报,如果我们计算从状态开始的所有可能动作的 Q 值s0,然后我们可以比较这些值并决定从状态中采取哪种行动最有利s0.

由于这是一种表格方法,当他们说更新 Q 函数时,他们只是意味着更新 Q 值。

例如,假设我们处于状态s0并且可以采取行动一个0,一个1, 和一个2. 我们首先计算 Q 值(s0,一个0),(s0,一个1),(s0,一个2)对,然后我们将选择这三个中具有最大 Q 值的动作。