私は現在、Qラーニングを使用して、壁や障害物でいっぱいの部屋で移動する方法をボットに教えようとしています。部屋の任意の場所から開始して、目標の状態に到達する必要があります(たとえば、ドアのあるタイルなど)。現在、別の牌に移動したい場合はその牌に移動しますが、将来的にはその代わりに別の牌に移動する可能性をランダムに追加する可能性があると考えていました。上下左右にしか動かせません。目標状態に到達すると+100が得られ、残りのアクションは0になります。
私はここにあるアルゴリズムを使用しています。これは次の画像で見ることができます。
さて、これに関して、私はいくつかの質問があります:
- ニューラルネットワークに少し似たQラーニングを使用する場合、学習フェーズと使用フェーズを区別する必要がありますか?つまり、最初の写真で彼らが示したのは学習用のものであり、2番目の写真では使用用のものであるようです。
- 最適なQ値の表に到達するには、無限のステップが必要であるとどこかで読みました。本当?それは真実ではないと思いますが、私はここで何かが欠けているに違いありません。
TD(Temporal Differences)についても聞いたことがありますが、これは次の式で表されているようです。
Q(a, s) = Q(a, s) * alpha * [R(a, s) + gamma * Max { Q(a', s' } - Q(a, s)]
alpha = 1の場合、これは写真の最初に示されているように見えます。ここで、そのガンマはどのような違いをもたらしますか?
- 非常に大きな部屋(たとえば、300x200ピクセル)を試してみると、いくつかの問題が発生しました。基本的にランダムに実行されるため、部屋が非常に大きい場合、最初の状態からゴール状態にランダムに移動するのに多くの時間がかかります。それをスピードアップするためにどのような方法を使用できますか?そのエピソードで私が持っているものがすでにその状態にあるかどうかに関して、私はおそらく真と偽で満たされたテーブルを持っていると思いました。はいの場合は破棄し、いいえの場合はそこに行きます。私がすでにこれらすべての州にいた場合、私はランダムな州に行きます。このように、私が現在行っているよりも少ない頻度で状態を繰り返すことを知っているので、それは私が今していることと同じようになります。
- Q-Valueのルックアップテーブル以外のものを試したいので、このためにバックプロパゲーションでニューラルネットワークを使用することを考えていました。アクション(上、下、左、右)ごとにニューラルネットワークを使用してみます。これが最良の結果をもたらすと思われるためです。良いQ値関数近似を与えるために使用および実装できる他の方法(SVM以外に、自分で実装するのは非常に難しいようです)はありますか?
- 遺伝的アルゴリズムは、Q値マトリックスを基礎として使用して、この状況で良い結果をもたらすと思いますか?適応度関数をテストするにはどうすればよいですか?GAは一般的にもっとランダム/複雑なものに使用されているという印象を私に与えます。注意深く見ると、Q値は明確な傾向をたどっています。つまり、目標の近くではQ値が高く、目標から離れているほどQ値は低くなります。GAによってその結論に到達しようとすると、おそらく時間がかかりすぎるでしょうか。