如何用机器学习练出一个玩“石头剪刀布”的大师出来

来和机器人玩“石头剪刀布”,体验被支配的快感!reddit上一位大神用3层简单rnn训练出一个“石头剪刀布”大师,你下一把想出什么,它都能猜个差不多。采用3d打印的漂亮外壳,纽扣电池即可供电,不服来战!
我们每个人都玩过石头剪刀布,这个简单的游戏,似乎总有人特别擅长。你总觉得自己出什么,都尽在对面的掌握之中。
终于,在你连输n次5局3胜的比试,被弹了一头包之后,你硬着头皮问对面那个满脸得意的人:“哥,你咋怎么厉害呢?”
对面一般会一脸神秘又略带不屑地对你说一句:“你要出啥,我早都预料到了。”
近日reddit上热议的一个话题就是,如何用机器学习练出一个玩“石头剪刀布”的大师出来。
也许这篇文章的作者小时候也被大神蹂躏过。他利用机器学习训练模型,造出了一台会玩“石头剪刀布”的微型机器人,它的本事就是预测对面下一次出啥。
作者表示,这个机器人在机器学习原理方面并不复杂,模型使用的网络是一个小型的3层vanilla rnn(在tensorflow/keras中训练),训练数据是两名玩家玩”石头剪子布”的记录数据,将这些数据作为输入,并预测输出对手下一步会出什么。这些记录数据来自roshambo.me上的真人游戏信息。
“我添加了一些周期序列的模拟数据,人们在与ai对战时很可能会尝试的做这些事情。”
如果没有模拟数据(易于预测),模型在测试集上的准确率达到38%(相比之下,完全随机对战的胜率为33%,这么看,其实也没强太多?)。
模型在较大批规模进行训练时遇到了一些问题(无论是填充还是填充和屏蔽渐变)所以最后训练的批规模(batch_size)为1,这对于规模如此之小的网络来说还是可以接受的。
更有趣的部分是,这个网络能够在一个小型微控制器上运行。对网络权重进行量化(以8位整型数据存储)可以节省一些空间,因为使用的微控制器只有2kb ram和16kb闪存,计算是使用软件浮点数完成的,性能不是真正的问题。微控制器上运行的c语言代码都是定制的,不是特别复杂。
最终的实体设备大约为硬币大小(但更厚一些)。使用定制的pcb板,由cr2032纽扣电池即可供电,并有一个漂亮的3d打印外壳。外形上非常接近我之前定制完成的电子骰子,所以其实工作量不是太大。

深兰科技荣获2018NBI夏季创新峰会「AI 新动能20强」
DS2155和DS21458之间的细微差别
5G 使 AV 成为车轮上的数据中心
Delonix Bioworks宣布完成1400万美元的种子轮融资
基准分数突出了广泛的机器学习推理性能
如何用机器学习练出一个玩“石头剪刀布”的大师出来
采用Honeywell S9000系统实现对锅炉燃烧进行优化控制
75Ω高通滤波器控制UHF进入卫星DBS调谐器
五种光纤传感器的原理与应用
详解纱线弹性拉伸实验:电子万能试验机操作流程全揭示!
荣耀Note9什么时候上市?华为荣耀Note9全新设计首曝:2799元的售价,性价比如何?
罗克韦尔自动化Rockii Master助力华新有色开启数字化转型之旅
达美航空公布了位于亚特兰大总部的全世界最大喷气发动机测试场
自动应急灯控制电路设计
具有分批分离的多相流量计的原理及设计
欧菲光:前三季度摄像头模组销量为5.53亿颗,同比增长21.81%
HDB-E手持式变压器变比组别测试仪单相电力变测试方法
谷歌量子计算库开源,给量子计算装上AI大脑
NVIDIA发布Spectrum以太网平台 罗姆入选“A级”企业榜单
全球顶级黑客大赛GeekPwn2017吸睛无数,各种智能系统土崩瓦解!