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

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

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

针对完整决策过程中的每一步状态动作对生成,评估改进同一个策略$\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表,

1. 对每一个episode:

2. 从$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结束。

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


 

Q-learning算法过程如下,


初始化Q表,

1. 对每一个episode:

2. 从$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结束。

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


 

转载于:https://www.cnblogs.com/yijuncheng/p/10138542.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值