Red Huang

Red Huang

利用機械学習フラッピーバード

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

#

#

フラッピーバードの学習#

これは機械学習を利用してフラッピーバードを自動的に学習するプロジェクトであり、学習方法は Q 学習を使用しています。

一部はこちらを参考にしました http://sarvagyavaish.github.io/FlappyBirdRL

ゲームフレームワーク#

Phaser.js を使用してフラッピーバードのゲームを作成しました。以下の図を参照してください。

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

Q 学習#

image

重要なのはこの式です。

しかし、この式を使用してトレーニングを開始すると、いくつかの困難に直面します。

image

これら 2 つの状態空間のみを使用すると、つまり QState が 2 次元空間である場合、地面や空との距離がわからないため、低い障害物が頻繁に境界外になります。

そのため、天空までの距離を表す状態空間を追加しました。

image

しかし、これにより別の問題が発生しました。通常の速度でブロックを通過する場合、理論的にはこのように行動するはずです!

赤い点の位置は、押さない場合に比べて Q 値が高くなるように徐々にトレーニングされるはずです。

しかし、この状況では

image

下降速度が速すぎるため、Q 値がブロックに衝突しないために押す必要があるとトレーニングされてしまいます。

また、これら 2 つの状態は正しい位置に収束することができず、他の位置に収束してしまいます。

そのため、速度を表す状態空間を追加する必要があります。

基本的には、これで練習を完了することができます。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。