Dyna-Q

作者: D_Major | 来源:发表于2019-05-09 16:38 被阅读0次

    强化学习需要花费很多经验元组来收敛, 需要通过现实中迈出一步(做出交易)来获得, 而这是十分代价高昂的. Dyna-Q解决了这个问题, 通过建立过渡矩阵T和回报矩阵R来工作. 在与世界实际交互后, 伪造出更多的交互, 用来更新Q table, 可以加快模型收敛速度.
    记住Q-Learning是模型无关的, 也就是不依赖于T和R, Dyna-Q是将模型无关和模型相关的方法结合到一起的, 是对Q-Learning的改进

    Dyna-Q在通过Q-Learning从真实世界获得体验后, 更新模型的T, R矩阵, 然后通过随机方式虚拟交互体验, 再更新Q table, 这个过程迭代100-200次, 之后再次通过Q-Learning从真实世界获得体验


    Q table由许多组体验元组组成

    学习T矩阵

    T矩阵记录s, a -> s'发生的概率
    通过观察与现实交互获得的所有[s,a,s'], 将在状态s下采取行动a所发生的对应s'状态的次数添加进T_c(T-count)这个表格, 该表格用来记录[s,a,s']发生的次数. T_c初始化值很小是因为要避免除以0

    将状态s'发生的次数除以状态s下采取行动a发生所有状态的数量, 得到s'发生的概率, 即为T矩阵
    T[s,a,s'] = T_c[s,a,s'] / \sum_i T_c[s,a,i]

    学习R矩阵

    • R[s, a] 表示在状态s执行行动a获得的预期奖励
    • r 表示与现实世界互动时获得的即时奖励

    R是模型, r是从体验元组获得的奖励, 每次有了真实体验后, 都更新这个模型, 公式如下:
    R'[s, a] = (1-α)R[s, a] + αr
    α是学习率, 通常是0.2
    当新值αr的幅度小于旧值R, 模型就慢慢收敛

    相关文章

      网友评论

          本文标题:Dyna-Q

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