李宏毅deep reinforcement learning: Policy Gradient

Policy-based approach

  • learning a actor

machine learning for learning an actor

image.png

trajectory: \tau=\left\{s_{1}, a_{1}, s_{2}, a_{2}, \cdots, s_{T}, a_{T}\right\}

其中\nabla \bar{R}_{\theta}是期望值,形式为穷举所有的\tau,求这些trajectory的期望,如下所示:

image.png

image.png

\nabla \log p\left(a_{t}^{n} \mid s_{t}^{n}, \theta\right)可以看做是在做分类,R\left(\tau^{n}\right)看做是sample training data weighted。
R\left(\tau^{n}\right)是 整场游戏得到的reward。
在训练过程中,training data在actor与environment交互中动态地搜集与sample data。

如果不能微分,就可以用Policy gradient 硬train一发

Tip 1 :Add a baseline

我们希望在好的state和action下reward增加, 不好的情况下reward下降。而reward可能一直都是正的。虽然gradient ascent, 不好的情况与好的情况, 增加的reward的程度是不同的,也能驱使学习好的action。但是在实际训练中, action是sample得到的,没有sample到的action,其reward不会增加,而不是因为其本身不好。

因此添加baseline b \approx E[R(\tau)], 调整期望值作为baseline,如果大于b,reward为正,反之为负。

Tip 2 : Assign suitable credit

R\left(\tau^{n}\right)反应的是整个游戏过程的reward,不能体现每个step的作用,因此将R\left(\tau^{n}\right)替换为\sum_{t^{\prime}=t}^{T_{n}} \gamma^{t^{\prime}-t} r_{t^{\prime}}^{n}\gamma代表衰减因子,小于1的值。在t之后的state的reward体现t步所采取的动作的效果。{t^{\prime}-t}表示

整体的公式可以为:
\nabla \bar{R}_{\theta} \approx \frac{1}{N} \sum_{n=1}^{N} \sum_{t=1}^{T_{n}}\left(\sum_{t^{\prime}=t}^{T_{n}} \gamma^{t^{\prime}-t} r_{t^{\prime}}^{n}-b\right) \nabla \log p_{\theta}\left(a_{t}^{n} \mid s_{t}^{n}\right)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。