在 OpenAI 的健身房中,环境中的 'prob' return 与什么有关?

In OpenAI's gym, what does the 'prob' return from an environment relate to?

通过 David Silverman 的讲座,现在尝试做一些练习来巩固知识,我发现我不明白返回的概率实际上指的是什么。在政策评估中,我们发现

$v_{k+1}(s) = \sum_{a\in A} \pi(a|s)(R_s^a + \gamma\sum_{s' \in S}P^a_{ss'}v_k(s'))$

并且我已经在 Python 中为 gridworld 环境成功实现了这个;


def policy_eval(policy, env, discount_factor=1.0, theta=0.00001):
    V = np.zeros(env.nS)
    while True:
        delta = 0
        for state in range(env.nS):
            v = 0
            for action in range(env.nA):
                for prob, next_state, reward, done in env.P[state][action]:
                    v += policy[state][action] * prob * (reward + discount_factor * V[next_state])
            delta = max(delta, abs(v - V[state]))
            V[state] = v

        if delta < theta:
            break
    return np.array(V)

我知道 policy[state][action] 是在该状态下执行该操作的概率,reward 是在该状态下执行该操作的奖励,其他两个不言自明。我看不出 prob 如何适应以及它甚至 does/refers 到什么。

在对 gym 和值迭代进行更多尝试后,我发现概率 return 与执行某些操作导致某些我们无法控制的事件的概率有关。向我展示它真正含义的例子是赌徒问题。我们有一个赌徒,他有一些钱,如果赌到 100 美元,他就赢了,否则他必须在 0 和他有的钱之间下注。如果正在玩的游戏是正面或反面,则概率为 0.5,表示 50% 的时间我们加倍下注,50% 的时间我们输掉所有赌注。因此,我们无法控制一个动作(一个动作是下注)之后发生的事情。

希望这对遇到同样困境的其他人有所帮助