深度强化学习:从DQN到前沿进展
1. 深度Q网络(DQN)基础
1.1 架构构建
在深度强化学习中,我们构建两个Q网络:预测网络和目标Q网络。它们具有相同的架构定义,只是目标Q网络的参数更新有延迟。由于我们要从纯像素输入学习玩《Breakout》游戏,游戏状态是一个像素数组。我们将图像依次通过三个卷积层和两个全连接层,为每个潜在动作生成Q值。
1.2 帧堆叠
状态输入的大小为 [None, self.history_length, self.screen_height, self.screen_width] 。为了建模和捕捉像速度这样的时间相关状态变量,DQN使用一组连续图像(即历史),而不仅仅是一张图像。每个连续图像被视为一个单独的通道。我们使用辅助函数 process_state_into_stacked_frames(self, frame, past_frames, past_state=None) 来构建这些堆叠帧。
1.3 训练操作设置
损失函数基于以下目标表达式推导得出:
[
\min_{\theta} \sum_{e \in E} \sum_{t = 0}^{T} \left[ Q(s_t, a_t; \theta) - \left( r_t + \gamma \max_{a’} Q(s_{t + 1}, a’; \theta) \right) \right]^2
]
我们希望预测网络的输出等于目标网络的输出加上当前时间步的回报。在纯PyTorch代码中,我们可以将其表示为预测网络输出与目标网
超级会员免费看
订阅专栏 解锁全文
6254

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



