久久久国产一区二区_国产精品av电影_日韩精品中文字幕一区二区三区_精品一区二区三区免费毛片爱

機械社區

標題: 如何讓機器人通過自學習的方式學會玩“石頭、剪刀、布”游戲? [打印本頁]

作者: 劉景亞    時間: 2016-4-8 17:44
標題: 如何讓機器人通過自學習的方式學會玩“石頭、剪刀、布”游戲?
本帖最后由 劉景亞 于 2016-4-11 18:26 編輯 9 |& `& Z9 g& h( G) G+ T0 Q. e

2 X: N, v: ^7 C& D3 a! _+ }- z) K前段時間的人機圍棋大戰賺足了人們的眼球,Google公司的AlphaGO也使機器學習和深度學習讓更多的人有了一定的了解,可謂做了一次很好的科技普及。, l" X) C8 D5 g& f
現在我們從簡單問題入手,如何基于機器學習,通過自學習的方式讓機器人學會玩“石頭、剪刀、布”游戲?
5 \' J% j/ f4 O( S7 P6 V不知大家有何建議?歡迎大家發言參加討論。
( K# N: r0 k- o7 e
*******************************************************************************************5 j% R( i* I6 D) J
分割線以上為原貼; h" W0 [# [" y) y
*******************************************************************************************
5 Y4 L0 q1 F! ]" l7 l# g$ H非常感謝各位大俠的參與和討論。9 F3 W0 p% O3 G0 z/ u% g+ p3 L7 v7 |
關于機器人玩“石頭、剪子、布”游戲,我本打算分三個問題和步驟和大家一起探討??吹接懻撝校蠹覍@三個方面都有所涉及。
( W7 r7 ]! m3 j' C下面我把我對這個問題的認識拋出來與大家交流分享。+ y/ H) r( e1 G+ G: t9 f# t+ u' z
要讓一個機器人玩“石頭、剪刀、布”,我們分三步走。
1 T1 i/ \: x- P. `0 G9 ]0 T第一步,如何讓機器人通過自學習的方式學會游戲規則?比如,一開始機器人并不知道石頭、剪子和布,哪個贏哪個,要玩游戲首先得學會規則。當然要實現這一步,有比較簡單的辦法,最直接的是程序員編程時,直接定義這個規則,這是以前經常用的傳統的方法。現在我們想通過一種新的方法來實現,讓機器人像小孩一樣,通過不斷地實踐、摸索和總結掌握這個規則,也就是自學習和機器學習。% |, ?" S" K) M' ~: M
第二步,如何讓機器人在掌握規則后大概率獲勝?! Q# Z/ R/ g8 j3 c
第三步,能不能通過一種方法,使機器人在每局對戰時100%獲勝?
/ j; \  A$ G6 I) v6 p$ s4 E$ n7 U) R*****************************************************************************************% O" Y, U  E! h6 f  @/ j* z- Z
關于第一步,可以用如下方法實現:讓機器人和人對戰,在對戰的實踐過程中訓練機器人,使其不斷自學習以掌握規則。在對戰,人始終隨機出,機器人一開始并不知道規則,也隨機出。贏了有獎勵,輸了有懲罰,隨著對戰次數的增多,機器人就會對出拳的種類形成“價值判斷”。在訓練過程中,機器人會反復判斷,是隨機出還是基于已經學到的部分知識。經過不斷訓練,機器人就會學會游戲規則。這個過程區別于以往的程序員直接定義,和人類的學習過程十分類似。3 r' }$ k8 h; A! o
那么這個方法有沒有效果,我們驗證一下。; p) D  o" T! M* ]
下圖是我與機器人玩25局的情況,注意這個機器人一開始并不知道游戲規則。我隨機出拳,機器人一開始也隨機出,贏了獎勵,輸了懲罰。大家會發現,從第11局開始,機器人就已經完全掌握了規則。" |$ H* }# ~8 I3 B) _
* K3 I2 P5 }7 u9 l
[attach]383558[/attach]
9 J2 U  f7 c& l% k; u" O
; D* B/ `# K4 }  i  V* B
9 ?% F6 v  f( V8 N, Z& P% D- x& g& U& ~, I

作者: pacelife    時間: 2016-4-8 17:54
這種純概率的東西,要做算法是很簡單,但是勝率要提上去不容易啊
作者: 2266998    時間: 2016-4-8 18:15
應該上一個圖形處理系統,先分辨對面這家伙是誰,再決定怎么玩,
, o- W0 N" b6 q" |
2 o2 D7 `& Y& z* `! |人的活動,是有固定姿態的,比如下一步怎么活動,有細微表現,總結了這些姿態,就可以勝了對面的家伙,+ a% x; K$ y  d" f% {9 x* n

; Y3 e$ Z6 _$ b( F( E) P& Q4 U% Y. @
作者: crazypeanut    時間: 2016-4-8 18:38
本帖最后由 crazypeanut 于 2016-4-8 18:39 編輯
: F. f8 P2 T( D9 v4 h7 K2 F/ C' _' P# C' I
如果不考慮心理學因素的話,猜拳不是博弈系統,是一個純概率系統,樣本空間為(剪,石),(剪,布),(剪,剪),(石,剪),(石,布),(石,石),(布,剪),(布,石),(布,布)
3 R% @2 v7 n+ O* o+ M- d1 Y4 i1 S' N3 H# A% |2 t9 d3 N( j
獲勝組合是(剪,布),(石,剪),(布,石),概率為1/3,相應的,平局組合和輸掉組合均為1/3; j' Z3 Y, A0 F1 k3 b0 c" r

9 J, a! Q3 O; G因此,如果沒有心理學算法在里面,用隨機算法隨機選擇出拳的話,獲勝幾率不會超過1/3
2 @+ P2 f6 i. T& v$ z5 k; l2 |2 Z. W
而將心理學因素考慮進去,就像8爺所說的,要加上圖形系統,增加了復雜性,也偏離了正道
% F: n3 F# ?, O7 g2 d( T5 R; C0 \. {
個人建議,選擇五子棋或者黑白棋作為研究對象更合適,五子棋和黑白棋應該算是最簡單的博弈系統了,棋子就黑白兩種,相對容易處理, N" L0 V4 g% U
. a- A; X) ~/ j) x, T' N
有人可能說井字棋更簡單,但是作為博弈系統,井子棋有不敗的策略,沒有太大的研究價值
作者: 木子12    時間: 2016-4-8 19:06
crazypeanut 發表于 2016-4-8 18:38 0 V$ |# J8 G, `- e( r
如果不考慮心理學因素的話,猜拳不是博弈系統,是一個純概率系統,樣本空間為(剪,石),(剪,布),(剪 ...
! ~# ?+ r, r" l: g# L
之前好像有一個日本的機械手,就是這么干的,動作相當靈活
/ Z" ^/ {+ t8 T0 b
作者: fiyu1314    時間: 2016-4-8 19:54
     玩石頭剪刀布沒問題。很簡單。生成1 2 3 隨機數分別代表石頭剪刀布。  自學習估計這個論壇里懂得就少了。去個程序員論壇估計能弄明白自學習的程序的都不多。頂多就是 分析下 這個人出什么的概率,和出完什么再出什么的概率。然后弄個算法分析下他會出什么的概率最大。再高科技點,就分析他出什么之前的渾身表情動作等。
作者: 冷月梧桐    時間: 2016-4-8 20:25
這是一個隨機概率的問題,石頭,剪刀,布就是三個動作點,然后隨機輸出一個動作點就會呈現一個動作就好了,從理論上來講是完全可行的
作者: shiqi67    時間: 2016-4-8 20:45
樓主的意思應該是“如何讓機器人學會玩剪刀石頭布”,而不是“使機器人玩”剪刀石頭布吧……
- F3 y$ R* G/ |* E5 B樓上都跑偏了吧
作者: huiyu788    時間: 2016-4-9 07:58
可以根據對方出拳的情況,用多項式擬合,然后用多項式預測下一步對方出什么,對方每出一次拳,就修正多項式
作者: wsxm82    時間: 2016-4-11 10:14
用上“分歧終端機”呢,非誠勿擾里的那個
作者: 劉景亞    時間: 2016-4-11 18:42
下圖是我與機器人每次玩25局,重復了6次的實驗結果。" `$ d% @8 q& f" g" h
圖中1表示機器人勝,2表示機器人負,3表示平局。
/ K- a2 ]/ @; Y  c可以看出,機器人基本上在10局左右,就會掌握規則。
# ]5 t4 r7 p% D* v. q( g, W8 t
[attach]383559[/attach]# P3 \- F1 l  x- s

6 r, }) o. S' u! ]# x% W4 W$ V4 Z
9 d' q' i/ K5 \3 _" j8 w8 r$ r: I7 L! V
作者: ywjianghu    時間: 2016-5-8 09:46
樓主位沒有說明,這個機器人是帶視覺識別系統的吧?
" z' O: l  M% p8 r單純從概率和經驗上,是無法判斷人接下去出什么的。
0 \: P. P( I2 j" S3 N8 \, _  ~




歡迎光臨 機械社區 (http://www.ytsybjq.com/) Powered by Discuz! X3.5