|
本帖最后由 劉景亞 于 2016-4-11 18:26 編輯
0 d; x" M4 R9 h f% R. v o# m3 P7 ^6 G$ w) o- D A. I7 ~3 M7 { C
前段時間的人機圍棋大戰賺足了人們的眼球,Google公司的AlphaGO也使機器學習和深度學習讓更多的人有了一定的了解,可謂做了一次很好的科技普及。. }; b' |# s8 Q% z+ y3 P
現在我們從簡單問題入手,如何基于機器學習,通過自學習的方式讓機器人學會玩“石頭、剪刀、布”游戲?
+ L o( N' G6 E. h不知大家有何建議?歡迎大家發言參加討論。5 Y) L! `7 D& h0 n1 E; Q! d# @
*******************************************************************************************- z3 S/ x; ~, n/ W: D G
分割線以上為原貼) Z) E x' v% O
*******************************************************************************************6 L9 t( J) h, k) B% g5 T
非常感謝各位大俠的參與和討論。! e- x; N. j% t) U
關于機器人玩“石頭、剪子、布”游戲,我本打算分三個問題和步驟和大家一起探討。看到討論中,大家對這三個方面都有所涉及。, e6 D f; e7 T
下面我把我對這個問題的認識拋出來與大家交流分享。2 M c+ O, D2 I e0 N$ E) p
要讓一個機器人玩“石頭、剪刀、布”,我們分三步走。
" [7 _" O$ I' [, i9 S4 K第一步,如何讓機器人通過自學習的方式學會游戲規則?比如,一開始機器人并不知道石頭、剪子和布,哪個贏哪個,要玩游戲首先得學會規則。當然要實現這一步,有比較簡單的辦法,最直接的是程序員編程時,直接定義這個規則,這是以前經常用的傳統的方法。現在我們想通過一種新的方法來實現,讓機器人像小孩一樣,通過不斷地實踐、摸索和總結掌握這個規則,也就是自學習和機器學習。" r8 @* B- w( z7 H! Y0 l
第二步,如何讓機器人在掌握規則后大概率獲勝?- u+ A0 e, K; d2 a" C
第三步,能不能通過一種方法,使機器人在每局對戰時100%獲勝?
8 a* o8 a% Q3 V8 p# B*****************************************************************************************
: E, J. j1 }, q8 E關于第一步,可以用如下方法實現:讓機器人和人對戰,在對戰的實踐過程中訓練機器人,使其不斷自學習以掌握規則。在對戰,人始終隨機出,機器人一開始并不知道規則,也隨機出。贏了有獎勵,輸了有懲罰,隨著對戰次數的增多,機器人就會對出拳的種類形成“價值判斷”。在訓練過程中,機器人會反復判斷,是隨機出還是基于已經學到的部分知識。經過不斷訓練,機器人就會學會游戲規則。這個過程區別于以往的程序員直接定義,和人類的學習過程十分類似。
' |0 R, [% v; w% j$ C, p2 e那么這個方法有沒有效果,我們驗證一下。0 ], a+ |% o/ Z \8 m( }7 X9 V
下圖是我與機器人玩25局的情況,注意這個機器人一開始并不知道游戲規則。我隨機出拳,機器人一開始也隨機出,贏了獎勵,輸了懲罰。大家會發現,從第11局開始,機器人就已經完全掌握了規則。; {4 q \) K( `5 o& m5 x3 C
( |; i/ x- W5 H% s
- [1 }0 ^. M C" `: u; b) o. L/ R: H) R# S/ @$ L
- T- M) w$ E6 {1 @
! @) _: x& ?. Q D' f |
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?注冊會員
x
|