强化学习笔记:Q-learning

Posted UQI-LIUWJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了强化学习笔记:Q-learning相关的知识,希望对你有一定的参考价值。

        在强化学习笔记: MDP - Policy iteration_UQI-LIUWJ的博客-CSDN博客 中我们提到了Q-table,同时我们说到,对于model-free的MDP,最开始这张 Q 表格会全部初始化为零,然后 agent 会不断地去和环境交互得到不同的轨迹。 当交互的次数足够多的时候,我们就可以估算出每一个状态下,每个行动的平均总收益,然后去更新这个 Q 表格。

        在没法获取 MDP 的模型情况下,我们可以通过以下两种方法来估计某个给定策略的价值:

  • Monte Carlo policy evaluation
  • Temporal Difference(TD) learning

这里我们介绍蒙特卡洛策略估计

1 Monte Carlo policy evaluation

        蒙特卡罗(Monte-Carlo,MC)方法是基于采样的方法,我们让 agent 跟环境进行交互,就会得到很多轨迹。每个轨迹都有对应的 return:

        

         我们把每个轨迹的 return 进行平均,就可以知道某一个策略下面对应状态的价值

         MC 是用 经验平均回报(empirical mean return) 的方法来估计。

        MC 方法的优点:不需要 MDP 的转移函数和奖励函数

        MC 方法的局限性:只能用在有终止的 MDP 。

1.1 MC算法

        为了得到评估 v(s),我们进行了如下的步骤:
1)在每个回合中,如果在时间步 t 状态 s 被访问了,那么

        1.1)状态 s 的访问数 N(s) 增加 1

        1.2)状态 s 的总的回报S(s) 增加Gt​。

2)状态 s 的价值可以通过 return 的平均来估计,即 v(s)=S(s)/N(s)。

3)根据大数定律,只要我们得到足够多的轨迹,就可以趋近这个策略对应的价值函数。 (大数定律:如果统计数据足够大,那么事物出现的频率就能无限接近它的期望值。)

1.1.1 增量均值 

        假设现在有样本x1​,x2​,⋯,我们可以把经验均值(empirical mean)转换成 增量均值(incremental mean) 的形式,如下式所示:

        

         通过这种转换,我们就可以把上一时刻的平均值跟现在时刻的平均值建立联系,即:

                

         其中

        

        当我们得到 xt​,就可以用上一时刻的值来更新现在的值。

 1.2  incremental MC

我们采集数据,得到一个新的轨迹

 

对于这个轨迹,我们采用增量的方法进行更新,如下式所示:

 

我们可以想成学习率

1.3 MC和Policy evaluation 的异同 

强化学习笔记:马尔可夫决策过程 Markov Decision Process(MDP)_UQI-LIUWJ的博客-CSDN博客

        Policy evaluation(有的地方叫动态规划,DP)也是常用的估计价值函数的方法。在动态规划里面,我们使用了 bootstrapping 的思想。bootstrapping 的意思就是我们基于之前估计的量来估计一个量。

           Policy evaluation就是用 Bellman expectation backup,通过上一时刻的值来更新当前时刻这个值,不停迭代,最后可以收敛

 

         MC 是通过 empirical mean return (实际得到的收益)来更新它,对应树上面蓝色的轨迹,我们得到是一个实际的轨迹,实际的轨迹上的状态已经是决定的,采取的行为都是决定的。

        MC 得到的是一条轨迹,这条轨迹表现出来就是这个蓝色的从起始到最后终止状态的轨迹。现在只是更新这个轨迹上的所有状态,跟这个轨迹没有关系的状态都没有更新。

 1.3.1 MC相比于DP的优点

  • MC 可以在不知道环境具体情况(奖励函数、状态转移概率)的情况下 work,而 DP 是 model-based。
  • MC 只需要更新一条轨迹的状态,而 DP 则是需要更新所有的状态。状态数量很多的时候(比如一百万个,两百万个),DP 这样去迭代的话,速度是非常慢的。这也是 sample-based 的方法 MC 相对于 DP 的优势。

以上是关于强化学习笔记:Q-learning的主要内容,如果未能解决你的问题,请参考以下文章

强化学习笔记:Q-learning :temporal difference 方法

强化学习笔记:Q-learning

强化学习笔记:Sarsa 与 Sarsa(lambda)

强化学习笔记:Sarsa 与 Sarsa(lambda)

强化学习 5 —— SARSA 和 Q-Learning算法代码实现

强化学习python 实现 q-learning 例四(例二改写)