強化学習と深層強化学習について。
目次
AI・ディープラーニングの全体像
- 人工知能
- 機械学習
- ディープラーニングの基本・応用
- ディープラーニングの研究
- AIプロジェクト
- AI社会実装に伴う法律・倫理
強化学習
強化学習の基本原理
- ある特定の状態で最大限の報酬をもらうためにどのような行動を取るべきかを学習するための機械学習手法
- 試行錯誤や探索を通じ、意思決定のルールを見出すもの
- 教師ラベルがなくとも学習可能
- 「エージェント」→「行動」→「環境」→「状態・報酬」
※エージェントが、環境が与えた状態のなかで、行動の試行錯誤を繰り返し、報酬が与えられる
→最大の報酬がもらえるような行動を学習する
教師あり学習 | すべての情報に正解を用意する |
---|---|
教師なし学習 | |
強化学習 | 報酬を定義づけ、報酬を最大化するような動き方を最適化させる |
強化学習のモデルの最適化
概要
- エージェントは、特定の時刻において、環境から状態を受け取る
→エージェントは、状態のもとで、行動を選択し、実行する
→環境が次の状態へと遷移することで、エージェントは報酬を受け取り、行動を評価する
→繰り返す - 将来にわたって獲得できる累積報酬を最大化するように行動を学習する
- 「割引率」→各時刻の報酬に割引率を乗算することで累積報酬を計算する
→将来もらえる報酬の現在価値を考慮
→0~1で値を取る
→1に近いほど、将来もらえる報酬を減点せずに現在の報酬と同様の価値があるものとして考慮される
→0に近いほど、現在の報酬に重きを置く
方策と価値関数(2つのアプローチ)
- 「最適な方策」を直接的に見つける
- 「行動価値関数」を最大にするような行動を見つける
方策勾配法 | Q学習 | |
---|---|---|
行動の最適化 | 「方策」そのものを直接的に最適化する | 「行動価値関数(Q関数)」を最適化することで、最適な行動を選択する能力が間接的に得られる |
関数の更新 | 勾配降下法を使用し、方策を更新する | ベルマン方程式に基づく動的計画法を使用し、行動価値関数Qを更新する |
安定性と収束性 | 報酬を最大化する方策に収束しようとするなかで、局所最適解に収束する可能性もあり | 特定条件(マルコフ決定過程、無限試行など)を満たせば、最適な価値観数に収束可能 |
①方策勾配法(最適な方策を導き出す)
- 「方策勾配法(Policy Gradient Method)」→最適な方策を直接的に導き出す手法
- 方策→ある状態において行動を選択するための作戦
- 方策をパラメータで表現可能な関数とする
- 「勾配降下法」を用い、関数のパラメータを逐次的に更新し、累積報酬の期待値が最大となるよう、直接的に方策を最適化する
②Q学習
- 「Q学習」
- ある状態と行動から得られる将来の累積報酬の期待値→「価値」
- 価値が最大となるような行動を導き出し、最適な行動を選択する能力が間接的に得られる
- 「価値関数(Value Function)」
- 「状態価値関数V(s)」→特定の状態sからスタートし、方策πにしたがうときの価値(累積報酬の期待値)
- 「行動価値関数Q(s,a)」→特定の状態sにおいて、特定の方策に従って行動aを取ったとき、将来もらえる価値(累積報酬の期待値)
※価値関数というと、行動価値関数を指すことが多い
バンディットアルゴリズム
- 「バンディットアルゴリズム(Bandit Algorithm)」→活用と探索のトレードオフを解決する問題
- 「活用(Elploitation)」→一連の試行錯誤の後に、報酬が高かった行動を積極的に選択する
- 「探索(Exploration)」→より高い報酬をもたらす別の行動がないか探す
- 「ε-greedy法」→一定の確率で、エージェントにランダムな行動を選択させる手法
※確率εで、ランダムな行動を”探索”として選択
※確率(1ーε)で、最も報酬の高かった行動を”活用”として選択する - 「greedy法」→最適行動(=最も価値の高い行動)を常に選択すること
マルコフ決定過程モデル
- 「マルコフ決定過程(Markov Decision Process)」→状態遷移に”マルコフ性”を過程したモデル
- 「マルコフ性(Markov Property)」→未来の状態が現在の状態にのみ依存し、過去の状態やどのように現在の状態に達したかには依存しない性質
- 強化学習では、環境がマルコフ性を持つことを仮定する
- 通常、報酬は過去のすべての出来事に依存すると考えるが、そうすると計算コストが膨大となる
→マルコフ性を仮定することで、現在の状態と行動さえ与えれば、将来の状態に遷移する確率を導出するモデルが実現される
→逐次的に計算を繰り返すことにより、現在の値には過去のすべての時刻の情報が考慮されていることになる
価値ベースの強化学習手法
概要
動的計画法 (Dynamic Programming) | ・モデルのパラメータに対し、Bellman最適方程式を解いて、最適な方策を得る ・モデルのパラメータ(状態遷移確率と価値関数)が既知の場合にのみ使用可能だが、満たさないことが多い |
---|---|
モンテカルロ法 (Monte Carlo Method) | ・ランダムに多数のパターンを探索する手法 ・報酬が得られるまで行動し、報酬を得た段階で過去の価値関数を一気に更新することが特徴 ・報酬が得られた時点で、たどってきた状態と行動に対し、その報酬を分配する ・一連の行動が終了し、報酬が得られるまでQ値を更新できないため、時間が長くかかる |
TD学習 (Temporal Difference;時間的差分) | ・実際の経験(エージェントと環境の交互作用)に基づいて学習 ・実際にエージェントを行動させ、次の時点の状態を確認しながらQ値を更新し続けることで、行動を最適化、方策を間接的に改善していくアプローチ |
Q学習
- 「Q学習(Q-Learning)」→各時刻における状態とエージェントの行動とそれに対する評価に基づき、Q値(行動価値関数)を更新する
- 状態sを起点に、行動aを選択し、その行動によって状態s’に移行
→行動価値関数Q(s,a)を更新するために、最も価値の高い行動a’と状態s’の組み合わせ(s’,a’)を用い、Q値を更新する - 現在の「Q値(Q(s,a))」と、得られる最大の「Q値(maxQ(s’,a’))」との差分(=TD;Temporal Difference)を用い、現在のQ値を更新する
SARSA
- 「SARSA」→エージェントが実際にとった行動に基づき、行動関数(Q値)を更新するTD学習の一種で、実際の行動をQ値の更新に用いる
- エージェントが、状態sで行動aを選び、報酬rを得て、次の状態s’に移行し、その状態で行動a’を選ぶ場合、経験(s,a,r,s’,a’)を用いてQ値を更新する
- 現在のQ値(Q(s,a))と、次のステップで実際に得られるQ値(Q(s’,a’))の差分(=TD;Temporal Difference)を使い、現在のQ値を更新する
まとめ
- 「Q学習」、「SARSA」→行動した結果と過去の推定値の差をもとに、各ステップで行動価値関数(Q値)が更新される
- 各ステップでQ値を更新する方法→「TD(Temporal Difference)学習」
- 「SARSA」は、各ステップで実際にとった行動を用いてQ値を更新する
⇔「Q学習」は、最大の価値をもたらすと推定される行動を用いてQ値を更新する
→「方策オン(on-policy)」のTD学習と呼ばれる - 「Q学習」は、実際にとる行動と、価値関数の更新に用いる行動とが異なる
→「方策オフ(off-policy)」のTD学習と呼ばれる - 「モンテカルロ法」→各ステップでは更新を行わず、報酬が得られるまで行動し、報酬を得た段階で、辿ってきた状態と行動に対し、報酬を分配し、過去の勝ち関数を一気に更新する
- 「TD学習」は「モンテカルロ法」よりも効率的
深層強化学習
従来型の強化学習の課題
- 「状態」を表現することが難しい
- 現実的な時間内で最善の行動を判断することが難しい
深層強化学習の登場
- 「深層強化学習」→ディープラーニングと強化学習を組み合わせたもの
- 強化学習にディープラーニングを取り入れ、学習にとって本質的な情報を見つけ出しやすくなる
- 行動の最適化が改善し、従来に比べ、使い道が広がった
DQN(Deep Q-Network)
- 「DQN(Deep Q-Network)」→深層強化学習の代表的手法
- 行動価値関数(特定の状態において特定の方策に従って取った行動に対する価値を定義する関数)を近似するために「CNN」を用いる
- 状態の数が膨大になっても、学習を現実的な時間内で終了することができる
- 「Experience Replay(経験再生)」を取り入れている
- サンプルのバッファーから一度に複数のサンプルを取り出し、ミニバッチ学習を行う仕組み
→サンプル間の相関による影響を軽減することができる - 2013年、「Atari社」のブロック崩しゲーム→人間のスコアを超える
- 2015~2017年、「DeepMind社」の「AlphaGo(アルファ碁)」→世界トップ棋士を超える
- 2017年10月、「AlphaGo Zero」→完全自己対局で学習