以深度学习游玩《赛马娘》之试作研究

作者:U-ACG
2021-07-13
8 1 1

此文来自于:UACG ED,原文地址:http://www.u-acg.com/archives/25227 

鉴于繁体中文地区不同人名和名词的差异,我们对文章内容做了部分修正,例如:

  • 程式 -> 程序
  • 網路 -> 网络


2021 年二月底,游戏公司 Cygames 终于把酝酿了三年的巨作《ウマ娘 プリティーダービー》从裤兜里掏了出来,游戏一上市就以迅雷不及掩耳之势占据了各平台的热门第一,并在约 20 天后下载数就达到了 300 万,更是在游戏推出第五天营收就高达 20 亿日圆,风靡全日本及海外宅圈。

《ウマ娘 プリティーダービー(下略称ウマ娘)》为一款养成类型游戏,玩家可以挑选自己喜欢的马娘进行培养,在一个周回中对她进行各种训练、并参与赛马比赛,最终获得大赛决胜完成养成,养成完毕的马娘可以参加竞技场,也可以作为下一只马娘培养时的继承因子。

■ 研究原因和目标

在《ウマ娘》中,培养时的“训练选项”选择是非常重要,有些选择甚至足以左右你的马娘是否能拿到大赛决胜,游戏中也具备了一些机率变数,这对新手不太友好、甚至是老手也未必能把每一个选择选对,

故本研究想要利用深度学习中的强化学习(Reinforcement Learning)方法,以类神经网络模型来玩《ウマ娘》,借由深度学习来找到在某情况中应该选择的正确选项。

■ 研究方法

本研究之程序设计分为两部分,一是设计一套《ウマ娘》模拟器,二是深度学习训练模型。

一、《ウマ娘》模拟器

首先以 C++编写一模仿ウマ娘的系统做出的一个执行在纯文字介面(Terminal 介面)的模拟器,该模拟器会显示数值目标,并让玩家选择训练类型或休息的选项并反映在数值上,最后借数值比对判断玩家使否成功通关;

此模拟器中模拟了马娘的体力(体力)、干劲(やる気)、五种训练项目选择(スピード、スタミナ、パワー、根性、贤さ)、两种休息方式选择(お休み、お出かけ)、训练项目等级(トレニングレベル),

一些特殊剧情、因子引继、辅助卡(サポートカード)的系统则未实装;游戏方式为模拟器会输出马娘的五项数值、目前体力与干劲,并让玩家选择 5+2 种训练与休息方法,选择后模拟器会依据目前所剩体力、干劲以及训练项目等级来判断训练是否成功、会增加多少数值,并将增加后的数值输出,并重复步骤。

程序运行状况如下图:

机器学习部分则使用 Python 中的 Pytorch 张量处理 Package 作为框架设计类神经网络,本研究中主要利用强化学习(Reinforcement learning)中基础的 DQN(Deep Q-Network)算法来做;

首先,强化学习为假设一 Agent 在一 Environment 中,Agent 即为我们的机器学习程序,Environment 则为ウマ娘模拟器,当 Agent 观察 Environment 的状态(status)做一动作(action),Environment 会返还一个新的状态并给予一个奖励(reward),而 Agent 的目的就是将获得的奖励最大化;

而 DQN 就是以 Q-function,一种可以计算做一动作后未来可获得的奖励的期望值的函式做奖励的估算,最终目的是找到能获得最多奖励的 Q-function,由于当输入的参数很多时 Q-function 会很难计算,于是干脆用类神经网络来当作 Q-function,这也就是 DQN 的原理;

最后我们用 Subprocess 建立 IO Pipe 来将资料在两程序间进行资料传输就完成全部架构。程序架构如下图:

■ 研究过程与结果

一、DQN 模型训练结果

我首先设定类神经网络为三层+输出层,前三层的 activation function 为 ReLU,最后一层输出层则为 Softmax;参数设定如表 1,Reward 给予方法为:“若完成一次赛事则+1,赛事失败则-1,一般训练失败则-0.01”;最后训练结果如下图。

由上图中可以看到,训练结果不甚理想,刚开始 loss 虽有明显的下降,但到约第 100 个 Epoch、 loss 下降到 0.2 左右后就不再下降,实际测试模型的预测结果发现模型倾向只选一个选项,且每次训练出来的模型都不一样,

像本次图中的模型为全部都只选第二个选项,也就是スタミナ训练,唯一有一些不同选择处则是因为动作是随机选的的,由于在表 1 中的 e 是设为 0.8,所以有 20% 的机率的动作选择会是随机的,除此之外不管数值如何变化,模型都会选择固定选项,

由此可知模型并未学习到我们希望他学习的如没有体力时要休息回体力等技巧,另外也有尝试减少层数、改变 Learning rate、改变 Batch size…等等,但结果都相差无几,由于 loss 图形根本一样,就不放上来了,本次实验也算宣告失败。

■ 小结

目前强化学习的算法开发还未到稳定阶段,网络上查询到的论文也多是在游玩上世纪 70, 80 年代的 Atari games,其游戏变数与《赛马娘》有很大的落差。如果 Environment status 与行动的关系度小可能就无法训练,故本研究仅为期末作业一试作之项目,有可能在模型设计上还不纯熟、设计不够周延导致导致失败;

未来应该会继续尝试其他进阶算法如 DDQN 等,尝试让模型能学到如何游玩《ウマ娘》。

■ 说明

作者|陈柏翰  材料系 24 级

本文是我们于国立大学之课程讨论作业的成果之一。让学生选择自己有兴趣的题目,透过游玩游戏或观看动画,进而提出问题,加以解释与观察,最后成为期末作业。

提供学生作为观看者、参与者与评论者的一种练习与尝试,也与我们推广的“轻学术”有相连结之处。我们希望透过这种方式,让学生游玩观赏自己喜欢的作品,进而获得练习的机会。所以虽然本《赛马娘》的研究成果算是失败,但仍公开给大家看,作为有意义之游玩和学习过程。

SOURCE

(1) https://medium.com/鸡鸡与兔兔的工程世界/机器学习-ml-notereinforcement-learning-强化学习-dqn-实作 atari-game-7f9185f833b0
(2) https://japanese.engadget.com/app-game-cygames-113230964.html
(3) https://hackmd.io/@shaoeChen/Bywb8YLKS
(4) https://hackmd.io/@shaoeChen/Syez2AmFr
(5) https://towardsdatascience.com/double-deep-q-networks-905dd8325412
(6) https://zhuanlan.zhihu.com/p/337553995
(7) arXiv:1509.06461v3 [cs.LG] (https://arxiv.org/abs/1509.06461)

U-ACG 

U-ACG是台湾国立交通大学数位文创学程、御宅学术研讨会与台北电玩艺术节的官方资讯网站。我们致力于广义的游戏、动漫与教育艺术文化之间的媒合与流动,也製作动画、桌游和手机游戏,并支持相关活动的推广 。 

您可能还会对这些文章感兴趣

参与此文章的讨论

  1. 方程 2021-07-13

    一篇会让人想起学生时代的(伪)论文
    ( •́ _ •̀ )

您需要登录或者注册后才能发表评论

登录/注册