#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:
Не совсем уверен, что вы подразумеваете под «асимметричной природой игры», но вот несколько потенциальных решений:
- Вы можете изменить свою схему вознаграждения так, чтобы A получал гораздо большую награду, чем B, когда выигрывает. Это может позволить политике A расставить приоритеты в этом направлении немного быстрее, чем это происходит в настоящее время. В качестве альтернативы, не вознаграждайте B так сильно.
- Вы могли бы попробовать настроить параметры политики и алгоритма для A и B, чтобы обучение было более сбалансированным.
- Вы могли бы периодически замораживать политику B, чтобы дать возможность «наверстать упущенное».