专栏首页奇点大数据游戏AI小试牛刀(1)

游戏AI小试牛刀(1)

现在大家在各种领域使用机器人的事情是越来越多,包括在家政领域和教学领域等等这些在我们身边每天都能接触到的领域。而游戏中使用AI也是一件非常有趣的事情。

为此,我们也做了一些有趣的尝试,比如用它来玩斗地主。

首先是样本的准备,一部分样本是可以从某些平台上获取的,一部分样本也是可以通过程序来自动生成的——这并不新鲜,反正AlphaGo也是这么干的。

其次是建模。建模的方式有很多种,因为建模的本质是建立一种数据逻辑的假说,然后通过样本来进行验证和调整。在这个模型中当然我们首选还是使用基于深度学习模型的CNN网络和DQN网络了。

最后是训练与对抗。在这个过程中,当然还是有很多技巧存在的,在这个不断给予机器人越来越多样本的过程中,机器人也是在不断学习与进化。细节我们有机会再为大家展开。

任何机器人模型在最后训练完了都是一个偌大的权重矩阵,把那个东西给大家看显然不合适,也看明白是在做啥。那我们就不妨看看机器人加了人机接口以后的表现吧。

以我们目前做的这个机器人初级版本为例。首先是选择身份,即手动选择地主,还是下家农民或上家农民。

请选择角色:0为地主,1为先出牌农民,2为后出牌农民:

1

一旦选择以后就可以开始发牌了,这次我们选择了一个下家的农民,这样一来上家的地主,下家的农民就都由机器人来扮演,它们都希望自己能获胜,先来看看配合效果如何。

手牌

当前手牌 3 4 4 5 5 6 6 7 8 9 9 10 J Q Q K 2

地主牌数 20

农民2牌数 17

地主出牌

3 4 5 6 7 8 9

#################

手牌

当前手牌 3 4 4 5 5 6 6 7 8 9 9 10 J Q Q K 2

地主牌数 13

农民2牌数 17

*****************

所有可选出牌

['4 5 6 7 8 9 10', '5 6 7 8 9 10 J', '6 7 8 9 10 J Q', '7 8 9 10 J Q K', '']

出牌:

地主一下子出了一大串3~9,这时我们的选择也比较多4~10,5~J,6~Q,7~K。不过鉴于散牌比较多,这一把就先不出了。

农民2出牌

[]

地主出牌

5

#################

手牌

当前手牌 3 4 4 5 5 6 6 7 8 9 9 10 J Q Q K 2

地主牌数 12

农民2牌数 17

*****************

所有可选出牌

['6', '7', '8', '9', '10', 'J', 'Q', 'K', '2', '']

出牌:

10

地主出5,那么我们把10先垫出去。

农民2出牌

K

地主出牌

A

#################

手牌

当前手牌 3 4 4 5 5 6 6 7 8 9 9 J Q Q K 2

地主牌数 11

农民2牌数 16

*****************

所有可选出牌

['2', '']

出牌:

最大就是2,在没有大小王出来前不能白白送死,还是过。

农民2出牌

2

地主出牌

B

#################

手牌

当前手牌 3 4 4 5 5 6 6 7 8 9 9 J Q Q K 2

地主牌数 10

农民2牌数 15

*****************

所有可选出牌

['']

出牌:

上家的农民还是挺不善的,直接出了2,把地主的大王斗了下来。

农民2出牌

[]

地主出牌

6

#################

手牌

当前手牌 3 4 4 5 5 6 6 7 8 9 9 J Q Q K 2

地主牌数 9

农民2牌数 15

*****************

所有可选出牌

['7', '8', '9', 'J', 'Q', 'K', '2', '']

出牌:

7

地主出了6,看来它散牌也不少,那我们赶紧把7打出去。

农民2出牌

S

地主出牌

[]

#################

手牌

当前手牌 3 4 4 5 5 6 6 8 9 9 J Q Q K 2

地主牌数 9

农民2牌数 14

*****************

所有可选出牌

['']

出牌:

木想到下家农民兄弟一下子出了小王,而且大家都没炸弹。

农民2出牌

7 8 9 10 J

地主出牌

[]

#################

手牌

当前手牌 3 4 4 5 5 6 6 8 9 9 J Q Q K 2

地主牌数 9

农民2牌数 9

*****************

所有可选出牌

['']

出牌:

上家农民兄弟果然是想搞事情,出了7~J,地主是木有的压,我们是压根没有能压的,好尴尬……

农民2出牌

3 3 A A A

地主出牌

[]

#################

手牌

当前手牌 3 4 4 5 5 6 6 8 9 9 J Q Q K 2

地主牌数 9

农民2牌数 4

*****************

所有可选出牌

['']

出牌:

上家的农民兄弟更猛了,直接出了3个A带2个3,地主还有9张牌,我们还有4张。看来这次胜利在望。

农民2出牌

4

地主出牌

7

#################

手牌

当前手牌 3 4 4 5 5 6 6 8 9 9 J Q Q K 2

地主牌数 8

农民2牌数 3

*****************

所有可选出牌

['8', '9', 'J', 'Q', 'K', '2', '']

出牌:

8

刚说完,这农民兄弟就打了一个4,估计刚才那么猛是这张小4给憋的。那我们跟着地主的7出个8。

农民2出牌

J

地主出牌

2

#################

手牌

当前手牌 3 4 4 5 5 6 6 9 9 J Q Q K 2

地主牌数 7

农民2牌数 2

*****************

所有可选出牌

['']

出牌:

上家农民果断打了J,地主出了当前最大的2。好吧,算你狠,你走牌。

农民2出牌

[]

地主出牌

8

#################

手牌

当前手牌 3 4 4 5 5 6 6 9 9 J Q Q K 2

地主牌数 6

农民2牌数 2

*****************

所有可选出牌

['9', 'J', 'Q', 'K', '2', '']

出牌:

J

一张8而已,看来地主也是一堆散牌,我们出个J看能不能放上家农民走。

农民2出牌

[]

地主出牌

2

#################

手牌

当前手牌 3 4 4 5 5 6 6 9 9 Q Q K 2

地主牌数 5

农民2牌数 2

*****************

所有可选出牌

['']

出牌:

我去,居然不出,什么情况。倒是把地主的2给勾搭下来了。好,我忍。

农民2出牌

[]

地主出牌

Q Q

#################

手牌

当前手牌 3 4 4 5 5 6 6 9 9 Q Q K 2

地主牌数 3

农民2牌数 2

*****************

所有可选出牌

['']

出牌:

地主一对Q,大牌啊!

农民2出牌

[]

地主出牌

K K

#################

手牌

当前手牌 3 4 4 5 5 6 6 9 9 Q Q K 2

地主牌数 1

农民2牌数 2

*****************

所有可选出牌

['']

出牌:

地主一对K,还是大牌啊!

农民2出牌

[]

地主出牌

J

地主胜利

木办法,眼睁睁看着地主走掉。

这一局斗地主虽然看上去平淡无奇,但是却是应用了基于深度学习的模型,可以在对抗中进化。这种技术的意义更在于其实现可以进行迁移,可以应用于其它棋牌类游戏和博弈类场景中,这已经带给我们足够的想象力了。我们期待着它的逐步进化。关于实现原理的讨论,以后在相关场合我们再做分享。

本文分享自微信公众号 - 奇点(qddata),作者:高扬

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-05-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 福利赠书!《图解深度学习与神经网络:从张量到TensorFlow实现》

    作为一个三观奇正,有志于分享的公众号,奇点在每周五都有“赠书福利”环节,把更多的好书介绍给读者。关注并转发本篇文章,然后将截图发至后台就可以参与抽奖,每周一奇点...

    刀刀老高
  • 我学习的Spark都在学些什么

    ---- 最近工作中,接触到最有用的“玩具”就是Spark了,在cpu密集型业务驱动下,提升CPU处理效率,高效的利用内存是最优先的事务,所以有个好的计算工具...

    刀刀老高
  • 破解PRISMA(下)

    经过了两周的各种尝试,在各种及其惨烈的测试结果之后,我们还是在网上找到了相关的Paper作为工作指导。 前两周我们的各种尝试是基于一篇名为《Image Styl...

    刀刀老高
  • 基于时空注意力机制的图卷积神经网络交通流预测(附数据集下载方式)

    《Attention Based Spatial-Temporal Graph Convolutional Networks for Traffc Flow F...

    深度学习与交通大数据
  • ogre3d在vs2010下的配置

    forrestlin
  • Octave Convolution详解

    Octave Convolution来自于这篇论文《Drop an Octave: Reducing Spatial Redundancy in Convolu...

    努力努力再努力F
  • Android 获取蓝牙Mac地址的正确方法

    android 从6.0开始,通过BluetoothAdapter.getDefaultAdapter().getAddress()获取的地址是一个固定值02:...

    砸漏
  • iOS 后台持续定位

    在日常的工作开发中,有时会遇到需要在后台持续运行的需求。对于这个需求,安卓实现起来比较简单,而iOS来说就比较复杂了。我们公司就有后台持续定位并且上传上传地理坐...

    赵哥窟
  • 在minukube上安装istio并测试使用

    只有一台机器,又想玩一下 istio 怎么办呢?本文将介绍如何使用 minikube 来安装 istio。

    黑光技术
  • 超30亿中文数据首发!首个专为中文NLP打造的GLUE基准发布

    10 月 18 日,2019 中关村论坛平行论坛 ——AI WORLD 2019 世界人工智能峰会在北京启幕。新智元杨静、科大讯飞胡郁、微软王永东、华为王成录、...

    新智元

扫码关注云+社区

领取腾讯云代金券