RL FAQ 日本語版:
強化学習についてのよくある質問と答え

Edited by Rich Sutton
Translated by Nao

Initiated 8/13/01
Translated 9/24/01

以下の文書は強化学習FAQ(http://www-anw.cs.umass.edu/~rich/RL-FAQ.html)の日本語訳です.

もともと,自分自身のために訳を作ったのですが,せっかくですので暫定的ですが公開することにいたしました.とは言え,私は英語力に乏しく,また強化学習やその周辺領域についての知識もまだまだ浅いため,誤訳やこなれていない訳だらけであると思います.見つけた場合はどうかご一報下さいますよう,お願い申し上げます.

訳語は,原則として Sutton のテキストの日本語訳(三上・皆川共訳)に従いましたが,抜けがありましたらお知らせ下さい.

なお,この日本語訳の公開はまだ暫定的な段階であり,Sutton 氏にも,また Sutton のテキストを訳された三上・皆川両氏にも,まだ了解をとっておりませんので,ご了承下さい.

コメント等は nao@s164.xrea.com までお願いします.

Nao

追記(2002/07/29): Sutton さんの強化学習のテキスト(三上/皆川共訳)についている練習問題を解いて Sutton さんに送り,解答を入手したという方,いらっしゃいませんか??(いつか解こうと思いながら,なかなか…)

追記 (2005-10-30): n071316 さんという方が,最新版との差分を作って下さったようです.ありがとうございます.こちらにありますので,併せてご参照下さい.


私は強化学習 -- その考え方や,成功する実用化の仕方 -- について多くの質問をもらいます.この FAQ は,より一般的な質問と回答のいくつかを一箇所にまとめる試みです.私は自分の意見を惜しまないできましたが,他の方々のご意見がここに収められるのも歓迎します.全く新しい質問やまるで異なる回答も含め,私のコメントに対して付け加えたいことがありましたら,sutton@research.att.com までご一報下さい.


一般的質問



強化学習とは何ですか?

強化学習(Reinforcement learning,RL) は,明示的な教示(teaching)とは違い,環境との相互作用を通した,行動の結果から学ぶ学習です.強化学習 は,1990年代に機械学習や人工知能の分野で,またオペレーションズ・リサーチ,心理学や神経科学の副産物においても人気となりました.

強化学習の研究のほとんどはマルコフ決定過程(Markov decision process,MDP)という数学的枠組みの中で行われています.MDP では,意志決定を行なう エージェント(agent)環境(environment) と相互作用し,長い間に受け取る累積的な 報酬(reward) を最大化するようにします.エージェントは環境の 状態(state) の外見を知覚し,行動(actions) を選択します.エージェントは 価値関数(value function) を推定して,意志決定の 方策(policies) を時間をかけてよりよいものへと構築していくのに使用することができます.

強化学習のアルゴリズムはこの種の問題,すなわち,それぞれの意志決定があとで得られるチャンスに影響を及ぼし,その影響が必ずしも決定論的でなく,また長期的な目標が存在するような,意志決定のシーケンスを含む問題を解決するための手段です.強化学習 の手法は,私たち人間や生物がふだんの毎日の生活で直面するような種類の学習や意志決定問題に取り組むことを意図しています.

詳しくは,強化学習の入門におすすめの資料 をご覧下さい.



強化学習はただの試行錯誤的学習なのですか,それともプランニングも含まれるのですか?

現在の強化学習は,環境のモデルを持たない試行錯誤的学習と,モデルのある熟考的プランニングとの両方に関係しています.ここでは「モデル」とは環境のダイナミクスのモデルを意味します.最も単純な場合,これは単に環境の状態遷移確率の見積もりと即時的な報酬の期待値を意味します.一般には,エージェントの振舞いという条件のもとでの,環境の将来の振舞いについての予測を意味しています.



強化学習 はニューロ動的計画法とどのように関係がありますか?

まず大雑把に言えば,強化学習とニューロ動的計画法(Neuro-Dynamic Programming)は同義です. 「強化学習」という名称は心理学から来ており(心理学者がこの用語そのものを使うことは稀ですが),サイバネティクスの初期に遡ります.例えば, Marvin Minsky は彼の 1954 年の論文でこの語を用い,また Barto と Sutton は1980年代の初めにこれを甦らせました.「ニューロ動的計画法」の名称は,この分野をニューラルネットワークと動的計画法の組合せとしてとらえるために,1996 年に Bertsekas と Tsitsiklis によって作られました.

実際にはどちらもあまりこのテーマをよく表しているわけではなく,技術的に正確を期する場合にはどちらも使わないことをおすすめします.このような名前は研究の一般的な主部を参照する場合には便利ですが,概念を注意深く他の概念と区別するのには向きません.その意味では,これらの 2 つの名称が指すものを注意深く区別しようとするのは無駄なことです.

「強化学習」という用語が問題なのは,それが時代遅れだということです.強化学習のほとんど分野は学習には全く関わりはなく,単に問題に対する完全な知識(環境のモデル)からのプランニングに関わりがあるだけです.プランニングと学習に対してほとんど同じ方法が使われていて,この分野の名前で「学習」を強調しているのは的外れのように見えます.「強化」の語もまた,特に適切であるとは思えません.

「ニューロ動的計画法」の名前も同様に問題であるのは,ニューラルネットワークも動的計画法もこの分野にとって重要ではないという点です.モンテカルロ法やロールアウト法といった多くの方法は動的計画法とは全く関係なく,ニューラルネットワークは多くの関数近似方法のうちの一つの選択肢にすぎません.さらに,要素の名前である「ニューラルネットワーク」や「動的計画法」自体が,それぞれの方法をあまりよく表していないとも言えます.



強化学習はオペレーションズリサーチにどのような利益をもたらしますか?

強化学習は関数近似によって,動的計画法のような古典的な時系列最適化テクニックよりもずっと広い状態空間を扱うことができます.加えてシミュレーション(サンプリング)を用いることで,次状態の遷移確率を明示的に計算できないような巨大で複雑なシステムも扱えます.



強化学習は神経科学とどのように関係がありますか?

理想的には,強化学習の概念は,脳が何をどうやって行なっているかについての 計算的理論 (computational theory) の一部になることができるでしょう.強化学習と神経科学の間には多くのつながりが引かれて来ました.時間的差分学習(TD 学習)に基づいた古典的条件付けの初期のモデル( Barto and Sutton, 1982; Sutton and Barto, 1981, 1990; Moore et al., 1986を参照)にはじまり,餌探索と予測学習の研究( Montague et al., 1995, 1996を参照)や,TD誤差分散システムとしてのサルのドーパミンニューロンに関する研究などを通じて続いています.優れたサーベイ論文があります.たくさんの関連した論文を集めたもあります.銅谷は大脳基底核の強化学習モデルを大きく発展させています.現在,これらの分野の多くは非常に活発であり,急速に変化しています.



強化学習は動物行動心理学とどのような関係がありますか?

大雑把にいうと,強化学習は道具的学習のなかなかよいモデルになります.ただ,これを支持する詳細な議論が公に出されたことはありません(最も近いものは,おそらくBarto, Sutton and Watkins (1990)によるものです.一方で,古典的(パブロフ的)条件付けと TD 学習(強化学習の中心的要素の一つ)とのつながりは密接であり,広く認められています(Sutton and Barto, 1990 を参照).



強化学習は行動主義とどのように関係がありますか?

形式的には,強化学習と行動主義,少なくとも,好ましくないと広く考えられている行動主義の一側面とは関係ありません.行動主義は,被験者の頭の中で行なわれていることを考慮するのを拒み,もっぱら行動にだけ注目したために,非難されつづけてきました.強化学習はもちろん,エージェントの中で行なわれているアルゴリズムや処理のすべてです.例えば環境の内部モデルのエージェント内の構築を考慮することがよくありますが,これは行動主義の範囲のはるか外にあります.

にも関わらず,強化学習と行動主義は,動物学習理論という点で,またおよび環境との接点に注目するという点で,その起源は同じです.強化学習における状態と行動は,本質的には動物学習における刺激と応答です.強化学習のポイントの一つは,エージェントの頭の中で起こっているすべてに対し,本質的な共通の最終経路があるということです.最終的にはその経路は,選択された行動と知覚された状態になります.



強化学習は遺伝的アルゴリズムとどのような関係がありますか?

遺伝的アルゴリズム(Genetic Algorithms,GA)のほとんどの研究がシミュレートするのは進化であって,個体の一生における学習ではありません.このことから,GA は強化学習の研究とは大きく異なります.しかし 2つの但し書きがあるようです.一つ目は,GA を用いたり,GA と密接に関係があるような分類システムに関する研究は多いということです.このような研究は単一のエージェントの一生における学習と関係があり(エージェントの心の要素を組織するのに GA を用いている),実際は強化学習の研究となっています.二つ目は,GA の研究は,同じ 問題(problems)に適応されるという理由で,強化学習と関係づけられることがしばしばあるということです.例えば,GA の手法はバックギャモンのプレイヤーを 進化 させるのに適用でき,強化学習で学習したプレーヤーとそのプレーヤーを比較することができます.実際,GA によって進化したシステムの大部分は,代わりに強化学習でも学習できるコントローラです.どちらの手法のクラスがより適切で,よりよい性能であるかを示す総括的な記述をすることは,ここでは魅力的なことです.決定的なのは,状態の情報が得られる問題か,そうでないかの違いです.例えばバックギャモンでは,盤面の状態は手に入ります.このような問題では,強化学習は GA のような進化的手法よりもはっきりと有利です.他の問題では状態の情報はほとんどありません.ゴルフのスイングのような,感覚フィードバックが使えるようになる前に終わってしまう何か弾動的な運動を学習したいとします.するとシステムはマルコフ過程から程遠く,一回のスイングのあいだの状態情報を扱ってもほとんど,あるいは全く利益はありません.これらの場合には,強化学習が進化的手法よりも有利であるとは期待できません.実際,TD 法のように,感覚情報を状態として無理に使おうとしたら,事態はよけい悪化するでしょう.



誰が強化学習を発明したのですか?

There is plenty of blaim here to go around. Minsky, Bellman, Howard, Andreae, Werbos, Barto, Sutton, Watkins... どれも,初期の,重要な役割を果たしました. Sutton and Barto のテキストにある歴史をご覧下さい.


強化学習の勉強に関する質問



強化学習の入門としてはどのような資料がおすすめですか?

一般的な入門としては,Prof. Barto と共著で書いた私の本をおすすめします:

Reinforcement Learning: An Introduction, by Richard S. Sutton and Andrew G. Barto. MIT Press 1998. Online version. [訳注]日本語訳は以下の通り.
強化学習, by Richard S. Sutton and Andrew G. Barto.三上 貞芳・皆川 雅章 共訳.森北出版 2000.
厳密な照明を含んだより正式な扱いとしては,Bertsekas and Tsitsiklis によるテキストがおすすめです: Neuro-dynamic Programming, by Dimitri P. Bersekas and John N. Tsitsiklis. Athena Press, 1996. 教科書レベルの長さの扱いをする時間がなければ,以下の2つの論文のどちらかが最良の選択です: Reinforcement learning: A survey, by Kaelbling, L.P., Littman, M.L., and Moore, A.W., in the Journal of Artificial Intelligence Research, 4:237--285, 1996. Learning and sequential decision making, by Barto, A.G., Sutton, R.S., & Watkins, C.J.C.H., in Learning and Computational Neuroscience, M. Gabriel and J.W. Moore (Eds.), pp. 539--602, 1990, MIT Press.

Sutton と Barto の本のオンライン版はどこにありますか?

http://www.cs.umass.edu/~rich/book/the-book.html

プログラムコード,図,教材など,他の資料もたくさんあります.



印刷用の PostScript 版はどこにありますか?

残念ながらありません.しかし一方で,本の印刷版は,品質とコストの点で,プリントアウトするような場合と比べて遜色ありません.

演習問題の答えはどこにありますか?

教師の資格のある方は,プログラミング以外の全演習の答えが載っている教師 マニュアルを手に入れることができます.あなたの大学のレターヘッドのある 手紙を Margie Hardwick, Text Manager, The MIT Press, Five Cambridge Center, Cambridge, MA 02142 に送って下さい(または,+1-617-253-1709 に FAX を送って下さい).Margie Hardwick への質問は hardwick@mit.edu また は 617-253-3620 です.

本を自習用に使っている読者は,演習問題に自分で取り組んだら,章ごとの解答を得ることができます.ある章の演習問題に答えたあなたの努力を,rich@cs.umass.edu まで電子メールで送って下されば,その章の答えの PostScript ファイルをお送りします.



本に明らかな間違いを見つけました.どうすればよいでしょうか?

まず, 正誤表をチェックして下さい.あなたの見つけた間違いがそこになければ,詳細を rich@cs.umass.edu にお送り下さい.もし間違いだとわかれば,正誤表に追加します.お手数のお礼として,間違いの発見者としてリストに名前が載ります.

この本の採用見本はどうやったら手に入りますか?

教師の資格のある方は,一般的に MIT Press から採用見本を手に入れることができます.この本についての MIT Press のホームページをご覧下さい.

強化学習の基本



状態(または行動)空間が巨大なのですが,それでも強化学習は使えるでしょうか?

はい,使えます.しかし,単純な表形式で何とかしのぐことは無理です.ある種の関数近似が必要となるでしょう.

単純な表に対し,「関数近似(function approximation)」は価値関数(や方策)を表現するのにパラメタライズされた関数の形の利用について述べています.表は,それぞれの状態の価値を,他の状態の価値と混乱したり,相互作用したり,一般化されたりすることなく,別々に表現することができます.しかし典型的な問題においてはまりに多くの状態が存在するので,これらの価値を個別に学習したり表現したりすることができません.代わりに,観察したものを,観察していない新しいものへと一般化する必要があります.基本的にはこれは問題とする必要はありません.関数近似には教師あり学習手法の多くが使えるのです.しかし,理論的な落とし穴も実用的な落とし穴もあるので,ちょっとした注意が必要です.Sutton and Barto のテキストの第8章をご覧下さい.

たいていの場合,強化学習が動的計画法から取り入れた理論的基盤は,もはや関数近似の場合には妥当ではありません.例えば,線形関数近似を使った Q 学習は不安定であることがしられています.最強の肯定的結果は,線形関数近似を用いた方策オン予測です( Tsitsiklis and Van Roy, 1997; Tadic, 2001).これは現在活発に研究されている分野です(例えば Gordon, 2001; Precup, Sutton & Dasgupta, 2001 を参照).



ほとんどの強化学習は,行動空間が離散的であることを仮定しています.連続的な行動の場合はどうなのですか?

ほとんどの強化学習が離散的な行動空間を考えていることは事実ですが,これはたいていは簡単のためであって,アイデアの本質的な限界としてではありませんし,例外もあります.しかしながら,強化学習を連続的な行動空間に,あるいは広大な離散的行動空間にさえ,拡張する方法については明らかでないことがしばしばあります.そのキーは,強化学習はたいてい行動空間の要素の最大値や和を用いますが,空間が巨大または無限である時にはこれが不可能だということです.自然なアプローチとしては,行動の計数をそれらのサンプルや平均で代用するということです(次の可能な状態をそのサンプルや平均で代用するのと同様).これだと,行動価値関数に非常に特別な構造が必要になるか,あるいは既知の最適方策を貯蔵して表現しておくことが必要になります.Actor-Critic 手法はその一つのアプローチです.

徹底的な試みはありませんが,連続的な行動のある強化学習の初期の研究には以下のようなものがあります:

同じようにこのリストに他の新しい研究を含めたく思います.ポインターを送って下さい!



連続時間についてはどうですか?

原理的には,強化学習の概念は自然に連続時間に拡張されるのですが,研究は比較的少ないです.これまでのところ,これにかんする最良の研究は恐らく銅谷賢治氏によるものです.



次元の呪いとは何ですか?

次元の呪いとは,状態空間の次元,すなわち状態変数の数が指数関数的に増大する傾向のことを指します.これはもちろん,動的計画法や,複雑度が状態数に比例するような表ベースの強化学習にとって問題となります.強化学習手法の多くは,サンプリングと関数近似によってこの呪いを部分的に回避しています.

奇妙なことに,関数近似に対するタイルコーディングアプローチは,もとの状態表現を非常に 高次元の 空間に拡張します.これによって,もとの表現における複雑で非線形な関係は,拡張された空間ではより単純に,より線形になります.拡張された空間の次元が大きいほど,より多くの関数が簡単に高速に学習できます.私はこれを 次元の恵み (blessing of dimensionality) と呼んでいます.これは現代のサポートベクターマシンの陰にあるアイデアの一つですが,実際には少なくともパーセプトロンまでさかのぼります.



タイルコーディングはただの格子ではないのですか? それゆえに次元の呪いを受けたするのでは?

基本的には違います.タイルコーディングはきわめて一般的な概念であり,使われている方法の多くは次元の呪いを回避できます.ここには少なくとも3つの一般的なトリックがあります: 1)分割されたタイル内で,状態変数の部分集合を考えることができます,2)タイルを重ねることによって,同じメモリ量で単純な格子を使うのに比べ,高次元空間でずっと高い解像度を得ることができます,3)空間を細かくして,実際に起こる状態空間の割り当てにだけ,メモリを集中させることができます.



従来の「CMAC」という名称の代わりにどうして「タイルコーディング」と呼ぶのですか?

タイルコーディングの概念は本質的には,その根本にある CMAC と同じです.CMAC の開拓者(例えばAlbus, Marr, Miller...) の当然の称賛をけなそうとする場合を除いて,新しい名前にすることのほうがよい場合が多いのです.特に,CMAC という名前は「小脳モデル調音制御器(Cerebellar Model Articulatory Controller)」を表していますが,これは現在の使われ方にはいささか不適切であるように思います.もともとの CMAC はまた,少し違ったアルゴリズム -- 誤差修正ルールと言うよりむしろ相関ルール -- にも使われていました.強化学習における使われ方は,本来の使い方からずっと遠ざかってしまっています.残っているのは学習システムというよりはむしろ(まして小脳のモデルなどではなく),学習システムが用いる状態のコーディング方法です.コーディングのキーとなる特徴は,状態空間の複数の網羅的な区画(タイリング!)に基づいていることと,直列のディジタル型計算機での実装に特に向いているということです.



強化学習の手法は関数近似に対して安定なのですか?

現在のところ,状況はやや混み入っており,流動的です.安定性の保証は,具体的なアルゴリズムと関数近似器,そしてその使われ方に依存します.2001年8月の時点でわかっていることは次の通りです:

提案と意見



強化学習をバックプロパゲーションのニューラルネットワークで動かそうとしましたが,動きません.どうすればいいでしょうか?

強化学習を最初に実験する時に,関数近似器としてバックプロパゲーションニューラルネットワークを用いるのはよくある間違いで,まずほとんどあっけなく失敗します.失敗の第一の原因は,バックプロパゲーションは効率的に使うにはかなりトリッキーであり,強化学習のようにオンラインで応用するには二重の意味でそうであるということです.Tesauro がひときわうまくいったバックギャモンの応用にこのアプローチを使ったのは事実ですが,彼の TDgammon の研究の時には,Tesauro はすでにバックギャモンにバックプロパゲーションネットワークを使う達人になっていたことに注意して下さい.彼はすでにバックプロパゲーションネットワークを用いて,バックギャモンの世界最強のコンピュータプレイヤーを作り上げていました.彼はすでに,バックプロパゲーションネットワークがうまく学習するようなこつや,微調整や,パラメータの設定を学んでいたのです.同じくらい大規模な経験という背景がないのであれば,強化学習の関数近似にバックプロパゲーションネットワークを使ったら,きっと挫折してしまうでしょう.

解決策は,一歩下がって,一度にひとつの領域しか更新できないということを受け入れることです.まず,表形式で強化学習の概念を,そして強化学習における関数近似の一般的原則を確実に理解しましょう.それから,もっとよく理解されている線形などの関数近似器に進むのです.私自身の研究は,線形近似器より先には絶対いきません.私は粗いタイルコーディングを使って,ただそれらを広く広くしているだけです(例えば Sutton, 1996 の本の第8章,Stone and Sutton, 2001 を参照).このアプローチは常にバックプロパゲーションネットワークより優れているのかもしれませんが,これは現時点ではわかりません.しかし,強化学習アルゴリズムを学ぶ新人が,バックプロパゲーションではじめるべきでは ない ことは確かです.



一番よいのはどのアルゴリズムですか?

本当の答えはもちろん,「わかりません」ということであり,「まだ発明されていません」ということです.それぞれのアルゴリズムには長所と短所があり,人気も数年ごとに変わります.1980年代には actor-critic 手法が非常に人気がありましたが,1990年代には Q 学習や Sarsa などの価値関数手法に大きく取って代わられました.Q 学習はおそらくまだ最も広く使われていますが,1995年に見つかった関数近似の不安定性によって,たぶん長くは続かないでしょう.最近では,actor-critic や価値関数なしの手法などの方策ベースの手法が,1980年代からあるものも含め,再び人気となっています.

ですから,強化学習が前進するにしたがい,心を広く持ち.選択の自由を確保し続けるべきのようです.



なぜ Q 値という用語を非難するのですか?

強化学習の研究者はQ値,Qテーブル,Q関数とよく言いますが,私にとってはそんな言い方はまずたいてい内輪言葉 -- つまり,新人に不快感を与え,実際は何の足しにもならないような,明らかに正確な専門用語 -- に思えます.今回の場合,「Q」という接頭語は,単に価値やテーブルや関数が行動-状態のペアに関係があるということを意味しているにすぎません.例えば行動-状態のペアをとったり,最適値を返したり,何らかの方策の真値を返したり,これらの 2つの値の近似値を返したりするような関連した関数はたくさんあります.ほとんどの場合,これらの関数には違う名前がつきますが,それら全てには Q の文字が入っています.だから私は,Q関数という名前は,専門的に見えますが実際には不正確で,ゆえに好ましくない不快な内輪言葉である,と考えるのです.ある状態におけるある行動の価値について,ただ一般的に話すのであれば,単に「行動価値」という用語のほうがいいと思います.

その他の質問



締切がもうすぐのプロジェクトをかかえているのですが,助けてくれませんか?

強化学習は大きなテーマであり,たくさんの支流や未開拓の周辺分野があります.そして,安直な(簡単ですぐに使える)解法はありません.あなたを正しい方向に向けるようなアドバイスが時々はできますが,適切な解を見つけるまでには,勉強して問題を理解するようになるのに非常に時間がかかるでしょう.もし締切間際で急いでいるのなら,私ができることはほとんどありません.

あなたのプログラムに手を焼いているのですが,動かすのを手伝ってくれませんか?

このプログラムはそのままの形で使えるように作られており,多くの場合,ほとんど,あるいは何もサポートできません.多くの場合,私は個人的にプログラムの心得はなく,また他の場合には,私の特別なコンピュータ環境以外でも動くでしょう.それでもプログラムを公開しているのは,これを読むことで実装のポイントのいくつかが明らかになるからです.C++ で書かれたタイルコーディングの実装のように,2,3の場合については一般的に実行できるように自分でプログラムを書いており,何らかのサポートはできます.

おそらく,クラスプロジェクトのプログラムをあなた自身で書くことができると思いますが,そのほうがより文書化されており,またより広い範囲のコンピュータプラットフォームで動きます.


[top][blog][学振]