Построение ковариационной матрицы в многоуровневом обучении армированию - PullRequest
0 голосов
/ 14 февраля 2019

базовый вопрос скорее относится к математике и реализации, поэтому приведенная ниже часть обучения по подкреплению может быть пропущена и представляет собой просто FYI.


Я работаю над агентом по подкреплению, работающим спространство непрерывного действия в спортивной среде OpenAI "CarRacing-v0" с алгоритмом A3C.

Для агента, выполняющего одно непрерывное действие, вы позволяете сети политики вычислять среднее значение идисперсия, в то время как средний диапазон лежит в желаемом диапазоне пространства действия (например, активация tanh), и дисперсия является положительной (например, активация RELU), затем вы выбираете из нормального распределения, используя эти параметры.Пока все хорошо ...

Для более чем одного непрерывного действия вы можете выбрать все действия отдельно, используя среднее значение и дисперсию для каждого действия (что работает на данный момент, но не идеально)или вы позволяете сети политик выводить параметры среднего вектора и ковариационной матрицы, а затем использовать их для выборки всех действий сразу из многомерного распределения.

Поскольку многомерная версия делает большесмысл (вы никогда не решаете, сколько газа вы подаете, не имея в виду, как сильно вы поворачиваете влево или вправо и наоборот), я попытался реализовать это в своем коде, но он падает, как только сеть дает мне отрицательно определеннуюковариационная матрица ..


Моя ковариационная матрица (для двумерного случайного вектора) построена из 3 выходных нейронов нейронной сети, назовите их A, B и C ..

Он задается следующим образом: COV = [[A, B], [B, C]]

Основной вопрос: как мне ограничить A, B и C, чтобы гарантировать, что коварИндекс положительно определен, что является обязательным условием для возможности выборки из распределения.Поскольку нейронная сеть просто выводит случайные данные в начале, мне нужно заранее ограничить значения A, B и C, чтобы избежать ошибок при выборке из распределения.

Я нашел несколько постов, рассматривающих построение произвольных матриц pd, но я не знаю, будут ли они влиять на обратное распространение в обучении (например, пусть COV = M * M ^ T, где M - случайная матрица, котораяЯ мог бы вывести с нейронной сетью) ..

Я надеюсь, что кто-то сталкивался с такой же проблемой в прошлом, и я буду благодарен за любой намек ..

С уважением

Хендрик

...