これからの強化学習
理系大学院修士1年のはりまです。
自分の学習内容をメモ程度にまとめていきます。見辛いのは申し訳ありません。
分からないところは教えていただきたいです。
Chap.0 Introduction
-
強化学習とは、経験をもとに試行錯誤しながら最適な行動を獲得するための理論的枠組み
-
ex)自転車
-
アルゴリズムの出力によって、収集されるデータそのものが変化(探索と利用のトレードオフ)
-
十分なデータを持っておらず、データの収集にコストがかかる世界において、データをどのように収集するか(←→ビッグデータ)
Chap.1 強化学習の基礎的理論
- 強化学習の基礎的概念を、最新の見方をもとに簡潔に整理
1.1 強化学習とは
-
強化学習問題・・・対象について不完全な知識しかなく、また、対象へのはたらきかけによって観測出来ることが変わってくる場合に、最適なはたらきかけ方の系列を発見するような問題
-
行動する主体をエージェント、はたらきかけられる対象を環境、働きかけを行動、それによって変化する環境の要素を状態
-
未知の環境で発生することを統一的に比較する指標を報酬(経済学では利得、制御工学では損失またはコスト)
-
置かれた環境の中で、行動の選択を通して得られる報酬の総和を最大化
-
エージェントの行動決定の方策を観測の結果を入力として、行動を出力とする関数で表す
-
即時報酬と遅延報酬を合わせ、得られる長期的な報酬(収益)を最大化することが必要
-
エージェントの現在の状態、使う方策などを固定した場合の条件付き期待値として価値を計算
-
ほとんどの場合、エージェントが環境に関して事前の知識をもっていない、あるいは知識が不完全であると仮定
-
探索と利用のトレードオフ・・・これまでの学習結果を利用しようとすると、探索が減ってしまい、損失機会が増える。一方探索を増やせば最良の行動とは異なる行動を取るため、得られる報酬が減る(最適解は得られた情報の量と偏りによって動的に変化)
-
多腕バンディット問題・・・スロットマシンの腕が$K$本、払い戻される額を$R$、腕$i$を引いた場合当たりが出る確率を$p_i$とする(プレイヤーは事前に確率値を知ることができない)
-
greedyアルゴリズム・・・これまでの結果から期待値が最大の腕を選択する
- まだn回選んだことがない腕がある場合、その腕を選ぶ。
- それ以外の場合、すべての腕に対して、これまでの報酬の平均を計算する。
- $\mu_i$が最大の腕を選ぶ
\mu_i=\frac{これまで腕iから得られた報酬の和}{これまで腕iをプレイした回数}
-
本来は最適でない腕$i'$が、たまたま試行のときに多く当たったため、腕$i'$の払戻率$p_{i'}$が最適な腕$i$の払戻率$p_i$より大きいと誤認
- 誤った最適解に基づき腕$i'$を引き続けると腕$i'$の結果がより多く集まり、$p_{i'}$の推定誤差は試行を増やすほど減少し、いつかは誤りを訂正可能
-
本来は最適である腕$i$が、たまたま試行のときにあまり当たらなかったため、腕$i$の払戻率$p_i$が最適でない腕$i'$の払戻率$p_{i'}$より小さいと誤認
- 誤った最適解に基づき腕$i'$を引き続けても、本来最適な腕$i$の情報は集まらないため、試行を繰り返しても推定誤差は減少せず、誤りを訂正不可能
-
$\epsilon$-greedyアルゴリズム・・・確率$\epsilon$でランダムな腕を選ぶ($0 \leq \epsilon \leq 1$)
-
まだ選んだことがない腕がある場合、その腕から一つ選ぶ
-
確率$\epsilon$で、すべての腕からランダムに一つ選ぶ
-
確率$1-\epsilon$で、これまでの報酬の平均$\mu_i$が最大の腕を選ぶ
-
$\epsilon$はランダムよりも効率の良い探索方法がありそう
-
-
不確かなときは楽観的に・・・期待値に不確実性があるときには、その不確実性の範囲の中で、大きい期待値を仮定すべき
-
- 現在の知識と整合性のあるような「想定しうる環境」という集合を考える
-
- その集合から「最も都合の良い」環境を選び出す
-
- その最も都合の良い環境における最適解を次の行動とする
-
-
学習初期は探索に重点が置かれ、後期になると利用に重点が置かれる
-
楽観的初期値法・・・学習前に各腕から報酬の最大値を$K$回観測していたという形で、各腕の価値の楽観的な期待値を見積もる
- 報酬の上界$r_\sup$とする
- 学習中に観測した結果に加え、各腕から$r_\sup$の報酬が$K$回観測されていたと考えて、各腕の報酬の期待値を計算する
- $\mu'_i$が最大の腕を選ぶ
\mu'_i = \frac{これまで腕iから得られた報酬の和+Kr_{\sup}}{これまで腕iをプレイした回数+K}
-
UCBアルゴリズム・・・信頼区間の確率を少しずつ1に近づけることで、すべての選択肢に対して必要な探索が行われ、また探索のコストも最適解を間違えるリスクも少なく出来る
- $R$:払戻額の最大値と最小値の差
- まだ選んだことのない腕があれば、そのうち一つを選ぶ
- 各々の腕$i$から得られる報酬の期待値を計算する
- 各々の腕$i$から得られる報酬の信頼区間の半幅を計算する
- $x_i= \mu_i + U_i$が最大の腕$i$を選ぶ
\mu_i=\frac{これまで腕iから得られた報酬の和}{これまで腕iを選んだ回数}\\
U_i=R \sqrt{\frac{2 \ln (これまでの総プレイ回数)}{これまで腕iをプレイした回数}}
-
$K=4$の場合のシュミレーションを行う。
- 払戻額はそれぞれ0.2,0.3,0.4,0.5
- 10,000時間ステップの学習を10,000回繰り返す
-
様々な未知の環境において、自ら情報収集してロバストに良い行動を獲得する
-
問題によって適切なアルゴリズムは違ってくる(アルゴリズムの選択が重要)