質問

私は(それは基本的にそのだ)家の周りの家具を移動しなければならない男について、Q学習でいくつかの作業を行う必要があります。家が十分に小さい場合、私はちょうどアクション/報酬を表す行列を持つことができますが、家のサイズが大きくなるにつれて、それは十分ではありません。だから私が代わりに、それを一般化機能のいくつかの種類を使用する必要があります。私の先生は、私は1つだけではない使用を示唆しているが、いくつかのものは、私はそれらを比較し、そうでした。あなたたちはお勧めしますか?

私はこのような状況のために、人々はまた、サポートベクターマシン、ニューラルネットワークを使用していることを聞きました。私は言うことができない私は、フィールド内本当にないんです。私は過去にニューラルネットワークを持ついくつかの経験を持っていたが、SVMは多くの困難主題把握するように見えます。私は探さなければならない他の方法がありますか?私はそれらの無数のような存在でなければならないけど、私はただ起動する何かを必要とします。

おかげ

役に立ちましたか?

解決

ただ、専門用語の復習として、Q学習では、あなたは状態と行動に依存してQ-機能を学ぶためにしようとしている。

Q(S,A) = ????

ほとんどのクラスに教示されているようにQ学習の標準バージョンでは、それぞれSとAのために、あなたがテーブル内の個別の値を学ぶ必要があることを示していますし、最適に収束するために、ベルマンの更新を実行する方法を説明します数値ます。

さて、代わりにテーブルの別の関数近似を使用することを言うことができます。例えば、線形関数を試すことができます。あなたの(S、A)のペアを取り、あなたがそれらから抽出できる機能の束を考えます。機能の一例は、「私は隣の壁にアム、」別の「壁に次のアクションの場所オブジェクトは、ウィル」などのナンバーこれらの機能はF1(S、A)、F2(S、A)、です。 ..

さて、これらの機能の線形関数としてQ機能を学習してみてください。

Q(S,A) = w1 * f1(S,A) + w2*f2(S,A) ... + wN*fN(S,A)

どのように重みwを学ぶ必要がありますか?これは宿題ですので、まあ、私はあなたが自分でそれについて考えてみましょうよ。

しかし、ヒントとして、あなたはKの可能な状態と各状態でのM可能なアクションを持っていることを言うことができます。あなたが特定の状態にあり、特定の行動を取るしようとしているかどうかの指標である、それぞれがK * M機能を定義言うことができます。だから、

Q(S,A) = w11 * (S==1 && A == 1) + w12 * (S == 1 && A == 2) + w21 * (S==2 && A==3) ...

次に、どのような状態/アクションペアのために、唯一つの特徴が1になり、残りは0になり、したがってQ(S、A)は、W対応して、本質的にテーブルを学習しているに等しくなることに注意してください。だから、あなたはこれらの線形関数と学習の特殊なケースとして、標準、テーブルQ学習と考えることができます。だから、通常のQ学習アルゴリズムが何をするかを考えると、何を行う必要があります。

うまくいけば、あなたもあなたのスペースを表現することができますK * Mよりもはるかに少ないごく一部の機能の基礎を、見つけることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top