人工智能橄榄球教练

将人工智能、高级统计数据和球员数据结合到橄榄球 Q-learning 算法中,能否产生更好的战术选择?
312 位读者喜欢这篇文章。
football

Opensource.com

我最近决定重新审视 Football-o-Genetics,这是我在 2013 年开发的一款应用程序,旨在“进化”出接近最优的橄榄球进攻战术策略。该应用程序 使用逐场比赛数据以及来自 人工智能 (特别是 遗传算法 )和高级统计数据(以进攻驱动的 马尔可夫模型 的形式)的思想来实现其目标。我在退出进化生物学博士课程后不久开发了 Football-o-Genetics,因此我选择遗传算法(我最早在 Russell 和 Norvig 的经典 人工智能教科书 中遇到的)作为我的优化算法选择,这可能并不令人惊讶。

将近四年后,我对所有人工智能事物的理解比那时更广泛和更深入,现在我清楚地认识到,其他强化学习方法更适合解决这个问题。我认为尝试一下这些其他强化学习方法会很有趣。具体来说,我选择使用 Q-learning,这是一种学习“最优动作选择[策略]”的技术;也就是说,它可以告诉你在不同情况下采取的最佳行动,当你试图最大化某些奖励时。Q-learning 是一种极其灵活和强大的技术,它是 Google 的 人工智能学会以超人水平玩 Atari 游戏 的关键组成部分。

Q-learning 算法实际上 出奇地简单 ,只需一些状态(即情况)表示、可用操作列表和奖励信号。对于战术选择问题,我选择使用三个组成部分来表示每个状态:场地位置、档数以及到首攻线的离散化距离(即“短”、“中”或“长”)。例如,如果球队在自己的 33 码线,并且是二档和 10 码,则状态编码为“33-2nd-Long”。这种编码对应于大约 100 × 3 × 3 = 900 个状态(由于我处理首攻和达阵情况的方式,实际状态更少)。(请参阅下文,了解我为什么选择离散化距离。)

该算法可用的操作对应于不同的战术/球员组合。两种战术是“冲球”或“传球”,每种战术都与几名球员(冲球的跑卫和传球的四分卫)之一结合。这意味着对于任何给定状态,大约有 #RBs + #QBs = #actions 可供选择。

此时,算法已准备好进行训练。训练包括模拟进攻驱动(每次驱动是强化学习术语中的“回合”),并相应地更新 Q 值。进攻驱动从随机生成起始场地位置开始。然后,该算法使用 ϵ-贪婪策略 选择一个动作。当选择一个动作时,在该赛季中,特定战术/球员组合的实际数据中采样了该战术获得的码数。这就是我选择离散化距离的原因;它使得近似特定战术/球员组合所获码数的真实分布变得容易。更明确地说,给定的档数/距离/战术/球员组合与一个列表相关联,例如, down_and_distance["2ndMedPass"]["C Newton"] = [-2, 1, 4, 0, 0, 0, 17, 13, 11, 0, 0, 17, 0, 0, 0, 0, 3, 27, 4, 4, 5, 0, 0, -2, 0, 0, 3, 11, 1] ,并且在一回合中获得的码数是从该列表中随机抽取的。用于训练模型的数据来自 2012 年,因为这是我为原始应用程序收集的数据。

然后,模拟像典型的橄榄球比赛一样进行,并相应地更新档数和距离。失误是根据本赛季实际失误数据估计的概率生成的。当发生失误或驱动达到四档时,回合终止,模拟从头开始重新启动。除了达阵外,所有战术结果的奖励信号均为零,达阵的奖励信号为一。

Heat map of the Q values obtained for first-down play calls at different field positions for the 2012 Carolina Panthers following 100,000 offensive drive simulations.

opensource.com

正如您在图 1 中看到的,您越靠近端区(图的顶部),驱动最终导致达阵的可能性就越大。您还可以看到,总的来说,在 2012 年,让 Cam Newton 在首攻时跑球或传球通常是黑豹队的最佳策略。

虽然这些结果很有趣,但它们实际上并不代表最优的战术选择策略,因为该模型将防守视为环境的一部分,而不是能够适应进攻趋势的对手。不幸的是,防守战术选择数据很难获得,但我已决定概述一下,如果我有时间坐下来观看大量橄榄球比赛,我将如何处理这个问题。(人总要有点梦想,不是吗?)

进攻战术有一个很好的自然分类——冲球和传球——但对防守战术进行分类就没那么容易了。虽然有一些关于防守战术的信息性描述符可用,例如“闪电战”或“区域”与“人盯人”,但它们似乎都不能完全捕捉到防守战术的精髓。在这种情况下,我建议冲锋防守队员的数量 能够胜任这个角色。虽然您无法通过这种分类获得关于防守方盯人情况的精确信息,但它确实让您了解了防守方在战术中的“侵略性”,我怀疑这种属性会转化为有用的统计属性。例如,我预计冲锋防守队员的数量与进攻方在冲球战术中获得的平均码数之间存在负相关关系。

因此,在确定了防守战术选择的分类之后,下一步是确定在给定进攻战术选择和防守战术选择的情况下如何生成码数。我认为我会采取类似于我对 (batter|pitcher)2vec 所做的方法,我在其中构建了一个模型,该模型通过尝试预测几个棒球赛季中每次投球的结果(例如,好球、坏球、左外野高飞球)来学习击球手和投手的分布式表示。(batter|pitcher)2vec。 类似的橄榄球模型,我将其称为 (offense|defense)2vec,可能类似于图 2。

Hypothetical model architecture for generating play outcomes given an offense and defense

opensource.com

该模型的输入将是档数、距离、进攻动作(例如,“传球-C Newton”)、防守球队以及战术中冲锋的防守队员数量。进攻动作的数量大约等于 #teams × (#QBs + #RBs),我们估计约为 32 × (1.5 + 2.5) = 128。在输出方面,执行回归似乎是显而易见的选择,但从概率的角度来看,使用均方误差优化回归模型 相当于假设输出上存在高斯分布 (以模型和输入为条件),并且我认为高斯分布在这里并不适用。另一方面,将所有可能的码数增益(即,从 -99 到 99)视为不同的类别可能是不必要的细粒度,并且可能会使学习变得嘈杂。

Histogram of the yards gained on every play from the 2015 NFL season.

opensource.com

查看图 3 中的直方图(从卡内基梅隆大学发布的 2015 NFL 数据集 生成),我认为合理的输出层可能有一个用于 100 到 40.5 码的箱(代表分布的 1%),一个用于零码的箱,用于 -15 到 -5.5 码和 -5.5 到 -0.5 码的箱,以及每个从 0.5 开始(因此 0.5 到 2.5 将是第一个箱)到 40.5 结束(因此最后一个箱是 38.5 到 40.5)的 2 码跨度的箱。

要为给定的战术生成码数,您首先需要使用档数、距离、进攻动作、防守和冲锋的防守队员数量提供的概率分布对其中一个箱进行采样。从那里,您将从箱中包含的码数中均匀采样。因此,对于范围从 18.5 到 20.5 码的箱,您将有 50% 的机会获得 19 码和 50% 的机会获得 20 码。您显然可以对这些分布做更复杂的事情,但分箱方法似乎是一个合理、简单的近似。此时,剩下要做的就是实施 minimax Q-learning,然后使用新的码数生成器重新运行模拟。

无论如何,以上就是所有假设。您可以在 GitHub 上下载 Football-o-Genetics 源代码 。如果您做过类似的工作,或者如果这个项目最终启发您从事自己的项目,我很乐意听到您的消息。

经 Red Hat 高级软件工程师 Michael A. Alcorn 的博客 许可转载。

User profile image.
Michael 目前是美国农业部农业研究服务中心的人工智能卓越中心研究员。此前,Michael 获得了奥本大学机器学习博士学位,并且曾经是 Red Hat 的机器学习工程师。您可以在他的网站上了解更多关于他的信息。

4 条评论

您的想法对于那些玩梦幻橄榄球的人来说效果好吗?

谢谢。我的儿子和女婿是梦幻橄榄球参与者,当我阅读您的文章时,这让我产生了疑问。我会将您的链接分享给他们。

回复 作者 malcorn

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.