• 强化学习-Q-Learning算法


    1. 前言

    Q-Learning算法也是时序差分算法的一种,和我们前面介绍的SARAS不同的是,SARSA算法遵从了交互序列,根据当前的真实行动进行价值估计;Q-Learning算法没有遵循交互序列,而是在当前时刻选择了使价值最大的行动。

    2. Q-Learning

    Q-Learning算法在计算当前时刻的行动-状态价值(q_t(s_t,a_t))时选择了当前状态使价值最大的行动(max_aq_{t-1}(s_{t}))

    Q-Learning的迭代公式在SARAS的基础上进行了一些修改,如下:

    [q_{t}(s_{t},a_{t}) = q_{t-1}(s_{t-1},a_{t-1}) + frac{1}{N}(r_t + gamma*max_aq_{t-1}(s_t) - q_{t-1}(s_{t-1},a_{t-1})) ]

    3. Q-Learning代码实现

    Q-Learning公式和SARAS的公式十分相像,所以策略提升依然没有变化,策略评估有一点微小的修改(完整代码GitHub)。

    def q_learn_eval(self, agent, env):
        state = env.reset()
        prev_state = -1
        prev_act = -1
        while True:
            act = agent.play(state, self.epsilon)
            next_state, reward, terminate, _ = env.step(act)
            if prev_act != -1:
                # qlearning的迭代公式
                return_val = reward + agent.gamma * (0 if terminate else np.max(agent.value_q[state, :]))
                agent.value_n[prev_state][prev_act] += 1
                agent.value_q[prev_state][prev_act] += (return_val - agent.value_q[prev_state][prev_act]) / agent.value_n[prev_state][prev_act]
    
            prev_act = act
            prev_state = state
            state = next_state
    
            if terminate:
                break
    

    4. SARAS和Q-Learning比较

    SARSA算法和Q-Learning算法在公式上的不同,实际上这两种算法代表了两种策略评估的方式,分别是On-Policy和Off-Policy

    • On-Policy:对值函数的更新是完全依据交互序列进行的,我们在计算时认为价值可以直接使用采样的序列估计得到。
    • Off-Policy:更新值函数时并不完全遵循交互序列,而是选择来自其他策略的交互序列的子部分替换了原本的交互序列。从算法的思想上来说,Q-Learning的思想更复杂,它结合了子部分的最优价值,更像是结合了价值迭代的更新算法,希望每一次都使用前面迭代积累的最优结果进行更新。

    5. 总结

    对于Q-Learning和SARSA这样的时序差分算法,对于小型的强化学习问题是非常灵活有效的,但是在大数据时代,异常复杂的状态和可选动作,使Q-Learning和SARSA要维护的Q表异常的大,甚至远远超出内存,这限制了时序差分算法的应用场景。在深度学习兴起后,基于深度学习的强化学习开始占主导地位,因此从下一篇开始我们开始讨论深度强化学习的建模思路。

  • 相关阅读:
    linux安装mysql8
    linux安装nginx
    linux tp5隐藏index.php
    E45: 'readonly' option is set (add ! to override)
    linux安装git方法
    php-5.6 添加php_zip.dll拓展
    双向链表
    每日一题 为了工作 2020 0315 第十三题
    每日一题 为了工作 2020 03014 第十二题
    每日一题 为了工作 2020 03013 第十一题
  • 原文地址:https://www.cnblogs.com/huangyc/p/10500029.html
Copyright © 2020-2023  润新知