国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

使用50行Python代碼從零開始實現一個AI平衡小游戲

2020-02-15 23:46:49
字體:
來源:轉載
供稿:網友

 

集智導讀:

本文會為大家展示機器學習專家 Mike Shi 如何用 50 行 Python 代碼創建一個 AI,使用增強學習技術,玩耍一個保持桿子平衡的小游戲。所用環境為標準的 OpenAI Gym,只使用 Numpy 來創建 agent。

各位看官好,我(作者 Mike Shi——譯者注)將在本文教大家如何用 50 行 Python 代碼,教會 AI 玩一個簡單的平衡游戲。我們會用到標準的 OpenAI Gym 作為測試環境,僅用 Numpy 創建我們的 AI,別的不用。

這個小游戲就是經典的 Cart Pole 任務,它是 OpenAI Gym 中一個經典的傳統增強學習任務。游戲玩法如下方動圖所示,就是盡力保持這根桿子始終豎直向上。桿子由于重力原因,會出現傾斜,到了一定程度就會倒下,AI 的任務就是在此時向左或向右移動桿子,不讓它倒下。這就跟我們在手指尖上樹立一支鉛筆玩“金雞獨立”一樣,只不過我們這里是個一維的簡單游戲(但是還是很有挑戰性的)。

你可能好奇最終實現怎樣的結果,可以在repl.it 上查看 demo:

 https:// repl.it/@MikeShi42/Cart Pole 

增強學習速覽

如果這是你第一次接觸機器學習或增強學習,別擔心,我下面介紹一些基礎知識,這樣你就可以了解本文使用的術語了:)。如果已經熟悉了,大可跳過這部分,直接看看編寫 AI 的部分。

增強學習(RL)是一個研究領域:教 agent(我們的算法/機器)執行某些任務/動作,但明確告訴它該怎樣做。把它想象成一個嬰兒,以隨機的方式伸腿,如果寶寶偶然間走運站立起來,我們會給它一個糖果作為獎勵。同樣,Agent 的目標就是在其生命周期內得到最多的獎勵,而且我們會根據是否和要完成的任務相符來決定獎勵的類型。對于嬰兒站立的例子,站立時獎勵 1,否則為0。

增強學習 agent 的一個著名例子是 AlphaGo,其中的 agent 已經學會了如何玩圍棋以最大化其獎勵(贏得游戲)。在本教程中,我們將創建一個 agent,或者說 AI,可以向左或向右移動小車,讓桿子保持平衡。

狀態

狀態是目前游戲的樣子。我們通常處理游戲的多種數字表示。在乒乓球比賽中,它可能是每個球拍的垂直位置和 x,y 坐標和球的速度。在我們這個游戲中,我們的狀態由 4 個數字組成:底部小車的位置,小車的速度,桿的位置(以角度表示)和桿的角速度。這 4 個數字都是給定的數組(或向量)。這個很重要,理解狀態是一個數字數組意味著我們可以對它進行一些數學運算來決定我們根據狀態采取什么行動。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东源县| 揭东县| 郑州市| 固安县| 广东省| 永济市| 镇江市| 青铜峡市| 中方县| 葵青区| 安远县| 温州市| 乌恰县| 双柏县| 鲁山县| 重庆市| 化德县| 霸州市| 东乡族自治县| 济南市| 本溪| 远安县| 诏安县| 肃宁县| 兰考县| 西青区| 崇仁县| 水城县| 靖宇县| 永州市| 延安市| 焉耆| 商南县| 台湾省| 靖西县| 长泰县| 石渠县| 河曲县| 无棣县| 贡觉县| 锦屏县|