码迷,mamicode.com
首页 > 其他好文 > 详细

4. 免模型策略改进——蒙特卡洛(Monte-Carlo)和时序差分(Temporal-Difference)

时间:2018-12-18 21:22:30      阅读:279      评论:0      收藏:0      [点我收藏+]

标签:根据   获得   math   bubuko   随机选择   rsa算法   方法   直接   limit   

针对马尔科夫模型不完全已知,即转移概率未知,不能全概率展开的情况,上一篇介绍了策略评估的方法,这一篇对应介绍策略改进的方法,分别是

针对每一个完整决策过程,先估计策略再改进策略的蒙特卡洛同策略学习方式;

针对完整决策过程中的每一步状态动作对生成,评估改进同一个策略$\pi$的时序差分同策略Sarsa学习方式;

针对完整决策过程中的每一步状态动作对生成,评估策略$\pi$过程中利用未来最大化的贪心策略$\beta$的时序差分异策略Q-learning学习方式。

蒙特卡洛学习

像动态规划里解释的一样,迭代收敛得到了新的$v_\pi$后,就可以依据新的$v_\pi$改进我们的策略$\pi$。改进的策略$\pi$又可以继续迭代收敛到新的$v_\pi$,如此循环,最终收敛至$\pi^*$,

技术分享图片

但是我们没有办法像动态规划里一样,直接贪心选择最优的策略$\pi$,因为此时的马尔科夫模型是部分已知的,不能全概率展开来求得最优。所以我们利用$\varepsilon {\rm{ - Greedy}}$算法,

\[\pi \left( {a|s} \right) = \left\{ \begin{array}{l}
\varepsilon /m + 1 - \varepsilon \\
\varepsilon /m
\end{array} \right.\begin{array}{*{20}{c}}
{{\rm{ if }}a* = \mathop {\arg \max }\limits_{a \in A} Q(s,a)}\\
{{\rm{otherwise}}}
\end{array}\]

以$\varepsilon$的概率探索,随机选择动作,来得到奖励反馈,从而更新Q值;以$1-\varepsilon$的概率利用,选择目前Q值最大的动作,来保证整体奖励尽可能大。

所以蒙特卡洛学习过程如下,


初始化Q表,

1. 基于现有的Q表,利用$\varepsilon {\rm{ - Greedy}}$策略$\pi$(以$\varepsilon$的概率随机探索,从而丰富Q表的估计;以$1-\varepsilon$的概率选择目前Q值最大的动作,以获得最大奖励),从$s_0$开始生成一个完整的episode,也就是许多个状态-动作对$(s,a) $;

2. 对该episode中的每一个状态-动作对$(s,a) $:

  计算平均累积奖励$G(s,a) $

  更新Q值,${Q_\pi }(s,a) \leftarrow {Q_\pi }(s,a) + \alpha (G(s,a) - {Q_\pi }(s,a))$;

3. 依据新的Q表,更新新的策略$\pi$;

4. 重复以上步骤,从许多个episode中不断更新Q表,从而获得最优策略$\pi*$。


时序差分学习

像动态规划里解释的一样,为了加快收敛速度,我们可以在$v_\pi$还没有收敛的迭代过程中,就立马改进$v$,利用这个更新的$v$,立马对应更新策略$\pi$,再循环这个过程注意我们为了使策略生成状态-动作对的过程保持一定的探索率,同样利用$\varepsilon {\rm{ - Greedy}}$策略$\pi$。

!!!

在更新$Q$的过程中,我们有两种方式,第一种是同策略的Sarsa,第二种是异策略的Q-learning。

就是计算下一个状态动作值函数Q时,是仍利用我们评估的$\varepsilon {\rm{ - Greedy}}$策略$\pi$(同策略),还是直接利用贪心策略最大值$Greedy$策略$\beta$。

\[\begin{array}{l}
{Q_\pi }(s,a) \leftarrow {Q_\pi }(s,a) + \alpha (R + \gamma {Q_\pi }(s‘,a‘) - {Q_\pi }(s,a))\\
{Q_\pi }(s,a) \leftarrow {Q_\pi }(s,a) + \alpha (R + \gamma {\max _a}Q(s‘,a) - {Q_\pi }(s,a))
\end{array}\]

!!!

Sarsa算法过程如下,


 

初始化Q表,

对每一个episode:

从$s_0$开始,对episode中的每一步:

利用$\varepsilon {\rm{ - Greedy}}$策略$\pi$,根据当前状态$s$选择动作$a$,得到奖励$r$,下一时刻状态$s‘$;

仍根据当前Q值对应的$\varepsilon {\rm{ - Greedy}}$策略$\pi$,根据下一状态$s‘$选择动作$a‘$,计算下一时刻的${Q_\pi }(s‘,a‘)$

利用已经得到的奖励$r$和计算得到的下一时刻的${Q_\pi }(s‘,a‘)$,更新现在的${Q_\pi }(s,a)$,${Q_\pi }(s,a) \leftarrow {Q_\pi }(s,a) + \alpha (R + \gamma {Q_\pi }(s‘,a‘) - {Q_\pi }(s,a))$;

重复上述步骤至episode结束。

重复以上步骤,从许多个episode中的每一步中不断学习,从而获得最优策略$\pi*$。


 

Q-learning算法过程如下,


初始化Q表,

对每一个episode:

从$s_0$开始,对episode中的每一步:

利用$\varepsilon {\rm{ - Greedy}}$策略$\pi$,根据当前状态$s$选择动作$a$,得到奖励$r$,下一时刻状态$s‘$;

利用已经得到的奖励$r$和基于现有Q表下一状态的最大可能取值${\max _a}Q(s‘,a)$,更新现在的${Q_\pi }(s,a)$,${Q_\pi }(s,a) \leftarrow {Q_\pi }(s,a) + \alpha (R + \gamma {\max _a}Q(s‘,a) - {Q_\pi }(s,a))$;

重复上述步骤至episode结束。

重复以上步骤,从许多个episode中的每一步中不断学习,从而获得最优策略$\pi*$。


 

4. 免模型策略改进——蒙特卡洛(Monte-Carlo)和时序差分(Temporal-Difference)

标签:根据   获得   math   bubuko   随机选择   rsa算法   方法   直接   limit   

原文地址:https://www.cnblogs.com/yijuncheng/p/10138542.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!