卷积状态表示

时间:2019-01-04 05:51:40

标签: deep-learning reinforcement-learning openai-gym

在使用DQN和其他深度RL算法时,在有状态输入时在参与者或评论者网络中使用卷积层有意义吗?

让我们说: 状态表示1:环境中每个对象的(对象标记,位置,速度)

状态表示2: 有一个基于图块/ gridworld风格的游戏。我们有一个2D的数字网格来描述每种对象类型(1 =苹果,2 =狗,3 =代理等)。我们将这个网格展平,并将其作为状态传递给我们的RL算法。

在任何一种情况下,使用转换层是否有意义?为什么或为什么不呢?

1 个答案:

答案 0 :(得分:2)

卷积层基本上编码“位置不变性”的直觉,即我们期望检测某些“特征”(“事物”,边缘,角,圆,鼻子,脸,任何东西)的想法大致相同这种直觉是通过使“过滤器”或“特征检测器”沿某个空间“滑动”来实现的,而无需考虑“位置”(通常在2D空间中,但理论上也可以在其他类型的空间中)。

  

让我们说:状态表示1:环境中每个对象的(物体标记,位置,速度)

在这种情况下,上述直觉没有意义。输入不是某种“空间”,我们希望它可以在不同位置检测到类似的“形状”。卷积层可能在这里表现不佳。

  

状态表示2:有一个基于图块/ gridworld风格的游戏。我们有一个2D的数字网格来描述每种对象类型(1 =苹果,2 =狗,3 =代理等)。我们将这个网格展平,并将其作为状态传递给我们的RL算法。

在2D网格表示中,由卷积层编码的直觉可能很有意义。例如,检测有用的模式,例如与苹果相邻或被苹果包围的狗。但是,在这种情况下,您将不需要展平网格。只需将整个2D网格作为输入传递到您用于实现卷积层的任何框架中即可:它可能会在内部进行一些展平,但是对于卷积层的整个概念,原始的,未展平的尺寸是非常重要和重要的。将分类变量编码为数字1、2、3等在神经网络中也不太适用。一键式编码(对于卷积层使用 channels ,每个对象类型一个信道)会更好。就像彩色图像倾向于具有多个2D网格(对于RGB图像,通常是2D网格用于红色,另一个用于绿色,而对于蓝色则用于蓝色)一样,您希望每个对象类型一个完整的网格。