使用神经网络模型创建一个龙与地下城怪物生成器

2022 年 6 月 29 日 THU数据派


  
  
    
来源:DeepHub IMBA

  本文为约2823字,建议阅读6分钟

本文介绍了 游戏DND怪物统计数据,以及它们与CR以及彼此之间的关系程度.


龙与地下城(DND)于1974年发行第一版,现在所有RPG游戏都有它的影子,可以说它影响了全世界的RPG,对于RPG来说,最主要的一个特点就是有着不同类型的怪物,而我们可以通过《dungeon master guide》中提供的Challenge Rating(CR)公式来创建我们自己的怪物,因为我们也是地牢大师的一员,对吧。



《龙与地下城》让玩家能够自由地与好友一起游戏并创造故事。作为DM,我们还能根据自己的喜好创造属于自己的怪物。所以就有了本篇文章,本文中着重于四个主要问题:


  • 根据CR公式计算的手动怪物的挑战等级有何不同?

  • 怪物的属性如何与挑战评级系统及其本身相关联?

  • 怪物的非属性属性(类型,环境,大小,排列)如何影响它的属性?

  • 我们能预测一个没有经验的dm和SRC怪物相似的怪物属性块吗?

挑战等级(CR)公式


威世智(Wizards of the Coast)提供了一系列图表和一个通用公式,可以为玩家创建自己的自制怪物时作为参考。所以我们首先就是要验证这个公式的准确性。我我们从《怪物手册》中的怪物上应用它,看看是否会获得相同的等级评定?

因此,我从CR列表中获取了三个怪物,并使用公式计算结果,它们实际上非常接近,所以可以证明这个公式是有效的,我们下面可以使用它进行正式的工作了。

从《龙与地下城》的系统参考文件(SRD)中获得了300个怪物,并开始探索数据。幸运的是,威世智为我们提供了免费使用和探索本文档中的信息的服务。

我使用Selenium抓取这些数据感,然后进行了整理。数据科学家一生中90%的时间都在清理数据时,他们不是在开玩笑。

下面是我获取的所有数据的属性:

[‘Monster Name’, ‘Size’, ‘Type’, ‘Alignment’, ‘Traits’, ‘Reactions’, ‘Armor Class’, ‘Hit Points’, ‘Speed’, ‘Challenge’, ‘Proficiency Bonus ’, ‘STR’, ‘DEX’, ‘CON’, ‘INT’, ‘WIS’, ‘CHA’, ‘Actions’, ‘Legendary Ac tions’, ‘Environment’, ‘Attack_Bonus’, ‘Spell_Bonus’, ‘Spell_Save_DC’ , ‘WIS_SV’, ‘INT_SV’, ‘CHA_SV’, ‘STR_SV’, ‘DEX_SV’, ‘CON_SV’, ‘Arcti c’, ‘Coastal’, ‘Desert’, ‘Forest’, ‘Grassland’, ‘Hill’, ‘Mountain’, ‘ NA’, ‘Swamp’, ‘Underdark’, ‘Underwater’, ‘Urban’, ‘Average_Damage_per _Round’, ‘Damage Resistances’, ‘Damage Immunities’, ‘Condition Immun ities’, ‘Damage Vulnerabilities’, ‘Spellcaster’, ‘Magic Resistance’,  ‘Legendary Resistance’, ‘Regeneration’, ‘Undead Fortitude’, ‘Pack T  actics’, ‘Damage Transfer’, ‘Angelic Weapons’, ‘Charge’]

  
  
    

CR与怪物统计数据有关吗?

探索性数据分析的基础就是分布。这些统计数据的数据集是什么样的?我们有很多右偏的数据。考虑到挑战等级的偏右(大多数怪物等级较低),这是合理的。


大多数标准属性:力量、敏捷、智慧、智力和魅力的分布范围都在0到30之间。但是体质中几乎没有10以下的怪物。这应该是因为体质0的话就死了,毕竟在任何游戏中活着是第一位的。


绘制统计数据的联合分布可以得到更清晰的相关图。

熟练度的奖励与挑战评级相关,这是肯定的。所以在我们的模型中不使用熟练度奖励这个特征,因为它不会为我们提供更多信息。我们使用相关性的热图进行更详细的分析。


这里最大的一个发现是敏捷与其他任何统计数据的相关性几乎没有(是不是可以说敏捷是最没用的属性呢😂)。

但是也的确有一些非常强烈的相关属性,这意味着它们相互影响。


为了进一步探索所有怪物的主要统计数据,所以使用了一个简单的箱型图。

只有力量和体质与彼此没有显着差异。所有其他统计数据在平均值上均具有统计学上的显着差异。

这里可能和我们的认知类似一个人的强壮是力量和属性的合体,基本上不会出现,力量很大但是体质很差的人。


怪物的免疫和抗性与挑战等级之间明显缺乏相关性。有这么多的较弱的怪物都有免疫属性😂这个分析也让我更了解了怪物。

怪物类型,环境,大小和排列


上面已经将挑战等级与统计数据进行了比较,可以确定这将是模型的输入,但是其他类型的统计数据:类型,环境,大小和排列方式又是什么样呢?它们对统计有任何影响吗?他们可以用来帮助改善我们的预测吗?

雷达图表是我一直以来最喜欢的图表。他是我在《宠物小精灵》中发现的一个非常好的方法,通过这些图表将分类数据与统计数据进行比较会是一个很好的方法!


上面图中可以看到环境对怪物统计数据的影响很小,我感到非常惊讶/失望。但是我们可以在环境图(下)中看到两个非常不同的总体形状:一个具有高强壮的,但是其他属性低,和一个其他比较全面但智力比较低的形状。这可以算是个好消息,因为它表明环境与统计数据之间存在一些关系。

我们还注意到智力的平均数都比较低。这可能是因为许多“野兽"并不聪明。

创建一个模型来预测怪物数据


既然我已经了解了我们的输入和输出的关系,那么我可以开始创建模型了。基于问题,我们需要的结果是数值,所以回归模型是最好的选择。

在尝试了Scikit-Learn的几种基本算法(线性,K-Nearest,决策树,随机森林)之后。我没有得到令人满意结果,所以我决定选择一种更强大的算法,该算法可以从较弱的输入中学习,并使用相关的输出来构建更好的模型。

我们使用神经网络构建一个 三层的mlp


进行了大约十次运行的微调,包括学习率,批大小,损失函数等。最终获得了85.64%的测试准确性,均方根误差为59.7。这是一个还不错的模型了,为了让用户使用就需要一个前端的界面获取用户的输入数据。我需要plotly 的Dash是很好的工具,效果如下:

总结


在本文中,我们查看了所有怪物统计数据,以及它们与CR以及彼此之间的关系程度。然后使用Keras API和TensorFlow构建和训练,创建了一个85.6%的精确模型和一个Dash UI进行发布,使用AWS Lightsail部署。

测试的地址如下:
https://dnd-monsters.b5171qf35pc3s.us-west-2.cs.amazonlightsail.com/
源代码在这里:
https://github.com/chabazite/DnD_Monsters

——END——


登录查看更多
0

相关内容

一个具体事物,总是有许许多多的性质与关系,我们把一个事物的性质与关系,都叫作事物的属性。 事物与属性是不可分的,事物都是有属性的事物,属性也都是事物的属性。 一个事物与另一个事物的相同或相异,也就是一个事物的属性与另一事物的属性的相同或相异。 由于事物属性的相同或相异,客观世界中就形成了许多不同的事物类。具有相同属性的事物就形成一类,具有不同属性的事物就分别地形成不同的类。
【干货书】Python参考手册,210页pdf
专知会员服务
63+阅读 · 2021年4月30日
专知会员服务
57+阅读 · 2021年4月7日
专知会员服务
42+阅读 · 2021年2月7日
专知会员服务
91+阅读 · 2020年12月26日
【干货书】机器学习速查手册,135页pdf
专知会员服务
125+阅读 · 2020年11月20日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
手把手教你使用 YOLOV5 训练目标检测模型
极市平台
1+阅读 · 2022年1月25日
使用 TensorFlow Quantum 训练多个 Worker
TensorFlow
1+阅读 · 2021年8月2日
Xsser 一款自动检测XSS漏洞工具
黑白之道
14+阅读 · 2019年8月26日
提高GAN训练稳定性的9大tricks
人工智能前沿讲习班
13+阅读 · 2019年3月19日
使用LSTM模型预测股价基于Keras
量化投资与机器学习
34+阅读 · 2018年11月17日
【GAN货】用神经网络生成音乐
专知
13+阅读 · 2018年9月15日
keras系列︱深度学习五款常用的已训练模型
数据挖掘入门与实战
10+阅读 · 2018年3月27日
国家自然科学基金
2+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
Arxiv
13+阅读 · 2021年6月14日
Neural Architecture Search without Training
Arxiv
10+阅读 · 2021年6月11日
Arxiv
27+阅读 · 2020年6月19日
Arxiv
13+阅读 · 2019年1月26日
VIP会员
相关VIP内容
【干货书】Python参考手册,210页pdf
专知会员服务
63+阅读 · 2021年4月30日
专知会员服务
57+阅读 · 2021年4月7日
专知会员服务
42+阅读 · 2021年2月7日
专知会员服务
91+阅读 · 2020年12月26日
【干货书】机器学习速查手册,135页pdf
专知会员服务
125+阅读 · 2020年11月20日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
相关资讯
手把手教你使用 YOLOV5 训练目标检测模型
极市平台
1+阅读 · 2022年1月25日
使用 TensorFlow Quantum 训练多个 Worker
TensorFlow
1+阅读 · 2021年8月2日
Xsser 一款自动检测XSS漏洞工具
黑白之道
14+阅读 · 2019年8月26日
提高GAN训练稳定性的9大tricks
人工智能前沿讲习班
13+阅读 · 2019年3月19日
使用LSTM模型预测股价基于Keras
量化投资与机器学习
34+阅读 · 2018年11月17日
【GAN货】用神经网络生成音乐
专知
13+阅读 · 2018年9月15日
keras系列︱深度学习五款常用的已训练模型
数据挖掘入门与实战
10+阅读 · 2018年3月27日
相关基金
国家自然科学基金
2+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
Top
微信扫码咨询专知VIP会员