深度强化学习中的双Q学习与注意力机制应用
1. 双Q学习算法原理
在强化学习中,Q学习是一种常用的方法,用于学习最优策略。然而,传统的Q学习在训练过程中存在一些问题,例如目标Q值的不稳定和动作值的高估。为了解决这些问题,双Q学习(Double Q - learning)应运而生。
传统Q学习中,目标Q值的计算方式为:
[Q_{new} = r_t + \gamma \cdot \max(Q(s_{t + 1}))]
这种计算方式会导致目标Q值不断变化,使得训练不稳定。为了稳定训练,引入了目标网络 (Q’),目标Q值的计算变为:
[Q_{new} = r_t + \gamma \cdot \max(Q’(s_{t + 1}))]
但即使使用了目标网络,由于使用了 (\max) 函数,仍然会导致动作值的高估。双Q学习通过将动作值估计和动作选择分离来解决这个问题。具体步骤如下:
1. 使用主Q网络 (Q) 基于 (\epsilon) - 贪心策略选择动作。
2. 计算 (Q_{new}) 时,先找到主Q网络 (Q) 的 (\arg\max),即 (a = \arg\max(Q(s_{t + 1})))。
3. 使用 (a) 索引目标网络 (Q’),得到 (x = Q’(s_{t + 1})[a])。
4. 最终目标Q值为 (Q_{new} = r_t + \gamma \cdot x)。
以下是双Q学习在代码中的实现:
state_batch, action_batch, reward_batch, state2_batch,
超级会员免费看
订阅专栏 解锁全文
1075

被折叠的 条评论
为什么被折叠?



