Как ввести дискретные категориальные переменные в RNN? - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь написать модель RNN для обучения 2.В принципе, если у меня есть скалярная функция f (x, y, z), где x - это некоторый элемент множества S1, y - некоторый элемент множества S2, а z - некоторый элемент множества S3, и мой RNN будет последовательно создаватьзапросы, чтобы попытаться оптимизировать f.

Я хочу обучить RNN, который может выполнять эти типы дискретных оптимизаций черного ящика, поэтому, например, я могу представить предыдущий ввод x_ {t} как горячее кодированиеsize | S1 |, ... и т. д., и, возможно, имеют весовые матрицы W1, W2, W3, которые проецируют эти 3 кодирования в один и тот же размер d и передают эти три d-мерных кодирования в качестве входных данных один за другим в RNN, который затем будет выводить один за другим (а затем декодироваться) в возможный запрос (x_ {t + 1}, y_ {t + 1}, z_ {t + 1}) для следующего временного шага.

Хорошая вещь об этом состоит в том, что я могу повторно использовать базовую ячейку RNN для другой проблемы с другой функцией, которая может иметь совершенно разные входные домены, такие как g (a, b, c, d), так как я могу простозациклите RNN 4 раза вместо 3. RNN может просто повторитьотсутствует некоторый «общий алгоритм независимо от размера ввода».Однако это означает, что мне также нужно сделать 4 новые весовые матрицы для проецирования новых переменных в измерение d.

Есть ли способ сделать это лучше?например, какая-то конфигурация, в которой мне никогда не нужно изменять или создавать новые веса Tensorflow для каждой проблемы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...