假设这个评价指标是
,那么我们的Policy Network输出的是概率。一般情况下,更常使用log likelihood
。原因的话看这里 Why we consider log likelihood instead of Likelihood in Gaussian Distribution 。
因此,我们就可以构造一个损失函数如下:
怎么理解呢?举个简单的AlphaGo的例子吧。对于AlphaGo而言,f(s,a)就是最后的结果。也就是一盘棋中,如果这盘棋赢了,那么这盘棋下的每一步都是认为是好的,如果输了,那么都认为是不好的。好的f(s,a)就是1,不好的就-1。所以在这里,如果a被认为是好的,那么目标就是最大化这个好的动作的概率,反之亦然。
这就是Policy Gradient最基本的思想。
5 另一个角度:直接算
f(s,a)不仅仅可以作为动作的评价指标,还可以作为目标函数。就如同AlphaGo,评价指标就是赢或者输,而目标就是结果赢。这和之前分析的目标完全没有冲突。因此,我们可以利用评价指标f(s,a)来优化Policy,同时也是在优化的同时优化了f(s,a).那么问题就变成对f(s,a)求关于参数的梯度。下面的公式直接摘自Andrej Karpathy的blog,f(x)即是f(s,a)
从公式得到的结论可以看到正好和上一小结分析得到的目标函数一致。
因此,Policy Gradient方法就这么确定了。
6 小结
本篇blog作为一个引子,介绍下Policy Gradient的基本思想。那么大家会发现,如何确定这个评价指标才是实现Policy Gradient方法的关键所在。所以,在下一篇文章中。我们将来分析一下这个评价指标的问题。