深度强化学习cs294 Lecture7: Value Function Methods
回忆上节课所讲的内容,关于actor-critic算法的讲解。将policy gradient方法中目标函数梯度的计算进行一些替换,加入了bootstrapping减小方差,定义了无限步长形势下的问题描述让算法支持在线形式等等。
Value-based Methods
这节课要讲的是不基于策略梯度的方式,而直接利用值函数,也就是critic的部分,来得到最终的策略。首先回忆advantage的定义,指的是当前动作比平均动作好的多少,而如果选择advantage函数最大的动作,这个动作肯定等于或好于任何其它动作,无论当前采用的策略是什么。也就是说这样做能得到比较好的策略。
基于每次都能得到更好的策略的想法,我们可以得到一个简单的策略,那就是policy Iteration策略。一共两步,第一步评估advantage函数,第二步基于advantage函数改进策略。
但是由于advantage函数需要由 V π V^{\pi} Vπ计算得到,因此我们需要先计算 V π V^{\pi} Vπ。
先假设状态空间和动作空间都是比较小且是离散形式的,因此就可以将 V π V^{\pi} Vπ函数当做是一个表格来进行维护。从一个初始值开始,利用自举的形式进行不断地更新。
假如我们的策略是确定性的且每次只选择最优的一个动作,那么就可以将其简写为上图最下方的等式。而这个计算的过程也叫作policy evaluation。
这个计算过程利用了动态规划的思想,而且实际上我们可以把这两个步骤合二为一,直接跳过策略的部分来计算状态值函数。
想要做到这样的效果要先引入状态动作值函数 Q π ( s , a ) Q^{\pi}(s,a) Q