强化学习-价值迭代

1. 前言

策略迭代最后咱们发现策略迭代的收敛过程比较慢,那咱们就会想有没更好更快的迭代方法,今天咱们介绍的价值迭代就是另外一种寻找最优策略的解决方案。html

2. 动态规划

价值迭代须要用到动态规划的思想,那咱们简单的回顾下动态规划的特色。算法

  1. 最优子结构:是指一个子问题的最优解是能够获得的。对应蛇棋的问题,能够理解为是“从某个位置出发行走一步可以得到的最大奖励”的问题,因为只走一步,这个问题很容易计算。
  2. 重复子结构:是指一个更大的问题是由一些小问题组成的,而求解不一样的大问题时可能会用上同一个子问题,子问题被重复利用,计算量也就减小了。对应蛇棋的问题,能够理解为是“从某个位置出发行走两步可以得到的最大奖励”的大问题,利用前面已经获得的子问题,这个大问题能够用伪代码表示:函数

    “某个位置走两步的最大奖励”=max([这一步的奖励+从这个位置出发走一步得到的最大奖励 for 走法 in 可能的走法])优化

3. 价值迭代原理

理解价值迭代原理的思路,能够从策略迭代的缺点出发。spa

  1. 策略迭代的策略评估须要值函数彻底收敛才进行策略提高的步骤,能不能对策略评估的要求放低,这样若是能够实现的话,速度会有所提高。
  2. 咱们在策略迭代中关注的是最优的策略,若是说咱们找到一种方法,让最优值函数和最优策略同时收敛,那样咱们就能够只关注值函数的收敛过程,只要值函数达到最优,那策略也达到最优,值函数没有最优,策略也尚未最优。这样能简化了迭代步骤。

价值函数就是经过以上2点优化思路开发出来的,具体证实读者能够本身搜索。3d

3.1 价值迭代公式

咱们继续先回顾策略迭代的公式htm

  • 策略评估
    \[ v^T_{\pi}(s_t)=\sum_{a_t}\pi^{T-1}(a_t|s_t)\sum_{s_{t+1}}p(s_{t+1}|s_t,a_t)[r_{a_t}^{s_{t+1}} + \gamma * v^{T-1}_{\pi}(s_{t+1})]\;\;\;\;\;\;(1) \]
  • 策略提高
    \[ q^T_{\pi}(s_t,a_t)=\sum_{s_{t+1}}p(s_{t+1}|s_t,a_t)[r_{a_t}^{s_{t+1}} + \gamma * v^T_{\pi}(s_{t+1})]\;\;\;\;\;\;(2) \]
    \[ \pi^{T+1}(s) = argmax_aq^T_{\pi}(s,a)\;\;\;\;\;\;(3) \]

经过(2)(3)咱们获得
\[ \pi^{T+1}(s) =argmax_{a} \sum_{s_{t+1}}p(s_{t+1}|s_t,a_t)[r_{a_t}^{s_{t+1}} + \gamma * v^T_{\pi}(s_{t+1})]\;\;\;\;\;\;(4) \]blog

有由于值函数和策略时同步提高的,这时候(4)就能够替换为
\[ v^{T+1}(s) =max_{a} \sum_{s_{t+1}}p(s_{t+1}|s_t,a_t)[r_{a_t}^{s_{t+1}} + \gamma * v^T_{\pi}(s_{t+1})]\;\;\;\;\;\;(5) \]开发

公式(5)就是咱们价值迭代的推导公式。get

价值迭代的大概过程:

image

4. 广义策略迭代

  • 策略迭代法的中心是策略函数,它经过反复执行“策略评估+策略提高”两个步骤使策略变得愈来愈好;
  • 价值迭代法的中心是值函数,它经过利用动态规划的方法迭代更新值函数,并最终求出策略函数。由此能够看出二者有以下特色。
  1. 两个方法最终都求出策略函数和值函数。
  2. 最优的策略函数都是由收敛的值函数获得的。
  3. 值函数经过Bellman公式收敛。

由此发现一个关键:二者都须要训练和更新策略函数和值函数,只是侧重点不一样。策略迭代的核心是策略,为了提高策略,值函数能够求解得准确,也能够求解得不那么准确;价值迭代的核心是价值,算法的核心部分根本没有出现与策略有关的内容,直到算法最后经过值函数求出策略

两种方法都十分看重本身关心的那部分,能够选择忽略另外一部分,所以能够看出两个方法都比较极端。既然找到了两个极端的方法,可不能够找到两种方法的中间地带呢?固然能够,这就是本小节要介绍的广义策略迭代法。

广义策略迭代法:就是定义一个迭代算法族,其中的算法都是由策略迭代和价值迭代算法组合而成的。组合的方法有不少,能够造成的方法也有不少,而前面提到的两种算法是广义策略迭代法的一种特例。因为其中的算法不少,这些算法中颇有可能存在一些比前面两种算法速度更快的方法。

相关文章
相关标签/搜索