Red Huang

Red Huang

利用機器學習 flappy bird

http://gcaaa31928.github.io/FlappyBirdLearning/#

#

#

Flappy Bird Learning#

此為利用機器學習的方式自動學習 flappy bird 的專案,而學習方法則是用 Q Learning

部份參考至 http://sarvagyavaish.github.io/FlappyBirdRL

Game Framework#

利用 Phaser.js 製作出 flappy bird 遊戲,如下圖

(參考至 http://www.lessmilk.com/tutorial/flappy-bird-phaser-1)image

Q Learning#

image

重點在於這一個公式

而一開始利用這個公式訓練時碰到了一些困難

image

當只使用這兩個狀態空間時,也就是 QState 是一個二維的空間

造成在低點的障礙物無法得知離地面或是離天空的距離而常常超出邊界

所以我加上了一個狀態空間,為到天空的距離

image

但這又引發了別的問題,當我一般的速度通過磚塊時,理論上會以這個方式行動image

紅點的位置會慢慢訓練成不按的情況下 Q Value 會比按的情況下高

但在這個情況時

image

由於下降的速度太快,導致於 Q Value 訓練成必須要按下之後才能避免撞到磚塊

也因為這兩個狀態沒辦法收斂到正確的位置,而收斂到了其他的位置

所以我們必須再加一個狀態空間為速度這個空間

基本上這樣就可以完成練習了

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。