如何从原始像素训练强化学习代理?

人工智能 强化学习 人工智能设计 深度学习
2021-10-20 04:42:00

您将如何从原始像素训练强化学习代理?

例如,如果您有 3 个堆叠的图像来感知运动,那么您将如何将它们传递给神经网络以输出 Q 学习值?

如果您传递该批输出,它将是一批值,因此从这里无法推断出哪些是该状态的真实 Q 值。

目前,我正在观看 YouTuber:与 Phil 的机器学习,他的做法非常不同。在第 13 分钟,他定义了一个输出一批值而不是 6 个状态的 Q 值的网络。简而言之,他输出的是矩阵而不是向量。

1个回答

您将如何从原始像素训练强化学习代理?例如,如果您有 3 个堆叠的图像来感知运动,那么您将如何将它们传递给神经网络以输出 Q 学习值?

卷积神经网络 (CNN) 结构是在强化学习中处理 2D 像素输入时的标准神经网络架构,它是原始 DQN 论文中使用的技术(参见https://arxiv第 4.1 节的第 1 和第 3 段.org/abs/1312.5602)。CNN 通常采用 3 维输入,其中前两个维度是图像的heightwidth,第三个维度是rgb color论文中的技术是将每个 RGB 帧(或图像)转换为灰度格式(因此它只有 1 个颜色通道/维度而不是 3 个),而是使用rgb_color维度作为frames每个堆叠帧索引的维度。

目前,我正在观看 YouTuber:Phil 的机器学习,他的做法非常不同。在第 13 分钟,他定义了一个输出一批值而不是 6 个状态的 Q 值的网络。简而言之,他输出的是矩阵而不是向量。

在教程系列的后面,他很可能会讨论神经网络的训练。在训练期间,您需要找到一批堆叠帧集的 q 值。具体来说,批次的每个元素都是一组堆叠的帧换句话说,一组堆叠的帧被视为一个单一的观察,所以一批堆叠的帧是一批观察。

要找到这些 q 值,您将通过神经网络执行一批观察的前向传递。通过神经网络的单个观察(堆叠帧集)的前向传递产生一个 q 值向量(每个动作一个)。因此,一批观察(一批堆叠帧)的前向传递将产生一个 q 值矩阵(每个观察(或一组堆叠帧)的一个 q 值向量)。使用这种技术是因为许多标准神经网络库旨在通过神经网络对一批输入执行前向传递,比单独对每个输入执行前向传递要快得多