2017-04-15 19 views
0

Chromeの恐竜ゲーム(オフライン時に再生できるゲーム)のQ-Learningを実装したいと思います。強化学習における同じ状態の報酬が異なる

私は自分の状態を次の障害物までの距離、速度、次の障害物の大きさと定義しました。

報酬としては、成功した障害物の数を使いたいと思っていましたが、同じ州で異なる即時報酬が発生する可能性があります。同じタイプの障害物がゲームの後半に再び出現する可能性がありますが、すでに障害物が通過しているため、それを渡す報酬は高くなります。

私の質問は今です:これは問題ですか、Q-Learningはまだ動作しますか?より良い方法がない場合は?

+0

私は死のために大きな負の報酬を持つ報酬制度を提案したいと思います。そして、スコアが増加するたびに肯定的な報酬(おそらくスコアの増分に等しい)。私はQラーニングの問題を見ません - 私はバニラQラーニングを使って素晴らしいパックマンエージェントを見ました。恐竜ゲームは問題ではありません。 –

答えて

2

MDPの定義は、報酬r(s,a,s')状態s'を検索する状態sで行動aを取るための期待報酬になるように定義されていることを述べています。これは、与えられた(s,a,s')が、明確な期待を有する限り、一定の報酬または報酬のある分配を有することができることを意味する。あなたが定義したように、報酬は通過した障害物の数に比例します。ゲームは永遠に続くので、(s,a,s')の報酬は自然数の合計のように見えます。このシリーズは、それが期待を持たないように発散する。実際には、Q-ラーニングを実行した場合、値の関数diverge(NaN値)が表示されることがありますが、学習の途中のポリシーは大丈夫かもしれません。なぜなら、最も速く成長する値が最高の状態アクションペアになるからです。

これを避けるには、別の報酬機能を選択する必要があります。エージェントが死亡したときのスコアが何であれ、エージェントに報酬を与えることができます(最後は大きな報酬、それ以外の場合はゼロ)。代理人が選択肢がない限り、生きている報酬(小額の報酬)を与えることもできます。最高のトータル報酬が最長のランに割り当てられている限り(そして(s,a,s')タプルの報酬の期待はよく定義されています)、それは良いことです。