ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

RL-赵-(七)-不基于模型2-计算Q/ActionValue-TD算法01:Sarsa03【One-Step】【Sarsa做PE后立刻进行PU➜...➜最优策略(参考值迭代算法)】

RL-赵-(七)-不基于模型2-计算Q/ActionValue-TD算法01:Sarsa03【One-Step】【Sarsa做PE后立刻进行PU➜...➜最优策略(参考值迭代算法)】 为了得到最优的policy还需要把这个policy evaluation过程和一个policy improvement相结合才可以。1、Sarsa与policy improvement结合来寻找最优策略RL的最终目标是找到最优策略。为了达到这个目的我们将Sarsa和一个policy improvement step相结合这个结合的算法也称为Sarsa。需要注意的是当q(st,at)q(s_t,a_t)q(st​,at​)更新之后sts_tst​的policy将会立即更新。这是基于generalized policy iteration的思想策略更新是ϵ\epsilonϵ-greedy而不是greedy它能较好地平衡exploitation 和 exploralion需要强调的是核心思想是简单的即使用算法求解给定策略下的贝尔曼公式The complication emerges when we try to find optimal policies and work efficiently。这个就是我刚才说的我们把刚才的Sarsa的这个算法和police improvement的那个step相结合实际上结合之后的算法也被称为Sarsa或者在大多数情况下其实大家听到Sarsa的时候实际上是把policy evaluation和policy improvement这两个结合之后的算法那这个就是这个算法所对应的pseudocode我们来简要地过一下首先对于每一个episode我们来做什么样的事情呢如果当前的状态不是这个target state 我就做下面的事情注意这里边和我们之前所关注的任务有一点不同的是之前其实我们在网络世界当中你到达了目标你可以一直执行策略 你不需要停但是现在我们其实更关注的是我从一个状态出发我怎么样能够到达目标所以我也可以到目标之后我强行给它停下来 我也可以到达目标之后不停其实都是可以的 它们的区别不是很大就是我在到达目标之前我要做的是什么呢在t时刻我要得到这样一个experience也就是在st我根据当天的策略我take action at然后我得到reward rt1 我跳到下一个状态st1在下一个状态的时候我再根据在那个状态的策略然后我再进行一个action的采样得到at1那这个就得到了Sarsa所需要的experience然后继续这个experience我们下面要做的就是这个q value的update或者叫police evaluation我就计算q相对应的πt它的q value是多少这个就是我们刚才所给出来的那个式子在这个之后我们立刻做policy update也就是进行更新我怎么更新呢我就选这个q value谁大我就选谁但是这里面是一个ε-greedy的一个策略所以它不会给greedy action 1的概率而是给一个比较大的概率但是仍然给其它的action有一定比较小的一个概率然后得到了这个策略之后我就再用这个策略来生成新的experience然后再来不断地进行迭代关于这个算法我们第一个想要强调的是什么呢我再回到上一页当中就是这个算法实际上它有两个步骤第一个步骤就是q value update或者叫policy evaluation第二个步骤是policy update或者叫policy improvement那这两个步骤其实我在更新了q value之后我会立刻进行策略的更新这个和我们之前所说的policy evaluation不完全一样因为policy evaluation是我当前这个策略πt我要得到很多的数据然后把它的这个action value好好地给准确地给估计一下但是我只执行一下实际上我并没有得到很准确的相对应的action value我就立刻切换到policy update当中那这个其实也是基于generalized policy iteration的想法大家还记得我们之前学的policy iteration吗就是它也分为两个步骤 第一个是policy evaluation第二个是policy improvement这个是在每一个iteration当中都包含这两个步骤但是我要计算policy evaluation准确的那个state value的时候会需要无穷步所以在实际当中我可能只计算一步或者几步实际上我完全没有得到一个很精确的state value但是我也会立刻切换到这个policy的更新当中所以刚才介绍的Sarsa也是基于这种思想另外就是那个策略更新的不是一个greedy的策略而是一个ε-greedy的策略这样它能够尽可能地去访问到更多的(s,a)然后找到更优的策略 那这个基本上就是Sarsa的全部内容然后我想强调的一点是什么呢就是在刚才其实我们讲了两部分 第一部分就是我给定一个策略怎么求解相对应的贝尔曼公式得到Sarsa这样一个算法就那个迭代的算法第二个是我怎么把这个policy evaluation这样一个步骤和policy improvement相结合然后从而找到最优的策略所以我希望大家能够明白这里边那个最复杂的式子就迭代的那个式子它是来干嘛的它是来做policy evaluation就是来求action value的这是它最最核心的想法 你明白了这个idea之后剩下的其实就很简单了我就这个算法看起来会稍微复杂一点 为什么呢就是因为我还需要去迭代去改进策略我还需要去让这个策略是ε-greedy的等等所以总而言之希望大家能够抓住它的核心的思想以及明白每一部分都是在做什么样的事情
返回列表