- 回顾actor-critic算法
actor-critic 算法相比策略梯度policy gradient来说,最关键的地方在于训练了Value network来计算Advantage Function 来辅助 Actor(policy network)来减少策略梯度的方差,毕竟我们之前说过policy gradient最大的问题就是方差大。
policy gradient的问题是方差大,那我们干脆不用policy gradient了,但如果我们的critic很准确的话,那从critic的判断中选择一个最好的policy就可以了。
- Policy iteration 策略迭代
整个过程可以分两步:
第一步: 估计
第二步:在当前状态s下,选择那个能让最大的作为policy。
第二步非常容易,重要的是第一步如何做,我们展开
1.1 Dynamic programming 动态规划
Dynamic programming是一种很简单的state value函数计算方法,只适用于状态转移矩阵已知的情况。假设已知 p(s′|s,a)p(s{'}|s,a)p(s{'}|s,a) ,s和a是离散的并且离散空间很小。举一个 4×44\times44\times4 迷宫例子,这个迷宫有16个state,4个action,相应的状态转移矩阵是一个 16×16×416\times16\times416\times16\times4 的tensors。这个tensors可以用一个table来存储,如下图所示。
1.2 更简化
1.3 Fitted value iteration
- Fitted Q iteration algorithm
我们来看fitted value iteration的步骤1。该步骤其实很麻烦:max操作的对象是action
a
i
,不同的action
a
i
所产生的状态
s
i
′
所对应的state value值是不同的,导致我们需要状态转移矩阵。但是在很多情况下,状态转移矩阵可不好估计。那么,我们需要用一些trick来摆脱状态转移矩阵。这个trick其实很简单:fitted value iteration算法的根本目的是拟合value函数,我们改为拟合Q函数。进而得到下面的fitted q iteration算法:
- Value function learning theory
这部分关于value iteration的收敛问题。
tabular case
non-tabular case