Асимметричное состязательное подкрепляющее обучение с помощью Ray Tune

#python #reinforcement-learning #generative-adversarial-network #ray

Вопрос:

Я обучаю двух агентов A и B играть в асимметричную игру, используя среду тренажерного зала (с мультиагентными политиками) и библиотеку Ray Tune.

Асимметричный характер игры означает, что у B гораздо более легкая роль, чем у A. В результате B тренируется намного быстрее и становится намного сильнее. Это приводит к тому, что B слишком силен, чтобы A мог добиться какого-либо значимого прогресса в своем обучении, поскольку он всегда проигрывает.

Решение, которое я представляю, состоит в том, чтобы, как и в GANs, тренировать A, когда B выигрывает >50% времени, и B, когда A выигрывает >>50% времени. Однако я не нашел никакого способа реализовать это с помощью Tune.

Как я могу отдать предпочтение обучению проигравшего агента, а не тому, чтобы все агенты тренировались одинаково ?

Ответ №1:

Не совсем уверен, что вы подразумеваете под «асимметричной природой игры», но вот несколько потенциальных решений:

  1. Вы можете изменить свою схему вознаграждения так, чтобы A получал гораздо большую награду, чем B, когда выигрывает. Это может позволить политике A расставить приоритеты в этом направлении немного быстрее, чем это происходит в настоящее время. В качестве альтернативы, не вознаграждайте B так сильно.
  2. Вы могли бы попробовать настроить параметры политики и алгоритма для A и B, чтобы обучение было более сбалансированным.
  3. Вы могли бы периодически замораживать политику B, чтобы дать возможность «наверстать упущенное».