第3章给出了学习算法的基本思路:策略评估和策略改善。其中策略评估用到了以下的公式(4.1):
策略改善则用了最简单的贪婪策略(4.2):
为什么要用蒙特卡洛算法?先看公式4.1和4.2,如果状态转移概率已知,那么利用上面两式就可以得到最优策略。如果模型
是未知的?式(4.1)不能再用,式(4.1)仍然可以用,因为该式与模型无关。
如果想要利用整个框架,必须找到一种方法来替代公式(4.1)的策略评估。
---->利用本章蒙特卡洛方法和第5章的时间差分方法。
4.1 蒙特卡洛算法原理
当模型是未知的,即智能体在状态s时并不知道转移到下一个状态s'的概率。但是,智能体在状态s通过动作a与环境进行交互,环境会根据根据状态转移给出下一个时刻的状态,但环境并不会直接给出状态转移的概率。也就是说,在模型未知时,我们只能通过一系列的动作,得到一系列的状态序列。
其中为终止状态。
至此,我们已经拥有当前的策略,以及根据策略Π得到的一连串数据,缺少状态转移概率
,而想要评估策略Π的值函数,该怎么做?
既然不能使用式(4.1),那么回到值函数的定义式(4.3)
式4.3是期望的式子,其中表示一次实验数据,即为
G(τ)为累积折扣回报,为产生轨迹
的概率分布,我们不知道值函数的概率分布,所以不能用积分公式来求值函数。但我们有数据
就可以计算在策略Π的作用下,经过一次实验τ后状态St处的折扣累积回报G(τ)。
蒙特卡洛的方法就是用策略Π做很多次实验,从而可以的带状态处的很多个折扣累积回报,那么公式(4.3)的积分公式,就可以用代数平均来计算。即式(4.4):
那有了式4.4和式4.2,就可以进行策略评估和策略改善了吗?
还不行,因此公式4.2,我们只知道每个状态处的行为-值函数q(s,a),而不是状态值
行为值函数的定义为式(4.5):
当模型P已知时,值函数可以由式(4.5)计算出来。但模型未知时,该怎么办?
还是需要行为-值函数的原始定义,式(4.6):
式(4.6)的计算用前面的蒙特卡洛进行估计。即式(4.7):
对于无模型的强化学习算法,利用式4.7和式4.2就可以实现策略评估和策略改善。
1.关于值函数和行为值函数
值函数定义:
行为值函数定义:
即在状态,并采取了动作a之后折扣累积回报的期望。
举一个简单的例子,利用策略Π产生了如下两组数据:
那么状态值函数的计算公式为
行为值函数可以分为两个:
2.关于值函数的定义