返回列表

16th Place Solution

409. Google Research Football with Manchester City F.C. | google-football

开始: 2020-09-28 结束: 2020-12-11 游戏AI AI大模型赛
第16名解决方案

第16名解决方案

作者: Ceshine Lee
原文发布时间: 2020年12月16日

感谢 Kaggle、曼城足球俱乐部和 Google Research 主办了这场精彩的比赛。参与这次比赛是我一段时间以来最有趣的经历。

我的解决方案的“太长不看”版本是:我使用了一个 MLP 模型来随机模仿 WeKick 的智能体,并辅以一些规则来帮助它在陌生的环境中导航。

在拿到 GCP 优惠券后,我看了一下比赛时间表,觉得要在不到两周的时间内从零开始训练一个有竞争力的强化学习(RL)智能体是不可能的。我必须找到某种方法来缩短训练时间。

后来我发现了 Ken Miller 的 RL 近似笔记本,了解到模仿策略的效果相当不错。所以我决定使用类似的方法(预)训练神经网络模型来引导我的策略网络,并使用了基于 Felipe Bivort Haiek 的 Google Football Episode Scraper quick fix 的回合爬虫。非常感谢你们两位!@mlconsult @felipebihaiek

过了一段时间,我通过调整特征和辅助规则发现了很多容易摘取的果实(low-hanging fruits)。由于模型训练仅限于经验回放,无法进行探索。训练出的智能体不知道如何在状态空间的大部分区域行动,因此设定一些规则引导它们回到熟悉的领域非常有帮助。我决定花时间调整模仿者智能体,而不是去尝试 RL 这种“登月计划”。这个更稳妥的赌注得到了回报,在最后一天给了我两个得分约 1,300 的智能体。

一些细节(快速浏览后,似乎有几支队伍使用了与我类似的方法。我还没有通读他们的方案,所以如果没有正确引用已经分享的内容,我深表歉意):

  • 回合: 仅使用了双方智能体排名都较高的回合。这很可能是一个错误。这可能导致我的智能体在与排名较低的智能体对抗时表现不佳。更好的方法可能是基于提交记录进行筛选。
  • 特征: 以活跃球员为中心的坐标;守门员的坐标和速度与其余球员分开保存;其余球员按距离排序的坐标、距离、角度和速度;冲刺和盘带的粘滞状态;球的特征;越位特征(似乎没有按预期工作)。
  • 随机动作: 我降低了 softmax 函数的温度(通过将 logits 加倍)。这似乎比确定性/贪婪动作效果更好。
  • 规则:
    • 在特征中使用方向粘滞状态会导致过拟合和异常行为,所以我移除了它们。缺点是球员会在任意球时将球高传回给守门员,导致乌龙球。所以我指示球员在任意球时直接向右移动。
    • 模型仅控制正常比赛和界外球模式。训练模型去玩其他模式似乎是在浪费时间。
    • 不盘带。
    • 冲刺完全基于规则。我发现这在最后几天效果稍好,因为它不会在关键时刻浪费宝贵的时间来发出冲刺指令。
    • 当球员直接将球带出界外时,让他们转身。
    • 防守是最棘手的部分。在早期实验中,当被其他球员控制的球离活跃球员太远时,模型会发出荒谬的指令(可能是由于训练期间缺乏探索)。因此,我在防守时给智能体拴上了“皮带”。模型只允许在球足够近或高传球时接管;否则使用“跑向球”策略。这种方法给了对方很多轻松射门的机会。直到最后一天我才意识到,对于最新的模型来说,这条“皮带”拴得太紧了。在本地测试中,放松皮带带来了更好的结果。不幸的是,那时我只剩下两次提交机会,所以无法正确调整这个超参数。
  • 本地测试: 起初,我让我的智能体与简单的内置 AI 对战,看它们是否能持续以超过五球的优势击败 AI。后来我发现,简单模式下的较大分差并不能转化为对阵高排名智能体时的更好表现,所以我切换到了困难的内置 AI。

我的代码已在 Github 上公开。目前缺乏适当的文档和环境复现说明。我会尽量在接下来的几天里完善它。

同比赛其他方案