В чем смысл В задачах обучения с подкреплением существуют ситуации, когда нужно симулировать поведение нескольких агентов одновременно. Например, в игре в баскетбол, игроки должны не просто хорошо играть по отдельности, но и уметь кооперироваться. Авторы предлагают алгоритм, который умеет генерить правдоподобные траектории игроков на поле, оптимизировать совместное поведение игроков и осуществлять планирование на длительное время (с помощью макро-целей), позволяет игрокам иметь несколько вариантов стратегии (мультимодальность), и бьет другие методы в этой задаче.
Подробности ✏️ Суть алгоритма Агенты - это игроки в баскетбол (их 5 штук), состояния - их координаты, а действия - перемещение по полю. В обучающей выборке есть 10 тыс примеров. Цель авторов - в каждый момент времени, для каждого состояния понимать, что делать дальше - выучить политику (вероятность действия при условии текущего состояния и истории). Авторы разрабатывают алгоритм из класса behavioral cloning - считают политику так, чтобы изначальные состояния отображались в вероятностные распределения для действий (это еще называется стохастической политикой), просто мимикрируя под данные. Причем так, чтобы эти вероятностные распределения были мультимодальными (игроки могли вести себя неединственным образом).
🎲 RNN-VAE-VRNN Для того, чтобы из состояний генерить вероятностные распределения для действий, авторы используют VRNNs - рекурентные сети со встроенным вариационным автоэнкодером. Рекурентные нейронные сети(RNN) - сети, берущие текущее состояние x_t (в нашем случае это просто координаты игроков на поле) и вектор скрытых переменных h_t-1 для прошлых состояний, предсказывая вероятность этого состояния, и передающих дальше вектор скрытых переменных h_t для текущего состояния. Каждую такую сеть мы учим для каждого игрока отдельно. Вариационный автоэнкодер (VAE) умеет генерить вероятностное распределение, используя стохастические латентные переменные z_t. VRNN получается смесью этих двух алгоритмов - встраивая стохастические переменные z_t в скрытые переменные h_t рекурентной сети - теперь в нашей системе есть случайность, агент не будет вести себя одинаково.
🔎 Детали алгоритма Авторы берут состояния (координаты каждого игрока на поле) и пытаются выучить политику, а конкретнее, предсказать вероятность каждых координат x_t с помощью VRNN при условии предыдущих координат x_t-1 и скрытого состояния h_t-1, встраивая в нее стохастическую переменную z_t, чтобы отойти от предопределенности стратегии агентов во всех партиях(обеспечить мультимодальность распределения). Все эти расчеты происходят отдельно для каждого игрока. Далее нам нужно как-то связать игроков. Добавим еще одну переменную (макро-цель) - стохастическую g_t, общую для всех игроков. Теперь для каждого из k агентов h_t будет зависеть не только от z_t, но и от g_t. Учим g_t мы с помощью RNN, подавая ей на вход скрытое состояние h_g_t (не путать с h_t), и предыдущее состояние x_t-1(координаты игроков). В этом всем трудно запутаться, поэтому схему с VRNN для каждого игрока и надстройкой с макро-целями можно найти после поста:)
🤓 Как мерили качество. Авторы сравнивали свой подход с бейзлайном (VRNN без макро-целей). Мерили то, каким траекториям профессиональные судьи отдают предпочтение - сгенерированными нашим методом или бейзлайном. Судьи отдают предпочтение нашему методу.
Что в итоге Авторы научили агентов круто играть вместе в баскетбол с помощью макро-целей, которые позволяют агентам кооперироваться. В качестве будущей работы предлагается распространять идею макро-целей на новые задачки - диалог между двумя агентами или генерацию музыки (макро-цель тут превратится в рефрен, главную тему) и изучать макро-цели дальше.