強化学習

強化学習（きょうかがくしゅう、、RL）は、ある環境内における知的エージェントが、現在の状態を観測し、得られるを最大化するために、どのようなをとるべきかを決定する機械学習の一分野である。強化学習は、教師あり学習、教師なし学習と並んで、3つの基本的な機械学習パラダイムの一つである。
強化学習が教師あり学習と異なる点は、ラベル付きの入力／出力の組を提示する必要がなく、最適でない行動を明示的に修正する必要もない。その代わり、未知の領域の探索と、現在の知識の活用の間のバランスを見つけることに重点が置かれる。
この文脈の強化学習アルゴリズムの多くは動的計画法を使用するため、この環境は通常マルコフ決定過程（MDP）として定式化される。古典的な動的計画法と強化学習アルゴリズムとの主な違いは、後者はMDPの正確な数学的モデルの知識を必要とせず、正確な方法では実行不可能な大規模MDPを対象にできることである。代表的なアルゴリズムとしてTD学習やQ学習が知られている。
導入.
強化学習はその一般性から、ゲーム理論、制御理論、オペレーションズ・リサーチ、情報理論、、マルチエージェントシステム、群知能、統計学など、多くの分野で研究されている。オペレーションズ・リサーチや制御の文献では、強化学習は近似動的計画法（approximate dynamic programming）あるいはニューロダイナミック・プログラミング（neuro-dynamic programming）と呼ばれている。強化学習の問題は最適制御理論でも研究されており、主に最適解の存在と特徴づけや、その厳密な計算のためのアルゴリズムを対象するが、（特に環境の数学的モデルがない場合の）学習や近似への関心は高くない。また、経済学やゲーム理論では、限定合理性のもとで均衡がどのように生じるかを説明するために、強化学習が用いられることがある。
基本的な強化学習は、マルコフ決定過程（Markov decision process、MDP）としてモデル化される。
強化学習の目標は、エージェントが、即時報酬から蓄積される報酬関数（reward function）または他のユーザ提供の強化信号を最大化するような、最適または最適に近い方策を学習することである。これは、動物心理学で起こっていると思われるプロセスに似ている。たとえば、生物の脳は、痛みや空腹などの信号を負の強化、喜びや食物摂取を正の強化として解釈するように配線（hardwired）されている。いくつかの状況では、動物はこれらの報酬を最適化するような行動を学習することができる。このことは、動物は強化学習が可能であることを示唆している。
基本的な強化学習エージェント型人工知能（AI）は、離散的な時間ステップで環境と相互作用を行う。各時刻 において、エージェントは現在の状態 formula_10 と報酬 formula_11 を受け取る。次に選択可能な行動の集合から、1つの行動 formula_12 を選択し、それを環境に送信する。環境は新しい状態 formula_13 に移動し、遷移（transition） formula_14 に関連付けられる報酬 formula_15 が決定される。強化学習エージェントの目標は、期待累積報酬を最大化する方策 formula_16, formula_17 を学習することである。
この問題をMDPとして定式化すると、エージェントが環境の現在の状態を直接観測することを仮定し、この場合、問題は完全観測可能（full observability）であると言う。しかし、エージェントが一部の状態しか観測できない場合、あるいは観測された状態がノイズによって破損している場合、エージェントは部分観測可能（partial observability）であると呼ばれ、正式にはその問題を部分観測可能マルコフ決定過程（partially observable Markov decision process）として定式化しなければならない。どちらの場合も、エージェントが使用できる行動の集合は制限を受ける可能性がある。たとえば、口座残高の状態が正である制約を課すことができる。状態の現在値が3で、状態遷移が値を4だけ減らそうと試みた場合、その遷移は許可されない。
あるエージェントの性能を、最適に行動している別のエージェントの性能と比較すると、その差から（regret"、"後悔）という概念が生じる。最適な行動に近づくために、たとえ即時報酬は負であっても、エージェントはその行動の長期的な結果（すなわち将来の収益の最大化）について考えなければならない。
したがって、強化学習は、長期的な報酬と短期的な報酬のトレードオフを伴う問題に特に適している。強化学習は、、エレベーターのスケジューリング、電気通信、バックギャモン、チェッカー、囲碁（AlphaGo）など、さまざまな問題への応用に成功している。
強化学習を強力なものにしている2つの要素として、性能を最適化するためのサンプルの使用と、大規模な環境に対処するための関数近似の使用があげられる。この2つの重要な要素により、強化学習は次のような状況下で、大規模環境に適用することができる。
これらの問題のうち、最初の2つは計画問題であり（何らかの形のモデルが利用可能であるため）、最後の1つは真の学習問題であると考えることができる。ただし、強化学習はどちらの計画問題も機械学習問題に変換する。
探索.
探索（exploration）と活用（exploitation）のトレードオフは、多腕バンディット問題や、Burnetas and Katehakis（1997）の有限状態空間MDPの研究を通じて、最も詳細に研究されてきた。
強化学習には巧妙な探索機構が不可欠であり、推定された確率分布を参照せず、ランダムに行動を選択すればその性能は低下する。（小規模な）有限MDPについては、比較的よく理解されている。しかし、状態数に応じてうまくスケールする（あるいは状態空間が無限の問題でも対応する）アルゴリズムがないため、単純な探索方法が最も実用的となる。
そのような方法の一つが formula_18-貪欲法（イプシロンどんよくほう、formula_18-greedy）で、formula_20 は探索と活用の量を制御するパラメータである。確率 formula_21 で活用が選択され、エージェントは長期的に最も効果があると思われる行動を選択する（行動間の関係は無作為に解消される）。あるいは、確率 formula_18 で探索が選択され、行動は無作為に選択される。通常、formula_18 は固定パラメータであるが、スケジュールに従ったり（エージェントが探索を徐々に少なくする）、またはヒューリスティック（経験則）に基づいて適応的に調整することもできる。
制御学習アルゴリズム.
たとえ探索の問題を無視して、状態が観測可能であっても（以下は仮定）、過去の経験を使用して、どの行動がより高い累積報酬につながるかを見つけ出すという問題が残される。
最適性の基準.
方策.
エージェントの行動（action）の選択は、方策（policy）と呼ばれる写像としてモデル化することができる。
方策の写像は、状態 formula_3 において行動 formula_2 を選択する確率を与える。決定論的な方策（全ての確率が 0 または 1）を考えても良い。
状態価値関数.
状態価値関数（state-value function） formula_28 は、状態 formula_3、すなわち formula_30 から出発して、方策 formula_31 に連続して従う場合の期待収益（expected return）と定義される。したがって、大まかに言えば、価値関数は、ある状態にあることが「どれくらい良いか」を推定するものである。
ここで、確率変数 formula_33 は収益（return）を表し、報酬（reward）に割引率（discount-rate）formula_34 を乗じた将来の割引報酬の和として定義される。
ここで、formula_11 はステップ formula_5 における報酬であり、formula_38 は割引率である。割引率 formula_34 は1未満に設定され、遠い未来の事象ほど重み付けは小さくなる。
アルゴリズムは、期待収益が最大になるような方策を見つける必要がある。MDPの理論から、一般性を損なうことなく、探索をいわゆる「定常方策」（"stationary" policies）の集合に限定できることが知られている。ある方策が返す行動分布が、（観察しているエージェントの履歴から）最後に訪れた状態にのみ依存する場合、その方策は「定常的」（"stationary"）である。探索はさらに決定論的な定常方策に限定されることがある。「決定論的定常方策」（"deterministic stationary" policy）は、現在の状態に基づいて「決定論的」に行動を選択する。このような方策は、状態の集合から行動の集合へのマッピングとして識別できるので、一般性を損なうことなく、これらの方策はこのようなマッピングと識別することができる。
総当たり法.
総当たり法（brute force method、力まかせ探索）は、次の2つの段階を伴う。
この場合の問題の一つは、方策数が増大する、あるいは無限大になる可能性である。また、収益の分散が大きい場合、各方策の収益を正確に推定するために多くのサンプルが必要になることもある。
これらの問題は、何らかの構造を仮定し、ある方策から生成されたサンプルが他の方策の推定に影響を与えるようにすることで改善することができる。これを実現するための2つな主要な手法は、価値関数推定と直接方策探索である。
価値関数法.
価値関数法（value function methods）は、ある方策（通常は「現行」（on-policy、方策内）または「最適」（方策外、off-policy）のいずれか）に対する期待収益の推定値の集合を維持することにより、収益を最大化する方策を見つけ出そうとするものである。
これらの方法はマルコフ決定過程の理論に基づいており、最適性は前述したよりも強い意味で定義されている。方策は、どのような初期状態からでも最大の期待収益を達成する場合、最適であると呼ばれる（つまり、この定義において初期分布は何の役割も果たさない）。繰り返すが、最適方策は常に定常方策の中から見出すことができる。
最適性を正式に定義するために、方策 formula_31 の価値を、
で定義する。ここで、formula_33 は初期状態 formula_3 から formula_31 に従うことに伴う収益を表す。また、formula_31 が変更しうる場合、formula_46 の最大可能値としてformula_47 を定義すると、
となる。
すべての状態において、これらの最適値を達成する方策を最適（optimal）と呼ぶ。この強い意味で最適な方策は、期待収益 formula_49 を最大化するという意味でも「最適」であることは明らかである。ここで、formula_50 は初期状態の分布 formula_51 からランダムにサンプリングした状態（したがって formula_52）である。最適性を定義するには状態価値で十分だが、行動価値を定義しておくと有用である。状態 formula_3、行動 formula_2、方策 formula_31 が与えられたとき、formula_31 の下での状態-行動ペア formula_57 の行動価値は、
で定義される。ここで formula_33 は、状態 formula_3 で最初に行動 formula_2 を取り、その後 formula_31 に従っているときのランダム収益を表している。
MDPの理論では、formula_63 が最適方策であれば、formula_64 から各状態 formula_3 で最も価値の高い行動を選択することで最適に行動する（最適行動を取る）とされている。このような最適方策（formula_66）の行動価値関数（action-value function）を最適行動価値関数（optimal action-value function）といい、一般に formula_67 と表わす。要約すると、最適行動価値関数を知っていれば、最適な行動方法を知ることができる。
MDPの完全な知識を前提とすると、最適な行動価値関数を計算するための2つの基本的な手法は、価値反復法と方策反復法である。どちらのアルゴリズムも、formula_67 に収束する一連の関数 formula_69 (formula_70) を計算する。これらの関数を計算するには、状態空間全体に対する期待価値を計算する必要があるが、これは最小の（有限の）MDPを除いては非現実的である。強化学習法では、大きな状態行動空間上の価値関数を表現する必要性に対処するために、サンプルの平均化や関数近似の手法を使用して期待値を近似する。
モンテカルロ法.
モンテカルロ法（Monte Carlo methods）は、方策反復法を模倣したアルゴリズムに使用することができる。方策反復法は、方策の評価（policy evaluation）と方策の改善（policy improvement）という2つの段階から構成される。モンテカルロ法は、方策評価段階で使用される。この段階での目標は、定常的で決定論的な方策 formula_31 が与えられたとき、すべての状態-行動ペア formula_57 に対する関数値 formula_73（またはその適切な近似）を計算することである。ここでは簡単にするために、MDPは有限であり、行動価値を収容するのに十分なメモリがあり、問題は偶発的（）で、各出来事の後にランダムな初期状態から新しい出来事が始まると仮定する。そして、与えられた状態-行動ペア formula_57 の価値の推定値は、formula_57 からサンプリングされた収益を時間経過とともに平均化することによって計算することができる。十分な時間があれば、この手順により、行動価値関数 formula_76 の正確な推定値 formula_77 を構築することができる。これで、方策評価段階の説明を終了する。
方策改善段階では、formula_77 に関する貪欲な方策（"greedy" policy）を計算することにより次の方策を得る。状態 formula_3 が与えられたとき、この新しい方策は formula_80 を最大化する一つの行動を返す。実際には、遅延評価によって、最大化行動の計算を必要なときまで先送りすることができる。
この手法の問題を次にあげる。
以降の小節では、それぞれの問題についてさらに議論する。
時間差分法.
最初の問題は、価値が収まる前に（一部または全ての状態で）手順が方策を変更できるようにすることによって対応できる。ただし収束を妨げて問題となる可能性もある。現在のほとんどのアルゴリズムではこれを行い、一般化方策反復（generalized policy iteration）という種類のアルゴリズムを作り出すことができる。多くのアクター・クリティック法（actor-critic methods）はこの範疇（はんちゅう）に属する。
2番目の問題は、軌跡がその中の任意の状態-行動ペアに関与できるようにすることで修正できる。これは3番目の問題にもある程度有効であるが、収益が高い分散を持つ場合により優れた解決策は、再帰的ベルマン方程式（recursive Bellman equation）に基づくサットンの（temporal difference methods、TD法）である。TD法における計算法には、インクリメンタル法（各遷移後にメモリを変更し、遷移を破棄する）またはバッチ法（遷移をバッチ処理し、バッチに基づいて推定値を一回計算する）がある。最小二乗時間差法（least-squares temporal difference method）のようなバッチ法は、サンプル内の情報をより有効に利用できる可能性があるが、インクリメンタル法は、バッチ法が計算量やメモリの複雑性の理由で実行不可能な場合に選択される唯一の方法となる。この2つの方法を組み合わせる手法もある。時間差分に基づく方法は、4番目の問題も克服している。
TDに特有のもう一つの問題は、再帰的なベルマン方程式への依存に起因している。ほとんどのTD法には、いわゆる formula_81 （ラムダ）パラメータ formula_82 があり、ベルマン方程式に依存しないモンテカルロ法と、ベルマン方程式に完全に依存する基本的なTD法の間を、連続的に補間することができる。これにより、この問題を効果的に緩和することができる。
関数近似法.
5番目の課題を解決するために、関数近似法（function approximation methods）が提案されている。線形関数近似（linear function approximation）は、各状態-行動ペアに有限次元ベクトルを割り当てるマッピング formula_83 から始まる。そして、状態-行動ペア formula_57 の行動価値（action values）は、formula_85 の成分を何らかの"重み" formula_86 で線形結合することによって得られる。
その後、アルゴリズムは、各状態-行動ペアに関連する値ではなく、重みを調整する。ノンパラメトリック統計学の考え方に基づく方法（独自の特徴を構築することが見られる）が探究されている。
また、値の反復を出発点として、Q学習アルゴリズム（Q-learning algorithm）とその多くのバリエーションを作成することができる。Qを表現するためにニューラルネットワークを使用するディープQ学習法を含め、確率的探索問題へのさまざまな応用ができる。
行動価値を用いる場合の問題は、競合する行動価値を高精度に推定する必要であることになる可能性があることで、収益にノイズが多い場合には取得するのが難しい場合があるが、この問題は時間差法によってある程度軽減される。いわゆる互換関数近似法（compatible function approximation method）を使用すると、一般性と効率性が損なわれる。
直接方策探索.
別の方法として、方策空間（その何らかの部分集合）を直接探索する方法があり、この場合、問題はの一つとなる。利用可能な2つの方法は、勾配に基づく方法と、勾配を用いない方法である。勾配に基づく手法（policy gradient methods、方策勾配法）は、有限次元（パラメータ）空間から方策空間へのマッピングから始まる。パラメータベクトル formula_86 が与えられたとき、formula_86 に関連する方策を formula_90 とする。評価関数を、
と定義すると、この関数は穏やかな条件下ではパラメータベクトル formula_86 の関数として微分可能になる。もし formula_93 の勾配がわかっていれば、勾配上昇（gradient ascent）を使うことができる。勾配の解析式が存在しないため、ノイズを含んだ推定値しか利用できない。このような推定値はさまざまな方法で構築することができ、ウィリアムズのREINFORCE法（の文献では尤度比法として知られている）のようなアルゴリズムで作成することができる。方策探索法は、ロボット工学の文脈でも使用されている。多くの方策探索法は、局所最適に陥ることがある（局所探索に基づいているため）。
勾配情報への依存を避けるために、多くの種類の方法がある。たとえば、シミュレーティドアニーリング、、または進化的計算の手法などがある。多くの勾配を用いない手法は、（理論的にも極限的にも）大域的な最適解に到達することができる。
ノイズの多いデータでは、方策の収束が遅くなることがある。こうしたことは、たとえば、軌跡が長くリターンの分散が大きい偶発的問題で起こる。このような場合、時間差分法に依存する価値関数に基づく手法が役立つ可能性がある。近年では、アクター・クリティック法（actor-critic methods）が提案され、さまざまな問題で良い結果を出している。
モデルベース・アルゴリズム.
最後に、上記の方法はみな、初めにモデルを訓練するアルゴリズムと組み合わせることができる。たとえば、Dynaアルゴリズムは経験からモデルを訓練し、実際の遷移に加えて、よりモデル化された遷移を価値関数に与えることができる。このような方法はノンパラメトリックモデルに拡張できる場合があり、たとえば、遷移を単純に保存して学習アルゴリズムに「再生」させるなどの方法がある。
モデルの使用には価値関数を更新する以外の方法もある。たとえば、では、モデルを用いて挙動を直接更新する。
理論.
ほとんどのアルゴリズムの漸近的挙動と有限標本挙動の両方がよく理解されている。（探索問題に対処する）優れたオンライン性能が証明されたアルゴリズムも知られている。
MDPの効率的な探索については、Burnetas and Katehakis（1997）で述べられている。また、多くのアルゴリズムで有限時間性能の限界が見られるが、これらの限界はかなり緩いと予想されるため、相対的な価値と限界をより深く理解するために、さらなる研究が必要である。
インクリメンタルアルゴリズムについては、漸近的収束の問題が解決された。時間差分に基づくアルゴリズムでは、従来よりも広い条件の下で収束するようになった（たとえば、任意の滑らかな関数近似と併用する場合）。
研究.
研究テーマを次に列挙する。 
強化学習アルゴリズムの比較.
連想強化学習.
連想強化学習タスク（associative reinforcement learning）は、確率的学習オートマトンタスクと教師あり学習パターン分類タスクの側面をあわせ持っている。連想強化学習タスクでは、学習システムは閉ループで環境と相互作用する。
深層強化学習.
深層強化学習（deep reinforcement learning）は、ディープニューラルネットワークを使用し、状態空間を明示的に設計することなく、強化学習を拡張するものである。Google DeepMindによってATARIゲームの強化学習が研究されたことで、深層強化学習やエンドツーエンド強化学習が注目されるようになった。
敵対的深層強化学習.
敵対的深層強化学習（adversarial deep reinforcement learning）は、学習された方策の脆弱性（ぜいじゃくせい）に焦点を当てた強化学習の活発な研究分野である。この研究領域では、当初、強化学習方策がわずかな敵対的操作の影響を受けやすいことがいくつかの研究で示されていた。これらの脆弱性を克服するためにいくつか方法が提案されているが、最新の研究では、これらの提案された解決策は、深層強化学習方策の現在の脆弱性を正確に表すには程遠いことが示された。
ファジィ強化学習.
強化学習にファジィ推論を導入することで、連続空間におけるで状態-行動価値関数を近似することが可能になる。ファジィルールの IF - THEN 形式は、自然言語に近い形式で結果を表現するのに適している。ファジィルール補間によるファジィ強化学習（fuzzy reinforcement learning、FRL）への拡張により、サイズが縮小されたスパース・ファジィ・ルールベースを使用して、基本ルール（最も重要な状態-行動価値）に重点を置くことができるようになった。
逆強化学習.
逆強化学習（inverse reinforcement learning、IRL）では報酬関数が与えられない。その代わり、専門家が観察した行動から報酬関数を推測する。このアイディアは観察された行動を模倣することであり、多くの場合、最適または最適に近い行動となる。
安全な強化学習.
安全な強化学習（safe reinforcement learning、SRL）とは、システムの訓練や配置の過程で、その合理的な性能を確保し安全制約を尊重することが重要な問題において、期待収益を最大化する方策を学習する過程と定義することができる。