我正在使用 DQN 算法来训练我的代理玩回合制游戏。内存重放缓冲区存储经验元组, 在哪里和是连续的状态。在最后一回合,游戏结束,非零奖励给代理。没有更多的观察,也没有下一个状态存储在体验元组中。最终状态应该如何处理?
经验回放中的最终状态如何处理?
人工智能
强化学习
dqn
经验回放
2021-10-29 19:22:54
1个回答
您不会将终端状态存储为在重播表中,因为根据定义,它的值总是,并且没有动作、奖励或下一个状态。从字面上看,没有什么可学的。
但是,您可能会发现存储以下信息很有用实际上是一个终端状态,以防这不明显。这通常是通过存储额外的done布尔组件来实现的。这很有用,因为它允许您在计算 TD 目标g时进行分支:
s, a, r, next_s, done = replay_memory_sample()
if done:
g = r
else:
g = r + gamma * max( q(s') )
其它你可能感兴趣的问题