一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

使用神經(jīng)網(wǎng)絡 遺傳算法玩轉Flappy Bird | 教程

 昵稱16619343 2017-08-21

問耕 編譯整理
量子位 出品 | 公眾號 QbitAI

震驚!《Flappy Bird》火了這么多年,竟然沒有中文名字。

沒事。這不妨礙各路AI大觸用這款游戲練手。比方說今天這個HTML5教程,就是教你使用神經(jīng)網(wǎng)絡+遺傳算法,搭建一個玩轉小鳥的AI。

提前說一下,教程最后有這個AI的代碼下載。所有的代碼都是使用Phaser框架使用HTML5完成的。另外,神經(jīng)網(wǎng)絡使用了突觸神經(jīng)網(wǎng)絡(Synaptic Neural Network)庫,而不是從零開始搭建。

Demo

上面是Demo演示的截圖,訪問下面這個網(wǎng)址,能夠看到這套算法的實際效果。

不方便觀看上面在線Demo,或者沒有耐心的同學,可以選擇觀看下面這個視頻演示短片,中間有幾倍速度的畫面快進。

算法

這套系統(tǒng)的算法,主要是基于NeuroEvolution(神經(jīng)進化)。這種機器學習方法,使用遺傳算法(GA)等進化方法來訓練人工神經(jīng)網(wǎng)絡(ANN)。

也就是說,這個例子中的機器學習=遺傳算法+神經(jīng)網(wǎng)絡

人工神經(jīng)網(wǎng)絡

人工神經(jīng)網(wǎng)絡是機器學習算法的一個子集,它受到生物神經(jīng)網(wǎng)絡結構和功能的啟發(fā),這些網(wǎng)絡是由很多彼此發(fā)送信號的神經(jīng)元組成。

一個神經(jīng)網(wǎng)絡由輸入層,一個或多個隱藏層,以及輸出層組成。每層都有一些神經(jīng)元,輸入和輸出層的神經(jīng)元直接與外部環(huán)境相連。

在這個項目中,每個智能體(也就是小鳥)都有自己的神經(jīng)網(wǎng)絡作為闖關的AI大腦。這些大腦由三層組成,結構如下:

  1. 一個輸入層,兩個神經(jīng)元,代表小鳥到豁口的水平距離和垂直距離

  2. 一個隱藏層,六個神經(jīng)元

  3. 一個輸出層,一個神經(jīng)元,執(zhí)行如下動作:如果輸出>0.5就飛一下

上述文字,也可以用下面這張圖表示:

遺傳算法

我們在這里使用遺傳算法,來訓練和改進神經(jīng)網(wǎng)絡。

遺傳算法顧名思義,是一種借鑒了自然選擇和遺傳過程的基于搜索的優(yōu)化技術。這種算法使用相同的選擇、組合交叉和變異的組合,來進行初始的隨機演化。

以下是我們遺傳算法實現(xiàn)的主要步驟:

  1. 使用隨機神經(jīng)網(wǎng)絡創(chuàng)建10個初始的小鳥(種群)

  2. 讓小鳥使用他們自己的神經(jīng)網(wǎng)絡,同時起飛玩游戲

  3. 對于每個小鳥,計算適應度函數(shù)來衡量飛行質量

  4. 當所有小鳥死亡時,使用遺傳算子把當前種群評估到下一代

  5. 重復步驟2

適應度函數(shù)

對于上面的第3步,我們深入談一下適應度函數(shù)的細節(jié),以及如何定義。

由于我們想要使用最好的個體(小鳥)來進化種群,所以需要定義一個適應度函數(shù)。

一般來說,適應度函數(shù)用來衡量對象的質量。我們隊每一只小鳥都進行測量,并從中選擇合適的個體,用以生成下一代種群。

在這個項目中,我們按照小鳥的飛行距離給予獎勵。另外,我們會根據(jù)小鳥和下一個豁口的距離給予懲罰。按照這種方式,就可以區(qū)別哪些飛行了同樣距離的小鳥。

替代策略

對于上面第4步中遺傳算法,下面是實現(xiàn)的步驟?;旧?,最好的小鳥個體會生存下來,它們的后代會取代表現(xiàn)最差的那些。

  1. 現(xiàn)有種群的個體按照適應度進行排序

  2. 選擇前四名給予獎勵,直接把它們傳給下一代種群

  3. 排名最高的兩個個體,進行交叉組合,生成一個后代

  4. 前四名中隨機選擇兩個個體,交叉組合產(chǎn)生三個后代

  5. 前四名中隨機選擇兩個個體,生成兩個直接復制的后代

  6. 對于每個后代,施加一些隨機變異

代碼

上述代碼,可以訪問如下地址獲?。?/p>結論

在這個教程中,我們成功的讓AI學會玩Flappy Bird這個游戲。在幾次迭代之后,我們可以得到一個幾乎無敵的小鳥。為了實現(xiàn)這一目標,我們采用了兩種機器學習算法:人工神經(jīng)網(wǎng)絡+遺傳算法。

如果你對這個項目感興趣,未來可以嘗試改變代碼中的一些參數(shù),看看會發(fā)生什么。例如,可以改變隱藏層中的神經(jīng)元數(shù)量或者每一代種群的個體數(shù)量。當然還可以對適應度函數(shù)進行修改,比方加入障礙物之間的距離、重力等等因素。

以及,你可以嘗試把類似的理念應用到其他游戲中去!

祝好運~

加入社群

量子位AI社群7群開始招募啦,歡迎對AI感興趣的同學,加小助手微信qbitbot2入群;

此外,量子位專業(yè)細分群(自動駕駛、CV、NLP、機器學習等)正在招募,面向正在從事相關領域的工程師及研究人員。

誠摯招聘

量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節(jié),)對話界面,回復“招聘”兩個字。

量子位 QbitAI

?'?' ? 追蹤AI技術和產(chǎn)品新動態(tài)

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产欧美高清精品一区| 富婆又大又白又丰满又紧又硬| 久久免费精品拍拍一区二区| 视频一区日韩经典中文字幕| 日韩欧美综合中文字幕 | 欧美一区二区日韩一区二区| 欧美午夜性刺激在线观看| 日本成人中文字幕一区| 亚洲永久一区二区三区在线| 伊人久久青草地综合婷婷| 久久99精品国产麻豆婷婷洗澡| 日本丁香婷婷欧美激情| 亚洲熟妇av一区二区三区色堂| 亚洲a级一区二区不卡| 夫妻性生活黄色录像视频| 国产一区二区精品丝袜| 亚洲欧美日本国产有色| 国产老熟女乱子人伦视频| 99久久人妻精品免费一区| 中国少妇精品偷拍视频| 五月天丁香婷婷狠狠爱| 日本高清加勒比免费在线| 日本在线高清精品人妻| 国产又黄又猛又粗又爽的片| 国产精品乱子伦一区二区三区| 欧美精品在线播放一区二区| 亚洲天堂男人在线观看| 国产一区二区三区成人精品| 亚洲中文字幕亲近伦片| 日韩欧美二区中文字幕| 亚洲国产性生活高潮免费视频| 久久精品中文字幕人妻中文| 亚洲日本韩国一区二区三区| 欧美一区二区三区99| 亚洲一区二区福利在线| 国产欧美日韩在线一区二区| 亚洲二区欧美一区二区| 国产女性精品一区二区三区| 亚洲中文字幕人妻av| 精品人妻久久一品二品三品| 91天堂免费在线观看|