每日最新頭條.有趣資訊

來和這個機器人玩玩“石頭剪刀布”,享受被支配的快感吧

新智元報導

來源:reddit

編輯:大明

【新智元導讀】來和機器人玩“石頭剪刀布”,體驗被支配的快感!Reddit上一位大神用3層簡單RNN訓練出一個“石頭剪刀布”大師,你下一把想出什麽,它都能猜個差不多。採用3D列印的漂亮外殼,紐扣電池即可供電,不服來戰!關注新智元和群,了解更多前沿AI資訊!

我們每個人都玩過石頭剪刀布,這個簡單的遊戲,似乎總有人特別擅長。你總覺得自己出什麽,都盡在對面的掌握之中。

終於,在你連輸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列印外殼。外形上非常接近我之前定製完成的電子骰子,所以其實工作量不是太大。

參考鏈接:

Reddit:

https://www.reddit.com/r/MachineLearning/comments/ca88r4/p_a_little_gadget_that_plays_rockpaperscissors/

GitHub:

https://github.com/PaulKlinger/rps-rnn

視頻:

https://www.youtube.com/watch?v=iuTKBHW0OaU

獲得更多的PTT最新消息
按讚加入粉絲團