この投稿から時間差学習を勉強しています。ここで、TD(0) の更新規則は明らかですが、TD(λ) では、以前のすべての状態の効用値が 1 回の更新でどのように更新されるかがわかりません。
ボットの更新を比較するための図を次に示します。
上図は次のように説明されています。
TD(λ) では、適格性トレースのおかげで、結果が以前のすべての状態に伝播されます。
私の質問は、資格トレースで次の更新ルールを使用している場合でも、1 回の更新で以前のすべての状態に情報がどのように伝達されるかです。
ここでの単一の更新では、単一の状態のユーティリティのみを更新しUt(s)
ていますが、以前のすべての状態のユーティリティはどのように更新されているのでしょうか?
編集
回答によると、この更新がすべてのステップに適用されることは明らかであり、それが情報が伝播される理由です。これが事実である場合、更新ルール間の唯一の違いは資格トレースであるため、再び混乱します。
そのため、以前の状態で適格性トレースの値がゼロでない場合でも、上記の場合、デルタの値はゼロになります (最初は報酬と効用関数が 0 に初期化されるため)。では、以前の状態が最初の更新でゼロ以外の効用値を得ることができるのはどうしてでしょうか?
また、指定された python 実装では、1 回の反復後に次の出力が得られます。
[[ 0. 0.04595 0.1 0. ]
[ 0. 0. 0. 0. ]
[ 0. 0. 0. 0. ]]
ここでは、図に示すように、以前の 5 つの状態すべてではなく、2 つの値のみが更新されます。ここで何が欠けていますか?