Red Huang

Red Huang

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

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

#

#

Flappy Bird Learning#

このプロジェクトは、機械学習を使用して flappy bird を自動的に学習するものであり、学習方法は Q 学習を使用しています。

一部参考にしたサイトはhttp://sarvagyavaish.github.io/FlappyBirdRLです。

ゲームフレームワーク#

Phaser.js を使用して flappy bird のゲームを作成しました。以下の図をご覧ください。

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

Q 学習#

image

重要なのはこの式です。

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

image

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

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

image

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

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

しかし、この状況では

image

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

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

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

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

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