美文网首页强化学习
强化学习-什么是Q-learning,什么是sarsa

强化学习-什么是Q-learning,什么是sarsa

作者: Chaos_YM | 来源:发表于2020-10-20 10:42 被阅读0次

    发现很多博客文章对Q-learning和sarsa的描述不是很好理解,两者区别更是看不明白,误导初学者,遂自己把理解写出来,希望能帮助大家学习Q-learning(如有问题,感谢不吝指正)

    Q-learning

    Q-learning的核心是Q表,即state-action价值表。Q表实质上就是构造一个以state状态和action动作为两个维度,值为Q值得Q表,Q值即S_n中每个action对应的价值:

    a1 a2
    s_1 1 -4
    s_2 0 2
    s_3 2 1

    Q-learning算法论文截图:
    完全理解了下面这张图,就理解了Q-learning


    image

    学习过程

    1,根据上面的Q表和论文公式截图,我们在S_n状态时,选择Q值大的action,a1,到达S_{n+1}\rightarrow 即S^、状态;选择策略为Q(e,g.,\xi-greedy) ---->> 90%的几率都选择最大的Q值的action,10%的几率随机选择一个action(即Epsilon greedy策略,epsilon=0.9)
    2,执行动作,获得观测obs,r,S_{n+1}
    3,更新Q(S_n,a),使用贪婪策略,因为选择action和更新Q的策略不同,所以称其为Off-policy Learning
    4,循环,但是第3步骤max选择出来的action,不一定会执行,因为我们从第一步选取执行的动作时,是随机贪婪策略

    其中\alpha是学习率,0~1之间;
    \gamma是未来reward的衰减值。
    \epsilon是不以贪婪策略而去选择随机策略的概率,也叫探索率。由于我们一般会选择使当前轮迭代价值最大的动作,但是这会导致一些较好的但我们没有执行过的动作被错过。就像虽然我们有了好方法,但有时仍然会去尝试一些没有试过的方式,所以称之为探索。

    sarsa

    sarsa与Q-learning的区别是更新Q值得函数不同,执行逻辑略有差异。
    见图:


    image

    学习过程

    学习过程的差异主要在第三步,在经过一,二选择和执行动作之后:

    • Q-learning是在Q(S_{n+1},a)中选择maxQ来更新Q(S_{n},a)然后从新用Q(e,g.,\xi-greedy)策略选择action执行
    • 而sarsa此处更新时用Q(e,g.,\xi-greedy)策略选取action的Q值来计算loss更新上个状态的Q值,然后继续使用这个action来执行
    • 因为更新Q的action和执行的action相同(策略相同,动作也是同一个),所以称其为On-policy Learning

    sarsa-lambda

    • sarsa和Q-learning都是每次获取reward,更新获取reward的前一步。
    • sarsa-lambda是更新获取reward前的所有步骤的Q值,lambda是衰减系数,步骤越久远lambda的幂次越高,更新步骤就因此越小(lambda\in(0,1))

    观察下图算法逻辑,对比sarsa,发现,实质上在Q表外增加E值表
    E(S, A) \leftarrow E(S, A) + 1
    E(s, a) \leftarrow \gamma \lambda E(s, a)
    以上两步是E的更新逻辑,作用是使得当前的E增加1,然后以\lambda为衰减系数,更新所有的E。
    最终E的值作用在了Q值上,使Q值存在了受步骤影响的因素,越近的步骤影响越大。

    image

    相关文章

      网友评论

        本文标题:强化学习-什么是Q-learning,什么是sarsa

        本文链接:https://www.haomeiwen.com/subject/ngwrmktx.html