Diese Präsentation wurde erfolgreich gemeldet.

Weitere Verwandte Inhalte

Ähnliche Bücher

Kostenlos mit einer 14-tägigen Testversion von Scribd

Alle anzeigen

Ähnliche Hörbücher

Kostenlos mit einer 14-tägigen Testversion von Scribd

Alle anzeigen

強化学習入門

  1. 1. 強化学習入門 理工学研究科 D2 齋藤 俊太 13年5月3日金曜日
  2. 2. 学習? 動物心理学 観察 行動主義 学習によって行動が変化 → 行動を見れば学習し   たかどうか分かる 認知主義 学習によって内面的な認知が変化 → 行動に出る前に内的表象が変化   している=これも学習 13年5月3日金曜日
  3. 3. 行動主義心理学的な実験 13年5月3日金曜日
  4. 4. パブロフの犬(古典的条件付け) 犬に を与える前に「ベルを鳴らす」 何度か繰り返す 「ベルが鳴る」という刺激に対 して唾液を分泌するようになる 「刺激」と「反応」の連合を強める=連合学習 食べる時に「唾液を分泌する」という犬が生まれつき持つ無条件反応 が,学習の過程を経て「ベルが鳴る」という刺激に対して反応するよう に変化したことを意味する 13年5月3日金曜日
  5. 5. 猫の問題箱(試行錯誤学習) 何度か繰り返すと,やがて同じ行動が出現する頻度が高くなる 外に出ようとして猫が いろいろな行動をとる 偶然に外に出られた また箱にいれる パブロフの犬の場合と違い刺激は存在しないが,行動後の「満足」また は「不快」の度合いに応じて,行動の出現頻度が学習の過程を経て変化 する →効果の法則 13年5月3日金曜日
  6. 6. スキナーの箱(報酬学習) が出る たまたまラットがレバーを押す ラットはレバー付近にいること が多くなる レバーを押す頻度が高くなる 状況と行動の結合を強めるような報酬を「正の強化子」,弱めるような報 酬を「負の強化子」という. 満足/不快を「 」=「報酬」という形で明確に与えた「試行錯誤学 習」.報酬に応じて行動の自発頻度が変化していく.このような学習 をオペランド条件付け(or 報酬学習)という. 13年5月3日金曜日
  7. 7. 認知心理学的な実験 13年5月3日金曜日
  8. 8. 認知心理学的な実験 内的な変化は行動だけからは観察が難しい 脳科学 脳におけるシナプスの可塑性  → シナプス同士は結合を生成/消滅/増強/抑制する 学習の動機付けはドーパミンにより行われる ドーパミンの分泌量や電気生理学的な脳に対する観察から 学習の過程を理解しようとする 13年5月3日金曜日
  9. 9. で、どうやってコンピュータは 学習を行えばいいのか? 13年5月3日金曜日
  10. 10. 教師あり学習 「答え」「問題」 この矢印が欲しい 「問題」と「答え」を事前にたくさん用意しておいて, 間をつなぐ「写像」を近似する できるだけ未知の「問題」に対しても正しい「答え」が 予測できるようにしたい → どうやって汎化能力を獲得するかが重要 13年5月3日金曜日
  11. 11. 教師なし学習 観察者「問題」 この矢印が欲しい こういう問題だな 観察 ・特性を理解する ・要約する(次元削減) ・グループ化する(クラスタリング) 13年5月3日金曜日
  12. 12. 学習? 動物心理学 観察 行動主義 学習によって行動が変化 → 行動を見れば学習し   たかどうか分かる 認知主義 学習によって内面的な認知が変化 → 行動に出る前に内的表象が変化   している=これも学習 13年5月3日金曜日
  13. 13. 強化学習問題 「問題」 13年5月3日金曜日
  14. 14. 強化学習問題 「問題」 チャレンジする 行動 13年5月3日金曜日
  15. 15. 強化学習問題 「問題」 チャレンジする 行動 よい行動 よくない行動 「評価」 報酬が与えられる (罰則) 13年5月3日金曜日
  16. 16. 強化学習問題 「問題」 チャレンジする 行動 どう行動すべきか よい行動 よくない行動 「評価」 報酬が与えられる (罰則) 13年5月3日金曜日
  17. 17. 強化学習問題 「問題」 チャレンジする 行動 どう行動すべきか この矢印が欲しいよい行動 よくない行動 「評価」 報酬が与えられる (罰則) 13年5月3日金曜日
  18. 18. 強化学習問題 「問題」 チャレンジする 行動 どう行動すべきか この矢印が欲しいよい行動 よくない行動 「評価」 報酬が与えられる (罰則) 答えではなく評価 13年5月3日金曜日
  19. 19. 手法の選び方 例:アンケートの回答を分析する 「年齢」と「収入」の関係を知りたい 年齢を入力,収入を出力とする教師あり学習 「年齢と収入」から似ている回答者をグループ化したい 年齢,収入を入力とする教師なし学習 「年齢と収入」に基づき回答者に広告を送りたい 年齢,収入を入力とし,売上を報酬とした強化学習 13年5月3日金曜日
  20. 20. 強化学習の背景 心理学 「試行錯誤学習」「報酬学習」 最適制御理論 制御対象の挙動の良し悪しを表す目的関数を 最大化または最小化するように制御則を求め る設計手法 → e.g. 電気代を抑えて目的を達成するには… 13年5月3日金曜日
  21. 21. 強化学習の構成 <人の場合> 13年5月3日金曜日
  22. 22. 強化学習の構成 <コンピュータの場合> 即時報酬を最大にする行動ではなく,報酬の積み重ねとして 将来にわたって得られる合計報酬=収益を最大にするように 行動を最適化していく 13年5月3日金曜日
  23. 23. 問題設定 エージェント 状態 → MDP 13年5月3日金曜日
  24. 24. 問題設定 エージェント 状態 行動 右に行く 左に行く → MDP 13年5月3日金曜日
  25. 25. 問題設定 エージェント 状態 行動 右に行く 左に行く 政策 状態 で行動 をとる確率 → MDP 13年5月3日金曜日
  26. 26. 問題設定 エージェント 状態 行動 右に行く 左に行く 環境 政策 状態 で行動 をとる確率 → MDP 13年5月3日金曜日
  27. 27. 問題設定 エージェント 状態 行動 右に行く 左に行く 環境 遷移確率 状態 で行動 をとった とき状態が  になる確率 政策 状態 で行動 をとる確率 → MDP 13年5月3日金曜日
  28. 28. 問題設定 エージェント 状態 行動 右に行く 左に行く 環境 次の状態 遷移確率 状態 で行動 をとった とき状態が  になる確率 政策 状態 で行動 をとる確率 → MDP 13年5月3日金曜日
  29. 29. 問題設定 エージェント 状態 行動 右に行く 左に行く 環境 次の状態 遷移確率 状態 で行動 をとった とき状態が  になる確率 報酬 政策 状態 で行動 をとる確率 → MDP 13年5月3日金曜日
  30. 30. 強化学習の目的 将来得られる報酬の総和が最大になるように政策を学習する (発散しないように)割引率 を定義し,これを乗じた報酬を 将来に渡り加えた総和を収益とし,この期待値を最大化する! E " 1X t=0 t R(st, at, st+1) # , 8s0 2 S, 8a0 2 A目的関数 下記の目的関数を最大にする政策関数 を求める⇡ at ⇠ ⇡(at|st) st+1 ⇠ PT (st+1|st, at) st 2 S, at 2 A 2 (0, 1] 制約条件 A : ありうるすべての行動集合 S : ありうるすべての状態集合 13年5月3日金曜日
  31. 31. 強化学習の目的 E " 1X t=0 t R(st, at, st+1) # , 8s0 2 S, 8a0 2 A目的関数 ⇡⇤ (a|s) ⌘ arg max ⇡ E " 1X t=0 t R(st, at, st+1)|s0 = s, a0 = a # を最大にする政策関数が最適政策関数 つまり… どうやって求めるか? 13年5月3日金曜日
  32. 32. 強化学習の目的 E " 1X t=0 t R(st, at, st+1) # , 8s0 2 S, 8a0 2 A目的関数 ⇡⇤ (a|s) ⌘ arg max ⇡ E " 1X t=0 t R(st, at, st+1)|s0 = s, a0 = a # を最大にする政策関数が最適政策関数 つまり… どうやって求めるか? Q(s, a) とおく 13年5月3日金曜日
  33. 33. 強化学習の目的 E " 1X t=0 t R(st, at, st+1) # , 8s0 2 S, 8a0 2 A目的関数 ⇡⇤ (a|s) ⌘ arg max ⇡ E " 1X t=0 t R(st, at, st+1)|s0 = s, a0 = a # を最大にする政策関数が最適政策関数 つまり… どうやって求めるか? Q(s, a) とおく Q(s, a) = E " 1X t=0 t R(st, at, st+1)|s0 = s, a0 = a # 行動価値関数 13年5月3日金曜日
  34. 34. 行動価値関数 ⇡(a0|s0)PT (s0, a0, s1) s0 s1 状態 で行動 をとる確率s0 a0 状態 で行動 をとったとき 状態 に遷移する確率 s0 a0 s1 R(s0, a0, s1) 報酬発生 この連鎖で得られる報酬の合計値=収益 収益の期待値が行動価値 13年5月3日金曜日
  35. 35. 行動価値関数 Q(s, a) = E " 1X t=0 t R(st, at, st+1)|s0 = s, a0 = a # 行動価値関数 ⇡(a0|s0)PT (s0, a0, s1) s0 s1 状態 で行動 をとる確率s0 a0 状態 で行動 をとったとき 状態 に遷移する確率 s0 a0 s1 R(s0, a0, s1) 報酬発生 この連鎖で得られる報酬の合計値=収益 収益の期待値が行動価値 13年5月3日金曜日
  36. 36. 行動価値関数と政策関数 ⇡⇤ (a|s) ⌘ arg max ⇡ Q⇤ (s, a) 行動価値関数を最大にするような政策を知りたい強化学習の目的 1. 政策関数を適当に初期化(一様分布など) 2. 現在の政策に従って行動を起こし,報酬を観察 3. 現れた状態行動対   の価値を推定 4. 推定した   を使って政策を改善 5. 1.に戻る (s, a) Q(s, a) これを繰り返すことにより最適政策を近似する 13年5月3日金曜日
  37. 37. 行動価値関数と政策関数 ⇡⇤ (a|s) ⌘ arg max ⇡ Q⇤ (s, a) 行動価値関数を最大にするような政策を知りたい強化学習の目的 1. 政策関数を適当に初期化(一様分布など) 2. 現在の政策に従って行動を起こし,報酬を観察 3. 現れた状態行動対   の価値を推定 4. 推定した   を使って政策を改善 5. 1.に戻る (s, a) Q(s, a) これを繰り返すことにより最適政策を近似する 疑問 3.の「状態行動対   の価値を推定」ってどうやる?(s, a) 4.の「推定した   を使って政策を改善」ってどうやる?Q(s, a) 13年5月3日金曜日
  38. 38. 状態行動対の価値 Q(s, a) = E " 1X t=0 t R(st, at, st+1)|s0 = s, a0 = a # 例えば,状態 (s0, a0) の価値が知りたい 13年5月3日金曜日
  39. 39. 状態行動対の価値 Q(s, a) = E " 1X t=0 t R(st, at, st+1)|s0 = s, a0 = a # 例えば,状態 (s0, a0) の価値が知りたい 13年5月3日金曜日
  40. 40. 状態行動対の価値 Q(s, a) = E " 1X t=0 t R(st, at, st+1)|s0 = s, a0 = a # 例えば,状態 (s0, a0) の価値が知りたい 13年5月3日金曜日
  41. 41. 状態行動対の価値 Q(s, a) = E " 1X t=0 t R(st, at, st+1)|s0 = s, a0 = a # 例えば,状態 (s0, a0) の価値が知りたい 色々なパスがあるが, それらを全て考慮して 得られる報酬の期待値 を計算する必要がある 13年5月3日金曜日
  42. 42. 状態行動対の価値 a1 s3 a4 s5 報酬の期待値(収益)は 左のようなパスを通った場合, ⇡(a0|s0)P(s0, a0, s1)R(s0, a0, s1) + ⇡(a1|s1)P(s1, a1, s3)R(s1, a1, s3) + 2 ⇡(a4|s3)P(s3, a4, s5)R(s3, a4, s5) Q⇡ (s, a) = E " 1X t=0 t R(st, at, st+1)|s0 = s, a0 = a # これを    以降の全ての場合における 状態→行動選択確率(政策)と状態行動対 →次状態への遷移確率についての期待値を 計算すると    がわかる s0 ! a0 Q⇡(s0, a0) さらにそれを全ての   について計算す る必要がある (s, a) 13年5月3日金曜日
  43. 43. 大変すぎる 13年5月3日金曜日
  44. 44. 大変すぎる 動的計画法などで実際に計算することも可能だが, 状態数が増えたりするとほぼ計算不可能になる 13年5月3日金曜日
  45. 45. 行動価値関数の近似計算 モンテカルロ法 有限な時間ステップTで終了する状態行動対の遷移データ(エピ ソードデータ)を使って,行動価値関数を近似する 他にも,TD法(Temporal Difference Method), SARSA法,TD(λ)法,Q学習など様々な方法が存在する → 今回は実装が容易そうなモンテカルロ法について説明します 13年5月3日金曜日
  46. 46. モンテカルロ法 こういうパスを ることも こういうパスを ることも いろいろな場合がある 13年5月3日金曜日
  47. 47. モンテカルロ法 では,とある状態行動対   の真価はどうやって知るか? Q⇡ (s2, a2)例えば,    が知りたい まず,最大ステップ数Tを決める (s2, a2)   が現れた時点から,Tまでに 観測された報酬から収益を計算する 色々なパスについてこれをやる 観測された収益の平均値を    の価値とする (s2, a2) 1. 2. 3. 4. 13年5月3日金曜日
  48. 48. モンテカルロ法 では,とある状態行動対   の真価はどうやって知るか? Q⇡ (s2, a2)例えば,    が知りたい まず,最大ステップ数Tを決める (s2, a2)   が現れた時点から,Tまでに 観測された報酬から収益を計算する 色々なパスについてこれをやる 観測された収益の平均値を    の価値とする (s2, a2) 1. 2. 3. 4. あらかじめ決めた数のパスを生成しておき,上記の手順を踏めば,そ れらのパス中に現れた状態行動対については,行動価値が推定できる 13年5月3日金曜日
  49. 49. 政策改善 行動価値関数が推定できたら,それをもとに政策(どういった状態の ときにどの行動を選ぶ確率が高いか,という値)を改善する ε-greedy法 a⇤ = arg max a Q⇡ (s, a) ⇡0 (a|s) = ( 1 ✏ + ✏ |A| ifa = a⇤ ✏ |A| otherwise 行動価値が最も高い行動を選ぶ確率を1-εにしたあと, 全ての選択肢にεを行動数で割った値を割り振る 13年5月3日金曜日
  50. 50. 学習の流れ ⇡⇤ (a|s) ⌘ arg max ⇡ Q⇤ (s, a) 行動価値関数を最大にするような政策を知りたい強化学習の目的 1. 政策関数を適当に初期化(一様分布など) 2. 現在の政策に従って行動を起こし,報酬を観察 3. 現れた状態行動対   の価値を推定 4. 推定した   を使って政策を改善 5. 1.に戻る (s, a) Q(s, a) これを繰り返すことにより最適政策を近似する 疑問 3.の「状態行動対   の価値を推定」ってどうやる?(s, a) 4.の「推定した   を使って政策を改善」ってどうやる?Q(s, a) 13年5月3日金曜日
  51. 51. 三目並べのコンピュータプレーヤを 作ってみた 13年5月3日金曜日
  52. 52. 準備 0 1 2 3 4 5 6 7 8 • 9マスある • それぞれに ○ , , 空 の3状態 • 盤面ごとに状態番号をふると,3^9状態 13年5月3日金曜日
  53. 53. 準備 0 1 2 3 4 5 6 7 8 • 9マスある • それぞれに ○ , , 空 の3状態 • 盤面ごとに状態番号をふると,3^9状態 _人人人人_ > 多い <  ̄Y^Y^Y ̄ 13年5月3日金曜日
  54. 54. 準備 0 1 2 3 4 5 6 7 8 • 9マスある • それぞれに ○ , , 空 の3状態 • 盤面ごとに状態番号をふると,3^9状態 _人人人人_ > 多い <  ̄Y^Y^Y ̄ 0 1 2 3 4 5 6 7 8 左のように,45度回転の組み合わ せで同じ状態に持っていけるものは ひとつの状態として扱う 13年5月3日金曜日
  55. 55. 状態の圧縮 o x x o o 一つの状態を9ケタの3進数で表現する 0 ... 空 1 ... o 2 ... x 左の盤面は 120021100 ある状態が入力されてきたら,回転変換を施したものも含めた8状態 の3進数表現を計算する 8種類の3進数を10進数に変換する 8種類の10進数の値のうち一番小さいものを状態番号とする 1. 2. 3. 13年5月3日金曜日
  56. 56. 状態の圧縮 13年5月3日金曜日
  57. 57. 事前に仮想試合をして行動価値を学習する 仮想プレイヤー ・基本的にランダムに手を打つ ・ただし,自分がリーチのときは勝つ手を選ぶ • 仮想プレイヤーとたくさん戦って価値関数を事前に計算する • 最大5手で終わる(最大ステップ数T=5の)ゲームを1000回x 30セットやる • 勝ったら報酬+10,負けたら報酬-10,引き分けなら報酬0 学習 13年5月3日金曜日
  58. 58. 勝率の変化 勝率 セット 13年5月3日金曜日
  59. 59. 実装で使ったもの • Ruby 1.9.3-p392 • Ruby/SDL(可視化) • NArray(行列の扱い) *Githubにソースコードをアップ  しました https://github.com/mitmul/TicTacToe 13年5月3日金曜日
  60. 60. 勝負を挑む 13年5月3日金曜日
  61. 61. 強くなりすぎた 13年5月3日金曜日
  62. 62. おしまい 13年5月3日金曜日

×