昨日は、関数近似を組合せる方法が、従来のテーブル型の拡張になっていることを確認した。
今日は、関数近似の1つである、線形手法について説明する。
線形手法
線形手法では、線形関数を使って、価値ベクトルを近似する。
といっても、状態や状態行動対はの空間に存在していないので、まずはこれらをの空間へ写像してやるために、特徴と特徴ベクトルというものを考えてやる。
特徴 というのは、状態や状態行動対のある性質に注目したもので、例えば○×ゲームなら、「左上のマスにある○の数」「左上のマスにある×の数」だとか「リーチになっている○の列の数」「○が3つ揃っている列の数」といった特徴が考えられる。
そして、状態や状態行動対から特徴ごとの値に変換する写像 、あるいは、それによって変換されたあとのベクトルのことを、特徴ベクトルと呼ぶ。
とくに、特徴 が、その特徴に当てはまる/当てはまらないの2択になっているものをバイナリ特徴と呼び、それを1/0で表現する特徴ベクトルのことを、バイナリ特徴ベクトルと呼んだりもする。
こうして、状態や状態行動対を特徴ベクトルへ写像し、特徴ベクトルの各要素をパラメータで重み付けした線形関数、
で価値ベクトルを近似的に表現する手法を、線形手法と呼ぶ。
線形手法を用いたTD()
線形手法を使う場合、は、次のようになる:
したがって、は、次のようになる:
このことから、線形手法を使った場合のTD()のパラメータの更新は、
として、
と行うことになる。
特に、特徴がバイナリ特徴の場合、適格度トレースに足し込む値は0か1になる。
(本の図8.8、8.9も参照)
線形手法を用いたSarsa()
上記の更新方法を使ったSarsa()は、次のようになる:
- を任意に初期化。
- 以下を繰り返す:
- とする。
- を初期化。
- から導かれるソフト方策を用いて行動を選択する。
- 各ステップについて、以下を繰り返す:
- 行動を行い、報酬と次状態を観測する。
- から導かれるソフト方策を用いて行動を選択する。
- 、とする。
- が終端状態なら、繰り返しを終了。
実際に線形手法を用いたSarsa()の例としては、以下を参照。
今日はここまで!
- 作者: Richard S.Sutton,Andrew G.Barto,三上貞芳,皆川雅章
- 出版社/メーカー: 森北出版
- 発売日: 2000/12/01
- メディア: 単行本(ソフトカバー)
- 購入: 5人 クリック: 76回
- この商品を含むブログ (29件) を見る