这里其实我们真正涉及的是优化策略的方法,而不是考虑优化值函数。
在Lecture 6中我们优化的是值函数,一旦我们得到了准确的值函数,我们就可以通过值函数的好坏来选择动作,比如我们依据贪心算法得到策略。
那我们能否直接对策略进行优化呢?我们之前说了用参数逼近值函数,那我们是否也可以用参数逼近策略呢,对策略的分布进行处理。也就是将状态输入到参数构成的神经网络等类似的东西里面去,然后直接输出动作应该具有的分布。由此强化学习的三大主题思想就被提出来了:
如果我们通过环境交互获得了奖励,那么我们可以通过神经网络中计算梯度的方法,使得下一次这个动作被选择到的概率上升,也叫做梯度上升。其优点缺点对比如下图所示:
我们现在考虑一个简单的游戏问题(石头、剪刀、布):
如果对方所出的一直是石头,那么我们搜索一个确定性策略(deterministic policy)将会变的很简单,但是如果对方的策略是随机的,那我们要处理这个问题就会变得很难,其中还会涉及到纳什均衡问题。
那我们现在来考虑一下基于策略的强化学习方法如何定义目标函数,回想一下强化学习的目标函数是什么?是使得整个游戏回合能够获取的奖励最大。d的话就是动作分布,乘以对应的奖励,奖励越大,被更新的幅度就会越大。
现在的问题就变成了一个优化的问题,我们需要使得我们的目标函数最大化,针对这个问题我们有不同的优化方法,下面这张ppt里面有不同的优化方法:
我们通常都会使用梯度的方法,沿着目标函数梯度方向调整策略函数。下面这个公式我之前理解的都是重要性采样,在原视频里面作者提到最大似然比,不是很懂。
我们考虑最后一层输出:
Score Function表示的就是当前的输出减去输出动作的均值,这样的话其实是更能够比较哪个动作的好坏的。我们也会使用高斯函数来对其进行动作的选择。
我们再看一下一步马尔可夫决策过程,定义策略梯度的损失函数:
我们现在的目标就是要去找到最优策略的参数,来使得奖励函数最大。
本文是自己学习David Silver课程的学习笔记:原视频可以在油管或者B站上搜到。
PPT的连接如下:http://www0.cs.ucl.ac.uk/staff/D.Silver/web/Teaching.html。网速慢的话可以点击这里。