返回列表

Toad Brigade’s Approach - Deep Reinforcement Learning

467. Lux AI | lux-ai-2021

开始: 2021-08-16 结束: 2021-12-20 游戏AI 数据算法赛
Toad Brigade 的方法 - 深度强化学习

Toad Brigade 的方法 - 深度强化学习

作者: IsaiahP (Toad Brigade) | 比赛: Lux AI Challenge 2021

简介

在开始之前,我们要感谢 Lux AI 和 Kaggle 团队举办了一场精彩的比赛。每个人都积极响应,乐于接受反馈,对开发过程公开透明,或许最重要的是,这个游戏非常有深度,观看和制定策略都很有趣。这是 Lux AI 首届比赛的惊人成就,我们已经期待未来的赛季了!此外,Kaggle 社区在论坛和 Discord 上对策略、技术、教程和排名算法进行了精彩的讨论,对此我们深表感谢——我们总是从这些比赛中学到很多东西!

我们最初采取了多部分方法来设计我们的智能体:Liam 致力于基于规则的智能体,我负责强化学习(RL),而 Rob 则负责对我们和顶级智能体的比赛进行元分析,以发现弱点并总体上提高我们对游戏的理解以及游戏中重要的因素。受去年 Halite 比赛顶级结果的启发,我们最初的假设是基于规则的方法会更成功,也是我们大部分精力的投入方向。然而,令我们惊讶的是,在第一个月内,RL 方法开始击败基于规则的方法,并且似乎在单调改进,没有任何停滞的迹象,因此从 8 月的冲刺赛开始,基于规则的智能体就被放弃了。

对于那些只想了解我所做工作的高级概述的人,我将在本文的第一部分介绍该信息,随后展示智能体实际运行的可视化。在接下来的部分中,我将更深入地探讨,并包含我认为最具创新性和最重要的部分的技术细节。对于那些寻找代码的人,它全部开源,可以在 GitHub 上找到:https://github.com/IsaiahPressman/Kaggle_Lux_AI_2021,以及我们随时间推移的提交记录

高层概述

Lux AI 是一个游戏,两名玩家在大小从 12x12 到 32x32 不等的方格网格上,分别为各自的团队(由工人、推车和城市地块组成)发布命令。目标是控制并开采可用资源,以建造更多城市,这些城市反过来可以研究新资源并建造新工人和推车。每 30 个回合,有 10 个回合的夜晚,在此期间,单位和城市必须消耗它们收集的资源燃烧燃料以求生存,任何没有足够燃料的东西都会消失在夜色中。360 个回合后,拥有最多存活城市地块的玩家赢得比赛。

在强化学习中,智能体通过在每个回合采取行动并接收奖励和新观察结果,反复与环境交互,从而试图学习在给定观察结果的情况下最大化预期奖励总和的最佳行动序列。经过大量游戏经验后,智能体有望学会哪些行动是好的并导致正向奖励,哪些是坏的并导致负向奖励。对于这个双人游戏,在最后时间步给予输家 -1 和赢家 +1 的奖励,其他时间奖励为 0。一个深度卷积神经网络参数化了一个行动策略(换句话说,即策略),该策略使用反向传播进行训练,以最大化赢得比赛而不是输掉比赛的概率(具体来说是对数似然)(因为比赛结果是唯一的非零奖励来源),并且通过多次自我对弈,学会了在每一步采取好的行动而不是坏的行动。

将 RL 应用于该游戏的一个重要挑战是棋盘上的工人、推车和城市的数量是可变的。处理这个问题的一种方法是让一个网络分别控制每个单位,但我觉得这不够充分,因为让独立的单位学会以和谐的方式协同工作具有挑战性,而且如何将奖励分配给独立单位以帮助它们这样做也不太清楚。我选择改用单个网络,该网络同时为棋盘上所有方格的每个工人、推车和城市地块发布命令。然后我只使用来自需要命令的方格上的单位和城市的行动,从而允许网络仅通过一个奖励信号学习协调任意大小的整个舰队。

通过这个过程,并从随机初始化开始,神经网络令人信服且持续地改进了其游戏玩法,独立地学习了新颖的战略和战术行为,无需人工干预。这个过程在比赛期间持续进行,大多数晚上都在训练,智能体几乎持续改进,仅在最后几周有所停滞。起初,智能体学会了简单地砍伐木材并在森林附近建造城市。接下来,它学会了拒绝对手获取资源的重要性,并使用焦土策略消耗所有可用资源,而不顾自身的生存——这一策略足以赢得 8 月冲刺奖。然而,在规则改变后(增加了木材再生并降低了燃料成本以削弱蜂群焦土策略),它开始玩得更保守,保护可再生森林以最大化游戏过程中可用的资源。最后,到比赛结束时,智能体已成为一名强大的玩家,无情地包围和保卫可用

同比赛其他方案