我正在做强化学习,我有一个视觉观察,我将用它来为我的代理建立一个输入状态。在 DeepMind 的 Atari 论文中,他们在将输入图像输入 CNN 之前对输入图像进行灰度化,以减小输入空间的大小,这对我来说很有意义。
在我的环境中,对于每个像素,我有 5 个可能的通道,分别用黑色、白色、蓝色、红色和绿色表示。这对我来说也很直观,因为它就像一个位编码。
有什么想法会更好吗?灰度化成 2 种灰度和黑白也可以保留信息,但感觉不那么直接,因为我的环境的视觉空间是分类的,这在分类编码中更有意义。
我正在做强化学习,我有一个视觉观察,我将用它来为我的代理建立一个输入状态。在 DeepMind 的 Atari 论文中,他们在将输入图像输入 CNN 之前对输入图像进行灰度化,以减小输入空间的大小,这对我来说很有意义。
在我的环境中,对于每个像素,我有 5 个可能的通道,分别用黑色、白色、蓝色、红色和绿色表示。这对我来说也很直观,因为它就像一个位编码。
有什么想法会更好吗?灰度化成 2 种灰度和黑白也可以保留信息,但感觉不那么直接,因为我的环境的视觉空间是分类的,这在分类编码中更有意义。
我们不能确定在一般情况下哪种方法最有效。如果你有领域知识,你可以做出更好的猜测。您基本上想回答这个问题:哪些信息对于学习最优策略很重要?
在我的环境中,对于每个像素,我有 5 个可能的通道,分别用黑色、白色、蓝色、红色和绿色表示。这对我来说也很直观,因为它就像一个位编码。
一般来说,如果你有这样的环境,我会(没有任何其他信息)猜测这 5 种颜色中的每一种都有一些可能与你的代理相关的含义。这只是我的猜测。从理论上讲,白色可能意味着一件事(例如“空”),而其他所有颜色都意味着同样的另一件事(例如“非空”)。如果您有这样的领域知识,并且知道任何给定像素是否为白色很重要,那么您当然可以对输入进行二值化。
但总的来说,如果颜色可能很重要,我建议包括它们。但是,如果您真的只有几种不同的颜色,我不建议以某种格式对它们进行编码,例如 RGB,其值的范围可以从 0 到 1 或 0 到 255。我建议您使用 4 个(或 5 个?)二进制通道你的输入:
这样做的原因是,深度神经网络通常更容易使用二进制输入进行学习,在这里您可以完全二进制化您的输入,而无需过多的通道数。如果您有数百或数千种不同的可能颜色,这可能不再是一个好主意。