Свертка для государственного представительства - PullRequest
0 голосов
/ 04 января 2019

При использовании DQN, других алгоритмов глубокого RL, имеет ли смысл использовать сверточный слой в сети актера или критика, когда у вас есть вход состояния?

Скажем так: представление состояния 1: (метка объекта, позиция, скорость) каждого объекта в окружающей среде

представление состояния 2: Существует игра на основе тайлов / gridworld.У нас есть двумерная сетка чисел, описывающая каждый тип объекта (1 = яблоко, 2 = собака, 3 = агент и т. Д.).Мы выровняем эту сетку и передадим ее в качестве состояния нашему алгоритму RL.

В любом случае имеет ли смысл использовать слой конвона?Почему или почему нет?

1 Ответ

0 голосов
/ 04 января 2019

Сверточные слои в основном кодируют интуицию "инвариантности местоположения", идею о том, что мы ожидаем, что обнаружение определенных "особенностей" ("вещей", краев, углов, кругов, носов, граней и т.д.) будет работать примерно одинаковонезависимо от того, «где» (как правило, в 2D-пространстве, но теоретически может быть и в каком-то другом пространстве) они есть. Эта интуиция реализуется с помощью «фильтров» или «детекторов признаков», которые «скользят» вдоль некоторого пространства.

Скажем так: представление состояния 1: (метка объекта, позиция, скорость) каждого объекта в среде

В этом случае описанная выше интуиция не даетсмысл. Входные данные не являются неким «пространством», где мы ожидаем, что сможем обнаружить подобные «формы» в разных местах. Сверточный слой, вероятно, будет работать здесь плохо.

представление состояния 2:Существует игра на основе тайлов / gridworld, у нас есть двумерная сетка чисел, описывающая каждый тип объекта (1 = яблоко, 2 = собака, 3 = агентт и т. д.).Мы выравниваем эту сетку и передаем ее в качестве состояния нашему алгоритму RL.

При представлении двумерной сетки интуиция, закодированная сверточными слоями, может иметь смысл.Например, для обнаружения полезных шаблонов, таких как собаки, которые находятся рядом с яблоками или окружены ими.Тем не менее, в этом случае вы не захотите выровнять сетку;просто передайте всю двумерную сетку в качестве входных данных в любой каркас, который вы используете для реализации сверточных слоев: это может привести к некоторому сглаживанию внутри, но для всей концепции сверточных слоев исходные нерасширенные измерения очень актуальны и важны .Кодирование категориальных переменных как числа 1, 2, 3 и т. Д. Также не очень хорошо работает с нейронными сетями.Кодирование в одно касание (с каналами для сверточных слоев, по одному каналу на тип объекта) будет работать лучше.Точно так же, как цветные изображения, как правило, имеют несколько 2D-сеток (обычно 2D-сетку для красного, другую для зеленого и еще одну для синего в случае изображений RGB), вам потребуется одна полная сетка для каждого типа объекта.

...