Dyna-Q

2019-05-09  本文已影响0人  D_Major

强化学习需要花费很多经验元组来收敛, 需要通过现实中迈出一步(做出交易)来获得, 而这是十分代价高昂的. 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是模型, r是从体验元组获得的奖励, 每次有了真实体验后, 都更新这个模型, 公式如下:
R'[s, a] = (1-α)R[s, a] + αr
α是学习率, 通常是0.2
当新值αr的幅度小于旧值R, 模型就慢慢收敛

上一篇 下一篇

猜你喜欢

热点阅读