Понимание модели openAI 5 (обучение с подкреплением LSTM 1024 единиц)
Недавно я наткнулся на openAI 5. Мне было любопытно посмотреть, как построена их модель, и понять ее. Я читал в википедии, что он "содержит один слой с LSTM размером 1024 единицы". Затем я нашел этот pdf-файл, содержащий схему архитектуры.
Мои вопросы
Из всего этого я не понимаю нескольких вещей:
Что значит иметь уровень LSTM из 1024 единиц? Означает ли это, что у нас есть 1024 временных шага с одной ячейкой LSTM, или это означает, что у нас есть 1024 ячейки. Не могли бы вы показать мне какой-нибудь график? Мне особенно сложно визуализировать 1024 ячейки в одном слое. (Я попытался посмотреть несколько вопросов SO, таких как 1, 2 или блог openAI 5, но они мало помогли).
Как можно проводить обучение с подкреплением на такой модели? Я привык, что RL используется с Q-таблицами, и они обновляются во время обучения. Означает ли это, что их функция потерь - это награда?
Почему такая большая модель не страдает от исчезающих градиентов или чего-то подобного? Не видел в pdf каких-либо типов нормализации или около того.
В pdf вы можете увидеть синий прямоугольник, похоже, что это единица, и есть
N
из тех. Что это значит? И поправьте меня, пожалуйста, если я ошибаюсь, розовые квадраты используются для выбора лучшего хода / предмета (?)
В целом все это можно резюмировать так: "Как работает модель openAI 5?"
1 ответ
Это означает, что размер скрытого состояния составляет 1024 единицы, что по сути означает, что ваш LSTM имеет 1024 ячейки на каждом временном шаге. Мы не знаем заранее, сколько временных шагов у нас будет.
Состояние LSTM (скрытое состояние) представляет текущее состояние, которое наблюдает агент. Он обновляется каждый раз, используя полученный ввод. Это скрытое состояние можно использовать для прогнозирования Q-функции (как в Deep Q-Learning). У вас нет явной таблицы
(state, action) -> q_value
, вместо этого у вас есть вектор размером 1024, который представляет состояние и подает в другой плотный слой, который будет выводить q_values для всех возможных действий.LSTM - это механизм, который помогает остановить исчезновение градиентов, так как память большого диапазона также позволяет градиентам легче течь обратно.
Если вы имеете в виду большие синие и розовые блоки, то розовые кажутся входными значениями, которые передаются по сети и объединяются в пул для каждого захвата или модификатора. Кажется, что синее пространство над каждой единицей одно и то же. Термины подхват, модификатор, юнит и т. Д. Должны иметь смысл в контексте игры, в которую они играют.
Вот изображение LSTM - желтые узлы на каждом шаге - это n:
Вектор h - это скрытое состояние LSTM, которое передается как на следующий временной шаг, так и используется в качестве выходных данных этого временного шага.