model-free强化学习-Policy-based

Policy-based

将神经网络作为一个Actor,输入是观测observation,表示形式是一个向量或一个矩阵。输出是每个行为对应的概率,类似于分类问题中的判断类别,会对应每个类别有个概率,如下如所示:
model-free强化学习-Policy-based
考虑一个episode τ={s1,a1,r1,s2,a2,r2,...,sT,aT,rT,}\tau=\{s_{1},a_{1}, r_{1},s_{2},a_{2}, r_{2},...,s_{T},a_{T}, r_{T},\}。对于参数为θ\theta的Actor,产生这个episode的概率为:
p(τθ)=p(s1)p(a1s1,θ)p(r1,s2s1,a1)p(a2s2,θ)p(r2,s3s2,a2)...=p(s1)t=1Tnp(atst,θ)p(rt,st+1st,at)    (1)p(\tau|\theta)=p(s_{1})p(a_{1}|s_{1},\theta)p(r_{1},s_{2}|s_{1},a_{1})p(a_{2}|s_{2},\theta)p(r_{2},s_{3}|s_{2},a_{2})...\\ =p(s_{1})\prod_{t=1}^{T_{n}}p(a_{t}|s_{t},\theta)p(r_{t},s_{t+1}|s_{t},a_{t})\ \ \ \ (1)
其中p(s1)p(s_{1})p(rt,st+1st,at)p(r_{t},s_{t+1}|s_{t},a_{t})部分不是由actor决定的,p(atst,θ)p(a_{t}|s_{t},\theta)是actor对于属于观测sts_{t}所预测的结果为ata_{t}的概率。对于这个τ\tau,产生的奖励值为R(τ)=t=1TnrtR(\tau)=\sum_{t=1}^{T_{n}}r_{t}
使用actor玩NN次游戏,也就是在p(τθ)p(\tau|\theta)分布下NN次抽样τ\tau,得到NN个episode {τ1,τ2,...,τN}\{\tau^{1},\tau^{2},...,\tau^{N}\},得到的奖励的期望为:
Rˉθ=τR(τ)p(τθ)\bar{R}_{\theta}=\sum_{\tau}R(\tau)p(\tau|\theta)
我们的优化目标是最大化期望奖励:
θ=argmaxθRˉθ\theta^{*}=\arg\max_{\theta} \bar{R}_{\theta}
求解梯度:
Rˉθ=τR(τ)p(τθ)=τR(τ)p(τθ)p(τθ)p(τθ)=τR(τ)p(τθ)logp(τθ)1Ni=1NR(τn)logp(τnθ)=1Nn=1NR(τn)log[p(s1n)t=1Tp(atnstn,θ)p(rtn,st+1nstn,atn)]=1Nn=1NR(τn)t=1Tlogp(atnstn,θ) #ignore the term not related θ=1Nn=1Nt=1TR(τn)logp(atnstn,θ)\nabla\bar{R}_{\theta}=\sum_{\tau}R(\tau)\nabla p(\tau|\theta)=\sum_{\tau}R(\tau)p(\tau|\theta)\frac{\nabla p(\tau|\theta)}{p(\tau|\theta)}\\ =\sum_{\tau}R(\tau)p(\tau|\theta)\nabla \log p(\tau|\theta)\approx \frac{1}{N}\sum_{i=1}^{N} R(\tau^{n})\nabla \log p(\tau^{n}|\theta)\\ = \frac{1}{N}\sum_{n=1}^{N} R(\tau^{n})\nabla \log[ p(s_{1}^{n})\prod_{t=1}^{T}p(a_{t}^{n}|s_{t}^{n},\theta)p(r_{t}^{n},s_{t+1}^{n}|s_{t}^{n},a_{t}^{n})]\\ = \frac{1}{N}\sum_{n=1}^{N} R(\tau^{n}) \sum_{t=1}^{T}\nabla\log p(a_{t}^{n}|s_{t}^{n},\theta) \ \# ignore\ the\ term\ not\ related\ \theta\\ = \frac{1}{N}\sum_{n=1}^{N} \sum_{t=1}^{T}R(\tau^{n}) \nabla\log p(a_{t}^{n}|s_{t}^{n},\theta)
使用梯度提升更新参数:θθ+ηRθˉ\theta \leftarrow \theta+\eta\bar{R_{\theta}}

Actor参数θ\theta的优化可以从分类的角度去优化。
将每一个τ\tau分解产生多个(s,a)(s,a),每一个(s,a)(s,a)都是一个训练数据。
model-free强化学习-Policy-based
model-free强化学习-Policy-based
最大化优化交叉熵:maxi=13yi^logyi\max \sum_{i=1}^{3}\hat{y_{i}}\log{y_{i}}
对于一个数据(s,a=left)(s,a=left),对应的交叉熵为:logp(a=lefts)\log p(a=left|s)
此时对于NNτ\tau,对应的梯度为:
1Nn=1Nt=1Tnlogp(atnstn,θ)\frac{1}{N}\sum_{n=1}^{N}\sum_{t=1}^{T_{n}}\nabla \log p(a^{n}_{t}|s^{n}_{t},\theta)
每一个训练数据要通过R(τ)R(\tau)进行加权,因为奖励大的数据占的权重也大,经过加权之后的误差与上面同奖励得到的梯度一致了
1Nn=1Nt=1TnR(τn)logp(atnstn,θ)\frac{1}{N}\sum_{n=1}^{N}\sum_{t=1}^{T_{n}}R(\tau^{n})\nabla \log p(a^{n}_{t}|s^{n}_{t},\theta)
R(τ)R(\tau)通常都是正数,为了防止某些动作没有被抽样到,减去一个噪声常数bb,确保模型能够发生各种行为:
1Nn=1Nt=1Tn(R(τn)b)logp(atnstn,θ)\frac{1}{N}\sum_{n=1}^{N}\sum_{t=1}^{T_{n}}(R(\tau^{n})-b)\nabla \log p(a^{n}_{t}|s^{n}_{t},\theta)
如果一开始模型抽样到的所有行为都会产生了正反馈调节,那么这些行为后续出现的概率将增大,其他行为的概率将会减小,进而使得接下来的更新更偏向于上一轮抽样到的样本。减去一个噪声常数确保了Actor对一些奖励小的行为进行抑制,确保大的奖励才能更新,消除了不公平现象。