http://gcaaa31928.github.io/FlappyBirdLearning/#
#
#
Flappy Bird Learning#
此為利用機器學習的方式自動學習 flappy bird 的專案,而學習方法則是用 Q Learning
部份參考至 http://sarvagyavaish.github.io/FlappyBirdRL
遊戲框架#
利用 Phaser.js 製作出 flappy bird 遊戲,如下圖
(參考至 http://www.lessmilk.com/tutorial/flappy-bird-phaser-1)
Q Learning#
重點在於這一個公式
而一開始利用這個公式訓練時碰到了一些困難
當只使用這兩個狀態空間時,也就是 QState 是一個二維的空間
造成在低點的障礙物無法得知離地面或是離天空的距離而常常超出邊界
所以我加上了一個狀態空間,為到天空的距離
但這又引發了別的問題,當我一般的速度通過磚塊時,理論上會以這個方式行動
紅點的位置會慢慢訓練成不按的情況下 Q Value 會比按的情況下高
但在這個情況時
由於下降的速度太快,導致於 Q Value 訓練成必須要按下之後才能避免撞到磚塊
也因為這兩個狀態沒辦法收斂到正確的位置,而收斂到了其他的位置
所以我們必須再加一個狀態空間為速度這個空間
基本上這樣就可以完成練習了