首页 文章

理解政策和 Value 功能强化学习

提问于
浏览
0

你有一个政策,它实际上是我所有州的行动的概率分布 . Value 函数决定了实现最高回报的最佳行动方案 .

所以我有一个随机的政策 . 我得到了 Value 功能 . 我根据值函数使用新的分发更新我的策略 . 我获得了这个新更新策略的值函数,并再次重新评估 .

根据这个定义,我无法理解 Value 迭代将如何运作,我认为这是对 Value 函数的误解 .

Value 函数不是最好的行动方案,它只是一个决定奖励的行动方针吗?策略迭代是否只是寻找一个值函数,它提供比当前奖励更高的奖励,然后立即更新,为我的状态(新策略)提供新的动作分布,然后迭代地为每个状态执行此操作直到收敛?

在这种情况下,值迭代是在序列中的每个状态下寻找单个最佳可能的动作(而不是更好的一个)?我在这里努力理解为什么不更新政策?

我对政策和 Value 功能的理解是否正确?

非常感谢!

我认为我对政策的理解肯定是不正确的:如果一项政策仅仅是对我所有州可能采取的行动的分配,那么我不完全确定它的“更新”意味着什么 . 如果只是简单地更新分布,那么如果值处理“更差”的分布,那么值迭代究竟是如何工作的,因为初始化时策略最初是不随机的?我无法理解这些会如何收敛并且同样好?

2 回答

  • 1

    你有一个政策,它实际上是我所有州的行动概率分布 .

    Value 函数决定了获得最高回报的最佳行动方案 .

    不可以 . 值函数告诉你 for a given policy ,在 s 状态下采取行动 a 的预期累积奖励是多少 .

    暂时忘记值迭代和策略迭代 . 您应该尝试理解的两件事是政策评估和政策改进 .

    • 在政策评估中,您可以找出给定政策的状态值函数(它告诉您您在某个州的预期累积奖励,然后根据该政策行事) . 对于每个州,您查看所有邻国并计算该州政策的预期 Value (通过政策概率加权邻居的 Value 总和) . 你必须一遍又一遍地遍历所有这样做的状态 . 这收敛于该政策的真实国家 Value 函数的限制(实际上,当变化变小时停止) .

    • 在策略改进中,您检查一个状态值函数,并在每个状态中询问根据值函数我可以采取的最佳操作是什么?当前策略采取的操作可能不会导致最高 Value 的邻居 . 如果不这样做,我们可以通过采取行动以达到更好的邻居来制定更好的政策 . 结果的新政策更好(或者最坏的情况是相同的) .

    政策迭代只是重复的政策评估和政策改进 .

    在值迭代中,您将截断评估步骤 . 因此,不是按照完整的评估过程进行收敛,而是执行一步查看邻近状态,而不是根据策略采取预期,而是通过存储最大邻近值立即进行策略改进 . 评估和改进被混淆在一起 . 您反复重复此污迹步骤,直到值的变化非常小 . 为什么这种收敛的主要思想是相同的;您正在评估该政策,然后对其进行改进,直至无法再对其进行改进 .

    您可以通过多种方式了解策略和值迭代 . 您可以在“强化学习:第二版”中详细了解这一评估和改进框架 . 我遗漏了一些关于折扣的重要细节,但希望现在整体情况更加清晰 .

  • 0

    编辑:维基百科很好地解释了所有这些https://en.wikipedia.org/wiki/Markov_decision_process#Value_iteration

    Sutton在这个主题上也有很多资源可以解释比下面更好:

    http://incompleteideas.net/sutton/book/ebook/node34.html
    http://incompleteideas.net/sutton/book/ebook/node43.html
    http://incompleteideas.net/sutton/book/ebook/node44.html
    

    我无法用措辞说出来,但我认为你的 Value 功能和政策混在了一起 .

    值函数为您提供每个州的值 . 使用贝尔曼方程,它看起来像这样 .

    V(S) = max_a[R(s,a) + gamma * ∑_s'T(s,a,s')V(s')]

    如果特定州的 Value 是给您奖励加上折扣奖励的最大行动 . 请注意,它有一个 max 而不是 argmax . 这是因为它为您提供了 Value .

    另一方面,该政策是给予该政策的预期折扣奖励的argmax . 策略返回最佳操作,而值函数给出a的值州 . 政策功能如下:

    optimal_policy(s) = argmax_a ∑_s'T(s,a,s')V(s')

    正如您所看到的那样,最优策略将转向产生最高值的操作 .

    考虑到这一点,值迭代将从每个状态的初始实用程序开始,然后运行:

    V_t+1(s) = R(s) + gamma * max_a (∑_s'T(s,a,s')V_t(s'))

    其中t是时间步长,s'是下一个可能的状态 . 这将收敛,因为奖励是国家的“真实”,将我们拉向正确的方向 . 有定理可以证明这一点,但这超出了问题的范围 .

    另一方面,策略迭代看起来像这样:

    optimal_policy_t+1(s) = argmax_a (∑_s' T(s,a,s')V_t(s')

    其中a是所有可能的动作,V_t是值 . 更新值类似于:

    V_t+1(s) = R(s) + gamma * max_a(∑_s' T(s,policy_t(s),s')V_t(s')

    因为该政策代表了当时步骤中的最佳行动 . 策略迭代的运行时间为O(N ^ 3) .

相关问题