ガンマ
通常、ガンマはアルゴリズムではなく、問題の一部と見なされます。強化学習アルゴリズムは、状態ごとに累積割引報酬を最適化しようとします。
r1 + gamma*r2 + gamma^2*r3 + gamma^3*r4 ...
現在の状態からrn
タイム ステップで受け取った報酬はどこにありますか。n
したがって、ガンマの 1 つの選択に対してアルゴリズムは 1 つのことを最適化し、別の選択に対しては別のものを最適化します。
ただし、特定の高レベルの目標を定義した場合でも、多くの異なるガンマが目標の要件を満たす可能性があるため、モデル化の選択肢が残ることがよくあります。たとえば、カート ポールの目標は、ポールのバランスをとることです。バランスが取れているすべてのステップに +1 の報酬を与える場合、同じポリシー (常に極のバランスを取るポリシー) がすべてのガンマ > 0 に対して最適です。この目標 - ガンマの値が異なると異なります。
一般に、ほとんどのアルゴリズムは、あまり先の未来を見る必要がない場合、より速く学習します。そのため、ガンマを比較的低く設定するとパフォーマンスが向上する場合があります。一般的な経験則は次のようになります:min_gamma
高レベルの目標をまだ満たす最低のガンマを決定し、ガンマを に設定しgamma = (min_gamma + 1)/2
ます。(それ自体を使用したくないgamma = min_gamma
のは、次善の目標が望ましい目標とほぼ同じであるとみなされるためです。) もう 1 つの有用な経験則: 多くの問題では、0.9 または 0.95 のガンマで問題ありません。ただし、報酬関数と組み合わせたときに、最適化する目標に対してそのようなガンマが何を意味するかを常に考えてください。
ラムダ
ラムダ パラメーターは、現在のモンテカルロ ロールアウトを使用する場合と比較して、以前に学習した値をどの程度ブートストラップするかを決定します。これは、より多くのバイアス (低いラムダ) とより多くの分散 (高いラムダ) の間のトレードオフを意味します。多くの場合、ラムダをゼロに設定することはすでに優れたアルゴリズムですが、ラムダをいくらか高く設定すると速度が向上します。ここでは、何を最適化するかについて心配する必要はありません。目標はラムダとは無関係であり、このパラメーターは学習の高速化に役立つだけです。つまり、ラムダは完全にアルゴリズムの一部であり、問題ではありません。
一般的な経験則は、0.9 に等しいラムダを使用することです。ただし、いくつかの設定 (0、0.5、0.8、0.9、0.95、1.0 など) を試して、学習曲線をプロットするだけでもよい場合があります。次に、最も速く学習していると思われるものを選択できます。