|
本帖最后由 刘景亚 于 2016-4-11 18:26 编辑
6 [* o- k# K, U! g; A6 z
; u2 B! ]1 Q9 E/ f3 P3 M前段时间的人机围棋大战赚足了人们的眼球,Google公司的AlphaGO也使机器学习和深度学习让更多的人有了一定的了解,可谓做了一次很好的科技普及。
: @# i* q0 k; r- x$ _2 G* G) F现在我们从简单问题入手,如何基于机器学习,通过自学习的方式让机器人学会玩“石头、剪刀、布”游戏?& o! N; k" a" ~, m6 {5 j0 O
不知大家有何建议?欢迎大家发言参加讨论。
" m- ^9 Q: {6 y) k9 x7 P*******************************************************************************************
- [0 F- U: U+ C8 V& B9 {, b分割线以上为原贴' z& P$ ]5 V! g* r. T+ M) y
*******************************************************************************************
1 Q) f6 E8 F* s4 z8 P非常感谢各位大侠的参与和讨论。
3 \7 p0 o5 D4 v7 D* _8 ^; H关于机器人玩“石头、剪子、布”游戏,我本打算分三个问题和步骤和大家一起探讨。看到讨论中,大家对这三个方面都有所涉及。
3 A4 [; I4 s9 Z; [+ S8 d3 d& S; }下面我把我对这个问题的认识抛出来与大家交流分享。
! u/ A( R+ c$ \ l- ~1 b8 V要让一个机器人玩“石头、剪刀、布”,我们分三步走。/ z& B* B2 y* L3 V- u1 A) K1 k
第一步,如何让机器人通过自学习的方式学会游戏规则?比如,一开始机器人并不知道石头、剪子和布,哪个赢哪个,要玩游戏首先得学会规则。当然要实现这一步,有比较简单的办法,最直接的是程序员编程时,直接定义这个规则,这是以前经常用的传统的方法。现在我们想通过一种新的方法来实现,让机器人像小孩一样,通过不断地实践、摸索和总结掌握这个规则,也就是自学习和机器学习。# N4 N- H4 Q0 l- @/ D
第二步,如何让机器人在掌握规则后大概率获胜?$ k' ]7 k: f x3 r* t; E! c A
第三步,能不能通过一种方法,使机器人在每局对战时100%获胜?
! d2 Z! K8 }# K6 T9 `*****************************************************************************************) A/ _, f8 ^' ]6 a
关于第一步,可以用如下方法实现:让机器人和人对战,在对战的实践过程中训练机器人,使其不断自学习以掌握规则。在对战,人始终随机出,机器人一开始并不知道规则,也随机出。赢了有奖励,输了有惩罚,随着对战次数的增多,机器人就会对出拳的种类形成“价值判断”。在训练过程中,机器人会反复判断,是随机出还是基于已经学到的部分知识。经过不断训练,机器人就会学会游戏规则。这个过程区别于以往的程序员直接定义,和人类的学习过程十分类似。
$ p5 J6 _) C2 V1 @那么这个方法有没有效果,我们验证一下。$ Z2 B. L( y t) S+ G6 `. b$ y
下图是我与机器人玩25局的情况,注意这个机器人一开始并不知道游戏规则。我随机出拳,机器人一开始也随机出,赢了奖励,输了惩罚。大家会发现,从第11局开始,机器人就已经完全掌握了规则。2 ^% o6 y) K& ~. y% r# q) ^; m, h
4 B: \. [ X6 S0 B, N) b- h
- ^5 E! d) u1 x0 D& o. ~8 c, J4 u! p) E* Z
7 x e. y5 t$ T: M8 ?/ K" j/ n% }4 d
; C2 Z* t7 j8 k/ x, a |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
|