机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 8630|回复: 11
打印 上一主题 下一主题

如何让机器人通过自学习的方式学会玩“石头、剪刀、布”游戏?

[复制链接]
跳转到指定楼层
#
发表于 2016-4-8 17:44:57 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 刘景亚 于 2016-4-11 18:26 编辑
# k7 R8 N- P: Y7 @: C' r# Q& C# c" p/ b7 R
前段时间的人机围棋大战赚足了人们的眼球,Google公司的AlphaGO也使机器学习和深度学习让更多的人有了一定的了解,可谓做了一次很好的科技普及。, V. ^3 ~$ F4 v6 c. @5 u; Z
现在我们从简单问题入手,如何基于机器学习,通过自学习的方式让机器人学会玩“石头、剪刀、布”游戏?; S& Y: ?; c/ R/ f2 x! i! y
不知大家有何建议?欢迎大家发言参加讨论。

$ s* [9 N% ~) i! S' r*******************************************************************************************
! \+ p6 y% I' Q3 u分割线以上为原贴
5 c6 z/ ~, ?  J1 u+ f" L' ~3 I*******************************************************************************************% @( P) z# g* o
非常感谢各位大侠的参与和讨论。
4 `  ^0 x% {6 s9 [# l9 P8 [关于机器人玩“石头、剪子、布”游戏,我本打算分三个问题和步骤和大家一起探讨。看到讨论中,大家对这三个方面都有所涉及。) D/ C; R$ G0 Q9 o4 s2 K- A
下面我把我对这个问题的认识抛出来与大家交流分享。2 K5 S) l! F, ?
要让一个机器人玩“石头、剪刀、布”,我们分三步走。4 J# v* @8 T3 [$ B- v1 f- N& U, k
第一步,如何让机器人通过自学习的方式学会游戏规则?比如,一开始机器人并不知道石头、剪子和布,哪个赢哪个,要玩游戏首先得学会规则。当然要实现这一步,有比较简单的办法,最直接的是程序员编程时,直接定义这个规则,这是以前经常用的传统的方法。现在我们想通过一种新的方法来实现,让机器人像小孩一样,通过不断地实践、摸索和总结掌握这个规则,也就是自学习和机器学习。
( ]& G# x* a. ^0 B第二步,如何让机器人在掌握规则后大概率获胜?
+ b/ }: j2 Q6 f1 S. m, S. @8 T第三步,能不能通过一种方法,使机器人在每局对战时100%获胜?9 K5 ]) K/ k' P) K: }: W
*****************************************************************************************
# `6 f, l, x4 V& W8 P  f) E关于第一步,可以用如下方法实现:让机器人和人对战,在对战的实践过程中训练机器人,使其不断自学习以掌握规则。在对战,人始终随机出,机器人一开始并不知道规则,也随机出。赢了有奖励,输了有惩罚,随着对战次数的增多,机器人就会对出拳的种类形成“价值判断”。在训练过程中,机器人会反复判断,是随机出还是基于已经学到的部分知识。经过不断训练,机器人就会学会游戏规则。这个过程区别于以往的程序员直接定义,和人类的学习过程十分类似。/ E3 a2 \: g- _/ I+ `; i
那么这个方法有没有效果,我们验证一下。+ q! @9 s& Z4 I
下图是我与机器人玩25局的情况,注意这个机器人一开始并不知道游戏规则。我随机出拳,机器人一开始也随机出,赢了奖励,输了惩罚。大家会发现,从第11局开始,机器人就已经完全掌握了规则。; `# a1 l" z3 D& y7 B
) F8 E( V+ P) k" ^% z/ p

( c3 i; X  ^+ Z: D7 v+ n* T: x
6 C: e: c6 _. T$ B) L
9 ?2 n8 a* J$ u3 {6 n
) p3 P, @. e. T( S- a) \

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
回复

使用道具 举报

11#
发表于 2016-5-8 09:46:29 | 只看该作者
楼主位没有说明,这个机器人是带视觉识别系统的吧?
. Q% g$ v2 j4 [  T( Q单纯从概率和经验上,是无法判断人接下去出什么的。' b) x0 b$ u' i& b
回复 支持 反对

使用道具 举报

10#
 楼主| 发表于 2016-4-11 18:42:59 | 只看该作者
下图是我与机器人每次玩25局,重复了6次的实验结果。5 V0 H. L9 y: ^4 z: q/ ~0 O) W3 Q2 u
图中1表示机器人胜,2表示机器人负,3表示平局。7 N& Y9 Q) O3 M
可以看出,机器人基本上在10局左右,就会掌握规则。
7 D" v: f$ W7 u5 x& m$ \
. X5 y# y2 j: Z- E9 k

% A, ^  p: G/ m  U& D+ y+ }- u5 `+ _

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册会员

x

评分

参与人数 1威望 +1 收起 理由
不懂的太多xx + 1

查看全部评分

回复 支持 0 反对 1

使用道具 举报

9#
发表于 2016-4-11 10:14:52 | 只看该作者
用上“分歧终端机”呢,非诚勿扰里的那个

点评

可作为应用案例  发表于 2016-4-11 18:25
回复 支持 1 反对 0

使用道具 举报

8#
发表于 2016-4-9 07:58:07 | 只看该作者
可以根据对方出拳的情况,用多项式拟合,然后用多项式预测下一步对方出什么,对方每出一次拳,就修正多项式

点评

这个方法可行性可进一步讨论  发表于 2016-4-11 18:25
回复 支持 反对

使用道具 举报

7#
发表于 2016-4-8 20:45:29 | 只看该作者
楼主的意思应该是“如何让机器人学会玩剪刀石头布”,而不是“使机器人玩”剪刀石头布吧……: Q( M, G) o7 S6 P0 r- S' x
楼上都跑偏了吧

点评

大家讨论的问题都会涉及,我在主楼做了进一步说明。  发表于 2016-4-11 18:24
回复 支持 反对

使用道具 举报

6#
发表于 2016-4-8 20:25:16 | 只看该作者
这是一个随机概率的问题,石头,剪刀,布就是三个动作点,然后随机输出一个动作点就会呈现一个动作就好了,从理论上来讲是完全可行的

点评

实质就是这样的了,又不是下象棋。象棋之类的话还要一个内核,一个扫描和伺服。你就石头剪刀布的话就用几个气缸也可以控制手势  发表于 2016-4-11 19:17
这个思路可进一步探讨  发表于 2016-4-11 18:24
回复 支持 反对

使用道具 举报

5#
发表于 2016-4-8 19:54:31 | 只看该作者
     玩石头剪刀布没问题。很简单。生成1 2 3 随机数分别代表石头剪刀布。  自学习估计这个必威APP精装版下载里懂得就少了。去个程序员必威APP精装版下载估计能弄明白自学习的程序的都不多。顶多就是 分析下 这个人出什么的概率,和出完什么再出什么的概率。然后弄个算法分析下他会出什么的概率最大。再高科技点,就分析他出什么之前的浑身表情动作等。

点评

欢迎交流探讨  发表于 2016-4-11 18:23
回复 支持 反对

使用道具 举报

4#
发表于 2016-4-8 19:06:20 | 只看该作者
crazypeanut 发表于 2016-4-8 18:38 , e0 h' C6 F$ r
如果不考虑心理学因素的话,猜拳不是博弈系统,是一个纯概率系统,样本空间为(剪,石),(剪,布),(剪 ...

/ b3 |. b% W5 \# ]之前好像有一个日本的机械手,就是这么干的,动作相当灵活; q+ @- v$ O6 c( Y+ T! ?

点评

实质就是这样的了,又不是下象棋。象棋之类的话还要一个内核,一个扫描和伺服。你就石头剪刀布的话就用几个气缸也可以控制手势  发表于 2016-4-11 19:17
日本东京大学的研究室  发表于 2016-4-11 18:22
回复 支持 反对

使用道具 举报

3#
发表于 2016-4-8 18:38:22 | 只看该作者
本帖最后由 crazypeanut 于 2016-4-8 18:39 编辑
$ B7 `( R: i& A+ s% V: x0 c% D" S& q; d, q3 _
如果不考虑心理学因素的话,猜拳不是博弈系统,是一个纯概率系统,样本空间为(剪,石),(剪,布),(剪,剪),(石,剪),(石,布),(石,石),(布,剪),(布,石),(布,布)
4 K8 O6 D7 z$ H" H( G! E
/ F% j/ d6 S+ X2 O* H  a- |5 @获胜组合是(剪,布),(石,剪),(布,石),概率为1/3,相应的,平局组合和输掉组合均为1/3; E  P" c% R% P8 g2 `0 X8 o

/ |8 S7 H/ |5 _8 E5 v因此,如果没有心理学算法在里面,用随机算法随机选择出拳的话,获胜几率不会超过1/3
2 M. O: i4 Y* d, n) q! M+ b7 {: q/ L
而将心理学因素考虑进去,就像8爷所说的,要加上图形系统,增加了复杂性,也偏离了正道2 H! N: o0 _0 h

  ^: C3 Z3 d. K7 {+ X个人建议,选择五子棋或者黑白棋作为研究对象更合适,五子棋和黑白棋应该算是最简单的博弈系统了,棋子就黑白两种,相对容易处理
8 Z1 `' A' z& W1 ~; `( V0 Q7 w# L: h' T  r
有人可能说井字棋更简单,但是作为博弈系统,井子棋有不败的策略,没有太大的研究价值

点评

我在主楼对该系统做了进一步说明,欢迎探讨交流。  发表于 2016-4-11 18:22
之前好像有一个日本的机械手,就是这么干的,动作相当灵活  详情 回复 发表于 2016-4-8 19:06
998那方法,是“作弊”的方法,相当于滞后一步。要是根据上一步出法,就是考虑心理学,博弈和统计,求个概率胜法。  发表于 2016-4-8 18:56
回复 支持 反对

使用道具 举报

2#
发表于 2016-4-8 18:15:31 | 只看该作者
应该上一个图形处理系统,先分辨对面这家伙是谁,再决定怎么玩,
6 H% f- j) d$ K. ?4 \% q( V/ j: l1 ~8 ]* W8 D9 s
人的活动,是有固定姿态的,比如下一步怎么活动,有细微表现,总结了这些姿态,就可以胜了对面的家伙,- C9 e. w$ y" f  J, b( o

: ~/ I4 p+ w6 l% `

点评

998大侠高人,这是我们做这个系统的最终目的和最高境界。  发表于 2016-4-11 18:21
8也的观点让我想起了那个很有名的猜拳理论。高举拳,将注意力放在对方的手上,在出手的一瞬间,按照人的行为习惯,手会有一个瞬时的形态变化,据此可判断对方出的是什么。只要眼力好,胜率超过95%  发表于 2016-4-9 02:24
8爷,久仰大名。他表达的不是这个意思,他举得是围棋的例子。所以他想要知道的是逻辑上的自学习,简单点说,就是第一次和这个人下棋因为走这一步输了,下次他就不会再走这步了。是类似这种逻辑怎么用程序实现,  发表于 2016-4-8 20:04
8爷,久仰大名。他表达的不是这个意思,他举得是围棋的例子。所以他想要知道的是逻辑上的自学习,简单点说,就是第一次和这个人下棋因为走这一步输了,下次他就不会再走这步了。是类似这种逻辑怎么用程序实现,  发表于 2016-4-8 20:03
八爷学过心理学吧,我有一亲戚,以前流行喝酒猜拳的时候,陌生人顶多刚开始会输几把。熟人逢他必喝,假如他想喝了才会故意输。就是机灵,观察细致  发表于 2016-4-8 18:22
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

小黑屋|手机版|Archiver|机械必威体育网址 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2024-10-8 02:28 , Processed in 0.069593 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表