2011-07-17 6 views
2

Q-learningの間にR(s)関数を更新する適切な方法は何ですか?例えば、エージェントが状態s1を5回訪れ、報酬[0,0,1,1,0]を受け取るとする。私は平均報酬を計算すべきですか? R(s1)= sum([0,0,1,1,0])/ 5?または、その州に対して受け取った最新の報酬額に大きな重みを与える移動平均を使用すべきですか?私が読んだQ-ラーニングの説明のほとんどは、R(s)を何らかの一定のものとして扱い、経験が蓄積されるにつれてこの価値をどのように学ぶかをカバーしていないようです。マルコフ決定プロセスにおける報酬関数の学習方法

EDIT:Markov Decision ProcessにQ-LearningのR(s)とR(s、s ')を混同している可能性があります。問題は同様のままです。 MDPを学ぶとき、R(s、s ')を更新する最良の方法は何ですか?

+0

あなたは答えを受け入れることができますか、それとも何が欠けていると言うことができますか? –

答えて

1

Qラーニングは、貪欲なポリシーの下で、実行中の平均値をアクションの値にします。これは、各ステップのペアからの報酬に基づいてこれらの値を計算します。 状態グリーディポリシーの下の値は、最適なアクションの値と同じです。 Q-Learningの標準的な記述は、Reinforcement Learning: An Introductionで与えられています。

「ベストな」更新方法はありませんが、SARSAは適切なデフォルトです。 SARSAはQ-ラーニングに似ていますが、貪欲なポリシーではなく、それに従うポリシーを学習する点が異なります。

+0

私の編集をご覧ください。私はQ-Learningを指すのではなく、代わりにMDPのR(s、s ')関数を更新します。 – Cerin

+0

強化学習によって計算されたアクション値は、予想される報酬です。つまり、遷移確率で重み付けされたすべてのsに対する報酬の合計です。移行確率を知っていれば、簡単に報酬を引き出すことができます。そうでない場合は、アクション値に加えてそれらを見積もる必要があります。 –

+0

これは正しくありません。 Q値は予想される報酬ではなく、ポリシーに従うときに期待される*累積*報酬です。 – purpletentacle

1

標準的なモデルフリーのRL(Q-ラーニングのような)では、報酬関数を覚えていません。あなたが学ぶものは、価値関数またはq値関数です。報酬は環境と相互作用することによって得られ、あなたは州と州の組の経時的な累積報酬の期待値を(割引して)見積もります。

モデルベースのアプローチを使用している場合、これは異なり、環境のモデル、つまり移行および報酬関数を学習しようとします。しかし、これはQ学習のケースではありません。

関連する問題