版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_41679411/article/details/82350432
在基础篇里我们已经介绍了,当我们得到一个最优值函数的时候,直接在每个状态下取使
q(s,a)
值最大的action就能得到一个最优的策略,于是一个求解最优策略的问题可以完完全全等效于一个寻找最优值函数的问题。
本节就来探究寻找最优值函数的方法,它的基本思想是不直接采取行动,而是评价一个行为的好坏进而改善策略
基于蒙特卡洛方法的理论
回忆状态-行为值函数:
qπ(s,a)=Eπ[∑k=0∞γkRt+k+1|St=s,At=a](8)
以及
v(s)=E[Rt+1+γv(St+1)|St=s](9)
注意到两者都是数学期望,于是在无模型的时候我们可以利用蒙特卡洛这种非常自然的想法估计状态值函数和状态行为值函数。具体来说就是,我们固定住策略
π
,我们利用这个固定的
π
与环境交互,从而得到一系列的回报,拿这些回报的均值作为期望的估计。
注意到一个有趣的事实,当我们估计到一个“好”的
q
函数时,我们可以利用这个Q function来改善当前的策略,具体来说,我们可以构造一个新的策略
π′(s)=argmaxaq(s,a)
,容易证明这个策略要比之前的策略效果好,由此我们可以得到不断改进策略的一般方法:
拿当前策略去与环境交互,交互得到的信息用来估计q值,在利用估计的q值去更新策略,以此循环,我们将得到一个不断改善的策略序列。
蒙特卡洛方法根据探索策略和评估策略是否为同一个策略可以分为on-policy和off-policy
on-policy
同策略是指与环境交互的策略和评估的策略是同一个策略。比如,要产生数据的策略和需要评价的策略都是
ϵ
-贪心策略
off-policy
异策略是指与环境交互的策略和评估的策略不是同一个策略
在基于策略的强化学习算法里也会有同样的on&off policy 算法
下面再来看一下基于重要性采样的蒙特卡洛算法的理论:
假设某个随机变量X的概率分布为
p(x)
那么有:
E[f]=∫f(z)p(z)dz(3233)
当随机变量的分布非常复杂时,我们无法利用函数变换产生一个来自该分布的样本,进而产生期望的估计,这时,我们可以选用一个概率分布比较简单,很容易产生样本的概率分布
q(z)
,这样原来的期望可以变为:
E[f]=∫f(z)p(z)dz=∫f(z)p(z)q(z)q(z)dz≈1N∑np(zn)q(zn)f(zn),zn∼q(z)(3234)
我们定义权重
ωn=p(zn)/q(zn)
因此有
E[f]=1N∑nωnf(zn)(3235)
基于重要性采样的积分估计为无偏估计,但是重要性采样的方差可以非常大。当原分布与采样分布越接近时,得到的方差越小。一种减小方差的方法是采用加权重要性采样。
E[f]≈∑n=1Nωn∑m=1Nωmf(zn)(3236)
在异策略方法中,行为策略
μ
(用来与环境交互的策略)所产生的轨迹概率分布相当于重要性采样中的
q[z]
,用来评估和改进的策略
π
所对应的轨迹概率分布为
p(z)
,因此利用行为策略
μ
产生的累计函数来评价策略
π
时,需要在累积函数返回值前面乘以重要性权重。
在目标函数
π
下,一次实验的概率为
Pr(At,St+1,...,ST)=∏k=tT−1π(Ak|Sk)p(Sk+1|Sk,Ak)(3237)
在行动策略
μ
下,相应的实验的概率为:
Pr(At,St+1,...,ST)=∏k=tT−1μ(Ak|Sk)p(Sk+1|Sk,Ak)(3238)
因此重要性采样的权重为:
ρTt=∏k=tT−1π(Ak|Sk)μ(Ak|Sk)(3239)
不采取加权的重要性采样为
V(s)=∑t∈τ(s)ρτ(t)tGt|τ(s)|(3240)
加权的重要性采样值函数估计为
V(s)=∑t∈τ(s)ρτ(t)tGt∑t∈τ(s)ρτ(t)t(3241)