ということで、長く続いてきたけど、これでオシマイ。
これまでの各記事は、以下から。
なお、本では「一般化と関数近似」の章の次に「プランニングと学習」という章がある。
この章については、省略。
(人間の学習に喩えれば、学校で習ったことを家に帰ってから何度も反復練習させましょう、というアイディア。ただ、学校での学習(=実際の経験からの学習)と家での学習(=経験の記憶(モデル)からの学習)にコストの差がほとんどない場合、意味があるようには思えない)
統一された見方
ここまでで、動的計画法、モンテカルロ法、TD学習、TD(λ)といった手法を学んできたけど、これらには次のような共通点がある:
- 価値ベクトルの推定を行う
- 価値ベクトルの推定は、状態遷移の仕方にしたがって行う
- 価値ベクトルの推定の改善によって方策の改善を行い、また、方策の改善によって価値ベクトルの推定の改善を行う(これを「一般化方策反復」という)
一方、次のような特徴軸によって、様々な手法に分類される:
- 価値ベクトルの推定を行うとき、遷移可能なすべての状態を参照する(完全バックアップ)か、遷移の一例を参照する(サンプル・バックアップ)か
- 価値ベクトルの推定を行うとき、1ステップ先の状態遷移を参照する(浅いバックアップ)か、エピソードの終わりまでの状態遷移を参照する(深いバックアップ)か
- 価値ベクトルの情報をどのようにもつか(テーブル型/線形関数による近似/非線形関数による近似)
- サンプル・バックアップを行うとき、価値を推定される方策とサンプルを生成する方策が同じ(方策オン型)か、異なる(方策オフ型)か
- 価値ベクトルの種類(状態価値/行動価値/事後状態価値)
- 行動選択の手法(εグリーディ/ソフトマックス/etc.)
- 逐一学習を行う(オンライン学習)か、一括で学習を行う(オフライン学習)か
関数近似として何を使うのか、というのは、他の機械学習の手法と深い関係が出てくる。
例えば、TD-Gammonというバックギャモンのプログラムは、関数近似としてニューラルネットワークを使い、大きな成果を出している。
ただし、本の作者のSutttonは、関数近似にニューラルネットワークを使うのは、とりあえず止めておいた方がいいと言っているみたい。
Frequently Asked Questions about Reinforcement Learning
I am doing RL with a backpropagation neural network and it doesn't work; what should I do?
It is a common error to use a backpropagation neural network as the function approximator in one's first experiments with reinforcement learning, which almost always leads to an unsatisfying failure. The primary reason for the failure is that backpropation is fairly tricky to use effectively, doubly so in an online application like reinforcement learning.
(意訳)
誤差逆伝播法を用いたニューラルネットワークを使って強化学習を行おうとしているんだけど、うまく動かない。どうしたらいい?
誤差逆伝播法を用いたニューラルネットワークを関数近似としてまず試すのはよくある間違いで、ほとんど失敗する。というのも、誤差逆伝播法を効果的に使うのはかなりトリッキーで、ましてや、強化学習のようなオンライン学習で使うには、さらにトリッキーである必要があるからだ。
実際、自分もちょっと試した限りだと上手くいかなかったし、何より問題だったのは、なんで上手くいかなかったのかの原因がよく分からなかったということ。
学習パラメータの問題なのか、ネットワークの構成の問題なのか、そもそも実装が間違ってるのか、そのあたりをきちんと切り分けて調整するのは、難しそう。
ただ、線形手法では表現力に限界があるので、このあたりもちゃんと勉強しないといけないんだろうなとは思っている。
今日はここまで!
- 作者: Richard S.Sutton,Andrew G.Barto,三上貞芳,皆川雅章
- 出版社/メーカー: 森北出版
- 発売日: 2000/12/01
- メディア: 単行本(ソフトカバー)
- 購入: 5人 クリック: 76回
- この商品を含むブログ (29件) を見る