時間差分学習(TD学習)
時間差分学習(じかんさぶんがくしゅう、英: temporal difference learning)、略してTD学習は、
強化学習の中で非常に重要な手法の一つです。この手法では、エージェントは環境との相互作用を通じて現在の状態価値関数の推定を行い、その推定に基づいて次の学習を行います。このプロセスは、モンテカルロ法からサンプルを取得し、動的計画法に似た方法で状態価値関数を更新するという点が特徴です。
状態価値関数とは
状態価値関数とは、ある状態において得られる報酬の期待値を表す関数であり、記号で表すと次のようになります。
$$
V(s)
$$
ここで、$V(s)$はその状態$s$に対する価値を示します。この価値は、現在だけでなく将来的な報酬を考慮して学習されます。将来の報酬を扱う際には、
経済学で用いられる割引率を考慮し、その結果、#### 割引収益(discounted return)と呼ばれる概念が生まれます。
この手法自体は、少なくとも1959年頃にアーサー・サミュエルが
チェッカーをプレイする人工知能プログラムにおいて利用されていましたが、「時間差分学習」という名称は1988年にリチャード・サットンによって命名されました。
TD学習のアルゴリズム
TD学習アルゴリズムでは、状態$S_t$にあるエージェントが行動$A_t$を選択し、その結果得られた報酬$R_{t+1}$によって次の状態$S_{t+1}$へ遷移します。このプロセスにおいて、状態価値関数$V(S_t)$の更新は次の式に従って行います。
$$
V(S_t) \leftarrow (1 - \alpha)V(S_t) + \alpha [R_{t+1} + \gamma V(S_{t+1})]
$$
ここで、$\alpha$は学習率を示し、通常は$0 < \alpha < 1$の範囲にあります。$\gamma$は割引率で、同様に$0 < \gamma < 1$の定数です。これらのパラメータは、エージェントの学習速度や未来の報酬をどの程度重視するかを決定します。
行動$A_t$は、状態価値関数を元に選択されます。そして、更新式は次のようにも表現できます。
$$
V(S_t) \leftarrow V(S_t) + \alpha [R_{t+1} + \gamma V(S_{t+1}) - V(S_t)]
$$
この式の中で、項$R_{t+1} + \gamma V(S_{t+1}) - V(S_t)$はTD誤差(TD error)と呼ばれ、実際の価値と推定価値の差異を表しています。この誤差をもとに価値関数は微調整され、より正確な価値推定が行われるようになります。
まとめ
時間差分学習は、
強化学習の分野で幅広く利用されており、
Q学習や
SARSA法といった他の手法とも密接に関連しています。これにより、エージェントは時間をかけて多様な環境に適応し、最適な行動選択を学習していきます。