時間差分学習

提供: testwiki
ナビゲーションに移動 検索に移動

テンプレート:Machine learning bar 時間差分学習(じかんさぶんがくしゅう、テンプレート:Lang-en-short)やTD学習とは、現在の状態価値関数の推定からブートストラップで学習するモデルフリーの強化学習の手法。モンテカルロ法のように環境からサンプルを取り、動的計画法のように現在の推定に基づいて状態価値関数を更新する。[1]

状態価値関数 V(s) は、現在および将来に得られる報酬(reward)になるように学習させる。ただし、将来分の報酬は、経済学でも使われる割引率(discount rate)をかけた物を使用する。これを割引収益(discounted return)と呼ぶ。

考え方自体は少なくとも1959年の時点でArthur Samuelがチェッカーをプレーする人工知能のプログラムで使用しているが、temporal difference learningという呼び方は1988年にリチャード・サットンが命名している。[2]

アルゴリズム

状態 St のエージェントが行動 At を選び、報酬 Rt+1 を得て、状態が St+1 に遷移したとする。このとき状態価値関数 V(St) を次の式で更新する。

V(St)(1α)V(St)+α[Rt+1+γV(St+1)]

ここで α は学習率といい、0<α<1 とする。γ割引率といい、0<γ<1 な定数である。

行動 At は、状態価値関数を使用して選択する。

更新式は

V(St)V(St)+α[Rt+1+γV(St+1)V(St)]

とも書けるが、Rt+1+γV(St+1)V(St) をTD誤差(TD error)と呼ぶ。[3]

参照

テンプレート:Reflist

関連項目