人机对战:电脑太简单了,我是射手 skr~skr~skr

2023-11-09 04:51

本文主要是介绍人机对战:电脑太简单了,我是射手 skr~skr~skr,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

9月17日,2018 世界人工智能大会在上海拉开帷幕。在 SAIL 榜单入围项目中,我看到了小爱同学、小马智行、微软小冰、腾讯觅影等等,这不仅让我大开了眼界,也不禁让我感慨 AI 的发展神速。犹记得去年在中国乌镇围棋峰会上,AlphaGo 与排名世界第一的世界围棋冠军柯洁对战,以 3 比 0 的总比分获胜,那时候只感觉这条“狗”真牛。

这也让我回想起了更年少打“人机”的时光——“人机”模式总是很简单,电脑很弱,给玩家的体验并不好。我也曾给设计师出过加强电脑实力的主意——这些主意听起来不错,但不足以延长游戏体验的时间。

直到最近,我觉得 AI 是一种能够提高“人机”对战体验的途径——让电脑更聪明,而不是预先设定更多的套路。

 

人机对战的不足:电脑太弱

我曾经有三个一起玩人机的室友。其中一个叫做二狗子,他提议周五晚上去云蛟网吧开黑玩“人机”大战。

“四瓶可乐,服务员。你和小胖都没玩过,今天玩人机熟悉一下吧。”二狗子皮肤有点黑,头转过来一边和我说着,一边登上了自己的账号。

“电脑都很傻的,你随便打就好了,选个远程,勾引过来用技能耗。这个辅助和射手就是等会和你对线的,小胖中路打这个法师,上路对这个,打野的话你就当他不存在吧,我等会会来帮你的。”按着二狗子说的,我选了一个看上去很厉害(漂亮)的打射手。

果然“人机”对战里的电脑都很傻。每盘射手和辅助都会固定前往三条路线中的下路,而且在游戏难度模式不变的情况下,射手的英雄都是固定两位更替,似乎电脑端只会使用这两套技能。

英雄之间也几乎看不出有任何配合,辅助和射手各自作战,有技能放技能,血量低于一定量的时候会立刻“光速”释放保命技能逃跑。对我这个不熟悉操作的倒是一个难题,每当残血时的快速逃跑,让我很难击败对面英雄获得点数。

还有一个特点是,电脑从来不会冒险追击,电脑控制的人物都有自己的巡逻范围,设下陷阱后再引诱,往往会在中招前早早的折返回去。就像我找到了一个位置,刚好我能击中对方,而对方准备还击时,却因为超出范围,折返回去,以此慢慢消耗对方,但往往会触发对方的逃跑机制。

二狗子把游戏改到困难模式后,电脑的英雄变得多样,释放技能更加频繁,甚至还有多人合作。开局我就被打得节节退败,但失败多次后简单总结观察,掌握了电脑方的套路后,简简单单又赢了。

 

并不靠谱的主意:多套路,加数值

“果然人机都很傻。”赢了之后,我总结道。“不过这人机的设计师,似乎还真的有点本事。许多看上去很傻的行为,现在想想都有点道理,”

我开了另一瓶可乐,发出哧溜的气响,“要是我来设计,肯定不这样。”

“首先,大量收集每场战斗的数据,作为一个样本。之后,根据玩家选择的英雄来选择电脑英雄的作战方式,比如碰到闪避型的玩家英雄,根据之前数据的统计,采取防御守塔的方式,消磨对方的耐心,对面就算闪来闪去操作灵活,但短时间内也无法立即攻破。碰到防御型的玩家英雄,则采取进攻欲望强的方式,抢占先机。

之后就是套路,遇到玩家在固定地点埋伏等待时,立刻更改行军路线,并根据失败率较低的样本来规划路线。

最后就是加强电脑英雄的能力,在身体素质上压制,毕竟在霸道的力量面前,大部分的策略都是以卵击石。”

我讲得似乎很来劲,但是二狗子只是敷衍地嗯嗯,然后说了一句:“我偷塔不就好了。”

到现在我还是没有办法反驳二狗子的话,因为人类玩家总有办法靠套路获胜,纵使电脑端不断采取获胜概率较大的方案——电脑在“吸取教训”后,也就是所谓的机器学习,给玩家会有很直观的体验,觉得电脑变聪明了,但这一学习方法很快就会遇到瓶颈,玩家也会随机固定出一套打法,人机游戏体验也就到了尽头。

直到最近,我觉得似乎有理由反驳二狗子的话了,虽然都到了喝轻怡可乐的年数。

 

人机对战的进阶:人工神经网络

“你打开这个视频看看,DOTA 2 国际赛上这个 OpenAI,就很强。才过去这么几年,现在拿来虐虐我一点问题都没有。”

二狗子直接丢了一句“懒得看”,并立马贴了一篇文章给我。

“笔记记得再厚,概率算得再准是没用的,你那一套思路最多只能把游戏从困难变成超级困难,之后提升难度只能靠改名字来唬人,人家大厂几年前就用‘人工神经网络’来优化 AI 了。”

“也就是,人造英雄对抗人?”

“是的,我给你讲讲大概原理,你听不听?“二狗子发了个“大兵”表情,并处于“正在输入中”:

“人工神经网络通过前向传播对输入值,进行权值运算,最后一层层传下去得到最终输出预测的值。再通过反向传播,与真实值做对比修正前向传播的权值和偏置。你看看这个图理解一下。”二狗子马上发了一个奇怪的图——

 

 

“不懂。你再说详细一点。”

二狗子:“上面这图提到的就是反向传播,反向传播在不断的更新参数 W 和 B 通过梯度下降的算法,运用梯度下降的算法可以找出一组 W 和 B,使得函数 C 最小,在样本上找到最优或者近似最优的 W 和 B ,之后使用 W 和 B 进行预测。你再看看这个图理解一下。”

“哦!哦!!原来是这样啊,也就是比赛 AI 那边还坐着一排游戏选手对吧。“

二狗子继续:“差不多,您是不是感觉视频里就跟真人玩家互相竞赛一样呢?这种体验才是能延长人机游戏生命周期的关键。首先从数据上,样本采集自然是不可或缺的,但是样本采集后不是死的,得活用起来,你就好比用样本来塑造一个职业选手的形象,红色样本代表进攻较强并取得胜利的对战数据,再用这个红色样本堆砌成一名红色选手,命名为好战的斯巴达,然后此基础上,让斯巴达有一定计算能力,分析游戏开始 15 分钟这一时间段的各类数据,再接着比较使用特洛伊还是长坂坡等方案的胜率。”

“我更喜欢沉稳的杰尼龟。”我总觉得得说点什么,不然显得我不如二狗子,“那就是电脑计算能力够强,5 分钟总结一次,1 分钟总结一次,那岂不是天下第一了。我还可以预知一下人类玩家的策略,这类竞技游戏套路全都输入到数据库后,比如一看见三名玩家聚在一起,我先综合比较一下战局的优劣势,AI 优势则 4 人围剿,一人守家,AI 劣势则 4 人防守,一人偷塔。AI 也要你尝尝被偷塔的滋味。”

 

深度学习三要素:数据、模型、计算

“恩,反正差不多这个意思,深度学习实际上就这三点:数据、模型、计算。竞技游戏像 DOTA 这种就十分考究这三点的综合程度。但往往日常功能里,按照这个框架走,就有很好的效果。你看又拍云的这个内容识别功能,就是深度学习的经典案例。你看看这个,我先去开瓶可乐。”二狗子发了一张图给我,我仿佛听见电脑的那一段,“哧溜”的气泡声。

 

图片中的内容,应该就是他所说的经典三点式:

  1. 视频直播,视频点播,图片,文本,就是数据;
  2. 人工处理,训练平台得到模型;
  3. 内容识别系统,就是计算的过程;

我尝试上传几张图片之后,马上就能得出结果了,像这样:

 

不知道二狗子可乐喝光了没有,我还是挺想和他有空再去玩人机对战的。对,就像那天在云蛟网吧里面的一局,电脑英雄斯维因拿了我和小胖 25 个击杀后,又轻松把二狗子秒杀的神奇局。

“要不是你们这两个猪队友,送成这样我会打不过?晚上可乐你买单。”

转载于:https://www.cnblogs.com/upyun/p/9760255.html

这篇关于人机对战:电脑太简单了,我是射手 skr~skr~skr的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/374052

相关文章

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

mss32.dll文件丢失怎么办? 电脑提示mss32.dll丢失的多种修复方法

《mss32.dll文件丢失怎么办?电脑提示mss32.dll丢失的多种修复方法》最近,很多电脑用户可能遇到了mss32.dll文件丢失的问题,导致一些应用程序无法正常启动,那么,如何修复这个问题呢... 在电脑常年累月的使用过程中,偶尔会遇到一些问题令人头疼。像是某个程序尝试运行时,系统突然弹出一个错误提

电脑提示找不到openal32.dll文件怎么办? openal32.dll丢失完美修复方法

《电脑提示找不到openal32.dll文件怎么办?openal32.dll丢失完美修复方法》openal32.dll是一种重要的系统文件,当它丢失时,会给我们的电脑带来很大的困扰,很多人都曾经遇到... 在使用电脑过程中,我们常常会遇到一些.dll文件丢失的问题,而openal32.dll的丢失是其中比较

电脑win32spl.dll文件丢失咋办? win32spl.dll丢失无法连接打印机修复技巧

《电脑win32spl.dll文件丢失咋办?win32spl.dll丢失无法连接打印机修复技巧》电脑突然提示win32spl.dll文件丢失,打印机死活连不上,今天就来给大家详细讲解一下这个问题的解... 不知道大家在使用电脑的时候是否遇到过关于win32spl.dll文件丢失的问题,win32spl.dl

如何使用Python实现一个简单的window任务管理器

《如何使用Python实现一个简单的window任务管理器》这篇文章主要为大家详细介绍了如何使用Python实现一个简单的window任务管理器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 任务管理器效果图完整代码import tkinter as tkfrom tkinter i

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

电脑提示msvcp90.dll缺少怎么办? MSVCP90.dll文件丢失的修复方法

《电脑提示msvcp90.dll缺少怎么办?MSVCP90.dll文件丢失的修复方法》今天我想和大家分享的主题是关于在使用软件时遇到的一个问题——msvcp90.dll丢失,相信很多老师在使用电脑时... 在计算机使用过程中,可能会遇到 MSVCP90.dll 丢失的问题。MSVCP90.dll 是 Mic

使用EasyExcel实现简单的Excel表格解析操作

《使用EasyExcel实现简单的Excel表格解析操作》:本文主要介绍如何使用EasyExcel完成简单的表格解析操作,同时实现了大量数据情况下数据的分次批量入库,并记录每条数据入库的状态,感兴... 目录前言固定模板及表数据格式的解析实现Excel模板内容对应的实体类实现AnalysisEventLis

电脑开机提示krpt.dll丢失怎么解决? krpt.dll文件缺失的多种解决办法

《电脑开机提示krpt.dll丢失怎么解决?krpt.dll文件缺失的多种解决办法》krpt.dll是Windows操作系统中的一个动态链接库文件,它对于系统的正常运行起着重要的作用,本文将详细介绍... 在使用 Windows 操作系统的过程中,用户有时会遇到各种错误提示,其中“找不到 krpt.dll”