Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

強化学習その1

14 847 vues

Publié le

社内勉強会での講演資料

Publié dans : Formation
  • Visit this site: tinyurl.com/sexinarea and find sex in your area for one night)) You can find me on this site too)
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • The #1 Woodworking Resource With Over 16,000 Plans, Download 50 FREE Plans... ●●● http://tinyurl.com/y3hc8gpw
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • Want to preview some of our plans? You can get 50 Woodworking Plans and a 440-Page "The Art of Woodworking" Book... Absolutely FREE ◆◆◆ http://tinyurl.com/y3hc8gpw
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • Sex in your area for one night is there tinyurl.com/hotsexinarea Copy and paste link in your browser to visit a site)
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • Girls for sex are waiting for you https://bit.ly/2TQ8UAY
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici

強化学習その1

  1. 1. 強化学習 その1 2017-01-13 @ 機械学習勉強会 サイボウズ・ラボ 西尾泰和
  2. 2. このスライドの目的 大規模なデータを占有してない企業にとって 強化学習の考え方が有用なので 基礎からきちんと理解したい。 そのために機械学習勉強会の何回かに分けて 強化学習の話を連載する。 2
  3. 3. 参考文献 2016年10月に左の本が出た。 これを読んでいく。 右下の本が長らくバイブル だったが2000年(原著1998年) 発行。 3 http://amzn.to/2josIJ1 http://amzn.to/2jCnYQg
  4. 4. 今後の予定 第1回: 序章 1章 強化学習の基礎的理論 1節 強化学習とは 第2回: 2節 強化学習の構成要素 第3回: 3節 価値反復に基づくアルゴリズム 第4回: 4節 方策勾配に基づくアルゴリズム 第5回: 5節 部分観測マルコフ決定過程 4
  5. 5. 強化学習とは何か? 「十分なデータを持っておらず、 データの収集にコストがかかる世界において、 データをどのように収集するか」 が強化学習である。 5 p. i 「はじめに」より引用
  6. 6. 強化学習とは何か? 強化学習以外の機械学習では 「まずデータをたくさん集めましょう」 からスタートする。 データがないと門前払い。 強化学習は「データの足りない対象」から どうデータを収集するかの学問。 6
  7. 7. データは差別化の源泉 「データを持っていること」は参入障壁として機 能して、営利企業の利潤を守る。 データが公開されると参入障壁がなくなり、 競争が起き、レッドオーシャン化する。 競争は過熱しやすく、KPIの設定が適切でない場 合には経営上正しくない解に落ちてしまう。 優勝賞金1億円のコンペをしたNetflixは、 優勝したアルゴリズムを結局使っていない。 7 https://www.techdirt.com/blog/innovation/articles/20120409/03412518422/why- netflix-never-implemented-algorithm-that-won-netflix-1-million-challenge.shtml
  8. 8. ニッチトップ戦略 「データを持っていること」が参入障壁。 既に膨大なデータを占有できている一部の企業 (GoogleとかFacebookとか)以外は まだ十分なデータがないニッチを見つけ、 コストを掛けてデータを収集することで 参入障壁を築き利潤を守る戦略を取るしかない。 8
  9. 9. 強化学習とは何か?(再掲) 「十分なデータを持っておらず、 データの収集にコストがかかる世界において、 データをどのように収集するか」 が強化学習である。* →これを学んでいく必要があるのではないか? 9 * p. i 「はじめに」より引用
  10. 10. 強化学習の枠組み 何かが何かに働きかけて、 その結果として観測データが得られる。 例: ECサイトがデザインAの画面を顧客に見せて 顧客が購入したかどうかのデータが得られる。 働きかけを行動(action) 行動する主体(ECサイト)をエージェント(agent) 行動される客体(顧客)を環境(environment) と呼ぶ。 10 「顧客がエージェント」とか勘違いしないように注意が必要
  11. 11. 方策(policy) エージェントは行動を「決める」必要がある。 「決め方」は 過去の観測結果を入力とし、 行動を出力とする関数だ、 と考えこれを方策(policy)と呼ぶ。 11
  12. 12. 報酬(reward) 学習して「よりよく」していくためには 「よい」の定義が必要。 強化学習は観測結果に対してスカラー値の 報酬(reward) を対応付ける方法はgivenとし 「行動の選択を通じて報酬を最大化する」 という枠組みで問題を解こうとする。 報酬には即時報酬(immediate reward)と 遅延報酬(delayed reward)がある。 後者が問題を複雑にする。 12
  13. 13. 探索と利用のトレードオフ 環境に関して完全な事前知識があるなら (顧客にどんなページを見せたらどう行動するか が既知なら)最適な行動を決定をするのは簡単。 強化学習では、環境に対する事前知識は不完全と 仮定する。不完全な知識を元に行動しながらデー タを収集し、最適な行動を見つけていく。 「今までの経験から最も期待値の高い行動」を 選べばいい……本当にそう? 13
  14. 14. 探索と利用のトレードオフ 「過去の経験から一番いいと思う行動」ばかりを していたのでは、もっとよい行動を見つけること ができない。(探索が足りない) もっといいものがあるかも!と「未経験の行動」 ばかりをしていたのでは、過去の経験が生かせな い。(利用が足りない) これを探索と利用のトレードオフ(exploration- exploitation tradeoff)と呼ぶ。 14 なんかエンジニアの生存戦略みたいな話だ
  15. 15. 多腕バンディット問題 探索と利用のトレードオフを理解するために具体 的な問題について考えてみよう。 多腕バンディット問題(Multi-armed Bandit)は 強化学習の問題の中でかなり簡単な部類 • 遅延報酬はなく即時報酬だけ • 環境は行動によって変化しない 問題設定:スロットマシンがいくつかある。 どのスロットマシンで遊ぶのが良いか? 15
  16. 16. 多腕バンディット問題 エージェント: 環境: 行動: 報酬: 方策: 16
  17. 17. 多腕バンディット問題 エージェント: プレイヤー 環境: スロットマシン 行動: i番目のスロットマシンを選んでレバーを引く 報酬: スロットマシンの払戻額 方策: 過去の各マシンの試行回数と当選金額から どのスロットを選ぶか決める関数 17
  18. 18. 今回の実験 スロットは3つあり、1回100円でプレイする。 確率 0.1, 0.2, 0.3 で500円当たる。つまり期待値は 50円, 100円, 150円。(スロット0~2) 別途「何もしない」に相当する「100円入れたら 確率1で100円戻ってくるスロット3」を用意。 これらの知識が既知なら当然スロット2を選ぶわ けだが、エージェントはこれらを知らない。 18 あなたがエージェントならどうする?
  19. 19. greedyアルゴリズム 「各スロットを3回ずつやって、以降は報酬の平 均が最大のスロットを選ぶ」というアルゴリズム 問: 600人のエージェントがこのアルゴリズムで 1000回遊んだ時、最終的にどのスロットがどれ くらいの割合で選ばれているか? 19 補足:報酬の平均値は随時更新していく。 13回目の結果を見て平均を更新して、 それを元に14回目の選択を決める。
  20. 20. 結果 スロット0:期待値50円: 0件 スロット1:期待値100円: 9件 スロット2:期待値150円: 250件(42%) 何もしない:期待値100円:341件(57%) 半数以上が「お得な賭け」があることに気付かず 最適解でない「何もしない」を選択した。 20
  21. 21. 時系列変化 21 何もしない 最適解(期待値150円)
  22. 22. どうしてこうなる? スロット2は当たり率0.3, 期待値150だけど、 3回の試行でたまたま[0, 0, 0]となることは 0.7 * 0.7 * 0.7 = 0.343 の確率で起きて 「このスロットの期待値は0だな」 と悲観的な勘違いをする。 これ以外にも色々な悲観的勘違いが起きる。 一度悲観的な勘違いをすると、 二度とそのスロットを試さないので 勘違いから脱出できない。 22 昔ペン入力のPCを買ってイマイチだったからそれ以来買ってないけど悲観的勘違いかも
  23. 23. 冒頭200ステップを拡大 23
  24. 24. 楽観的勘違いは解消できる 24 各3回試した後、20%ぐらいが 期待値50円のスロットを選んでし まっている(楽観的勘違い) だけど、その後何回かプレイし 「あれ、思ったほどよくないぞ」 と気づいている
  25. 25. 勘違いの種類 真の期待値より高く評価してしまう 「楽観的な勘違い」は後から解消できる。 真の期待値より低く評価してしまう 「悲観的な勘違い」は後から解消できない。 ↓ ならば、楽観的な判断に倒せばよいのでは? 25
  26. 26. 不確かなときは楽観的に この考え方には名前がついている。 「不確かなときは楽観的に」の原理 (optimism in face of uncertainty) 探索と利用のトレードオフを解く アルゴリズムの多くが この原理に従っている。 26 座右の銘として飾っておいてもよさそう。強化学習は人生。 [Bubeck and Cesa-Bianchi: 2012] https://arxiv.org/pdf/1204.5721.pdf
  27. 27. 楽観的アルゴリズム 楽観的初期値法: 「プレイする前から『このスロットで何回か当 たったことがある』と思い込んで計算する」 UCB1アルゴリズム: 「報酬の期待値を信頼区間付きで求めて、 信頼区間の上の端が一番大きいものを選ぶ」 27 UCB1アルゴリズムの詳しい話は付録で。
  28. 28. 実験 各種アルゴリズムでの振る舞いを観察 28
  29. 29. greedy 29 最初に各スロットを試す回数 を1回、3回、10回と変えた。 探索回数を増やすにつれて、 最適解を選ぶエージェントの 割合は増える。 しかし、各10回試した程度で はまだ4割ぐらい「なにもしな い」にハマってしまう。
  30. 30. 楽観的初期値法 プレイ前に各スロットでK回 500円当たったと考える。 K=1, 3, 10 で試した。 K=3でほとんど最適解に。 30
  31. 31. UCB1 UCB1(中央)は楽観的初期値法 (K=3, 上)に比べてあんまりよ くないように見える。 1万回試行すると(下)だいぶ伯 仲するようになった。 1000回という今回適当に決めた実験条件では楽観 的初期化法がよく見えるけど、楽観的な初期値の 効果は600回目ぐらいで消えて「何もしない」が 減らなくなっているので長期的にはUCB1が勝つ だろう。 31
  32. 32. 報酬の平均 32 (平滑化のため幅30で移動平均を取っている)
  33. 33. 報酬の平均: 2万回試行 33 1~2万回でUCB1が逆転する↑
  34. 34. 追加実験 発表後の質疑にて 「UCB1は1万回くらいやれば楽観的初期値法に勝 つ、というタイムスケールの話をするなら、 greedyも3回だけじゃなくてもっと探索したらい いのでは?」 という質問があったのでK=100で実験 34
  35. 35. 実験結果 35
  36. 36. 実験結果2 36
  37. 37. Greedy(100)の選択 予想通りgreedy_100は400回の探索後、 ほとんど全部が最適解を選んでいる。 37
  38. 38. 順位 今回の問題設定ではt=1000でも20000でも greedy(100)が優勝。 t=1000 greedy(100) > optim(3) > UCB1 > optim(100) > greed(3) t=20000 greedy(100) ~ optim(100) > optim(3) > UCB1 > greedy(3) 38
  39. 39. 追加実験まとめ これは割と示唆に富む結果で、UCB1は有名だし 中身の数学がよくわからないのでなんか凄そう ということで選ばれてしまいがちだが、 「時間を掛ければ比較的早く良くなっていく」* ことが保証されているにすぎないので、 人間が問題設定を理解してパラメータを選んだ 素朴なアルゴリズムが勝つこともある。 今回の問題設定ではgreedy(100)が圧勝だった。 実務的にはこう判断できる能力に価値がある。 39 * greedyや楽観的初期値法は時間を掛けてもよくならないケースがあることを今回の 実験で見たし、greedyしつつ一定確率で探索するε-greedyよりはUCB1の方が最適解と のずれの減り方が早い。
  40. 40. 付録 説明の都合で飛ばしたところを埋めておく。 40
  41. 41. UCB1の信頼区間 他の腕のプレイ回数が信頼区間に影響するのが なぜだかよくわからなかった 41
  42. 42. Chernoff-Hoeffding Inequality [0, 1]の範囲の値を取る独立な確率変数 𝑋1 … 𝑋 𝑛 の平均 ത𝑋 = 1 𝑛 σ𝑖 𝑋𝑖 と真の期待値 𝜇 の差には任意の正数 𝑡 について 𝑃 ത𝑋 − 𝜇 > 𝑡 ≤ exp −2𝑛𝑡2 という関係がある。 42 https://en.wikipedia.org/wiki/Hoeffding's_inequality
  43. 43. Chernoff-Hoeffding Inequality 普通に信頼区間を議論する場合は、givenな5%と かの確率を右辺とイコールと置いてtを求める 𝑃 ത𝑋 − 𝜇 > 𝑡 ≤ exp −2𝑛𝑡2 log(0.05) は -3 ぐらいだから n = 150 なら t = 0.1 n = 15000 なら t = 0.01 となる。 43 https://en.wikipedia.org/wiki/Hoeffding's_inequality
  44. 44. UCB1 UCB1ではまず 𝑡 = 2 log 𝑇 𝑛 と決め打ちする。Tは 全試行数。これを右辺に代入すると 𝑃 ത𝑋 − 𝜇 > 𝑡 ≤ exp −2𝑛𝑡2 = 𝑇−4 となる。少し変形すると 𝑃 ത𝑋 − 𝑡 < 𝜇 < ത𝑋 + 𝑡 ≤ 1 − 2𝑇−4 となり、 ത𝑋 + 𝑡はT増加とともにだんだん広くなる 信頼区間の上の端ということになる。 44 https://en.wikipedia.org/wiki/Hoeffding's_inequality
  45. 45. UCB1 つまりUCB1の信頼区間は 「外れる確率が𝑇−4 になるよう決めた信頼区間」 なので、式にTが入ってくる。 じゃあなぜ𝑇−4 にしたかったのか? UCB1の最悪ケースの性能を計算する時に三重の SumがTを走る。Sum(𝑇−2 )はT→∞でも定数に収束 するのでこの項をO(1)とみなせて議論が容易だか ら。(詳細は次ページから) 45
  46. 46. UCB1の性能評価 UCB1のリグレットがO(log T)であることを示す 46
  47. 47. リグレット 「全知の神が最善の選択肢を取り続けた場合」 と比べてどれくらい差があるかで、強化学習の アルゴリズムの良さを評価する。 これをリグレット(Regret)という。 多腕バンディットの場合、神は期待値が最大のも のを選び続けるので、以下の通り: 𝑅(𝑡) = ෍ 𝑖 𝜇1 − 𝜇𝑖 𝐸[𝑁 𝑡,𝑖 ] 47 t回目までにスロットiが選ばれた回数をN(t, i)、期待値最大のスロットを1とする
  48. 48. iを選んだ回数 iを選んだ回数Nは、引数がtrueの時1になる関数𝜒 を使って以下のように書ける 𝑁 𝑇,𝑖 = 1 + ෍ 𝑡=𝐾+1 𝑇 𝜒(𝑡回目に𝑖が選ばれた) Nの期待値を知るために「𝑡回目に𝑖が選ばれた」 の起こる確率を計算したい。 48 以下字数削減のため (I 𝑡= 𝑖) ≡ 「𝑡回目に𝑖が選ばれた」とする。
  49. 49. iがm回以上選ばれた条件 確率を計算するために「iを十分な回数m回選ん だ」という条件をつけたい。 𝑁 𝑇,𝑖 = 1 + ෍ 𝑡=𝐾+1 𝑇 𝜒(𝐼𝑡 = 𝑖) ≤ 𝑚 + ෍ 𝑡=𝐾+1 𝑇 𝜒(𝐼𝑡 = 𝑖 かつ 𝑁𝑡−1,𝑖 ≥ 𝑚) mを導入したことで何がうれしいのか、 mは具体的にはいくらなのかは後述する。 49
  50. 50. iが選ばれる確率 「𝐼𝑡 = 𝑖」はUCB1のアルゴリズムでは ҧ𝑥𝑖,𝑡 + 𝑎 𝑁(𝑡,𝑖), 𝑇 > ҧ𝑥1,𝑡 + 𝑎 𝑁(𝑡,1), 𝑇 𝑤ℎ𝑒𝑟𝑒 𝑎 𝑛, 𝑇 = 2log 𝑇/𝑛 , ҧ𝑥𝑖,𝑡 = 𝑖の𝑡回目までの報酬の平均 と同じ。この確率を計算したいが、Nが未知。 そこで可能な値全部でsumする。 50
  51. 51. sumが3重になる 𝑁 𝑇,𝑖 ≤ 𝑚 + ෍ 𝑡=𝐾+1 𝑇 𝜒 𝐼𝑡 = 𝑖 かつ 𝑁𝑡−1,𝑖 ≥ 𝑚 ≤ 𝑚 + ෍ 𝑡=𝐾+1 𝑇 ෍ 𝑠=𝑚 𝑡−1 ෍ 𝑠′=1 𝑡−1 𝜒 ҧ𝑥𝑖,𝑠 + 𝑎 𝑠, 𝑡 − 1 > ҧ𝑥1,𝑠′ + 𝑎 𝑠′ , 𝑡 − 1 かつ 𝑁𝑡−1,𝑖 ≥ 𝑚 51 「ある値ペアs, s’で1」の時「すべての値ペアs, s’で和を取ったもの」は1以上なので。
  52. 52. 中身の計算の前に 3重sumの中身をこれから計算していくが、 その前にtの範囲を増やして整理しておく。 t=K…Tをt=1…∞に広げて、t-1→t する。 𝑁 𝑇,𝑖 ≤ 𝑚 + ෍ 𝑡=1 ∞ ෍ 𝑠=𝑚 𝑡−1 ෍ 𝑠′=1 𝑡−1 𝜒 ҧ𝑥𝑖,𝑠 + 𝑎 𝑠, 𝑡 > ҧ𝑥1,𝑠′ + 𝑎 𝑠′ , 𝑡 かつ 𝑁𝑡,𝑖 ≥ 𝑚 52
  53. 53. iを選ぶ確率の計算 ∗ ҧ𝑥𝑖,𝑠 + 𝑎 𝑠, 𝑡 > ҧ𝑥1,𝑠′ + 𝑎 𝑠′ , 𝑡 の起こる確率を計算する。3つの可能性がある。 1 𝜇1 ≥ ҧ𝑥1,𝑠′ + 𝑎 𝑠′ , 𝑡 2 𝜇𝑖 ≤ ҧ𝑥𝑖,𝑠 − 𝑎 𝑠, 𝑡 3 𝜇1 − 𝜇𝑖 < 2𝑎(𝑠, 𝑡) (1)(2)がFalseなら(3)がTrueになることが示せるの で(*)の起こる確率はこの3つの和以下である。 53
  54. 54. (1)(2)がFalseなら(3)がTrueになる ∗ ҧ𝑥𝑖,𝑠 + 𝑎 𝑠, 𝑡 > ҧ𝑥1,𝑠′ + 𝑎 𝑠′ , 𝑡 1 𝜇1 ≥ ҧ𝑥1,𝑠′ + 𝑎 𝑠′ , 𝑡 2 𝜇𝑖 ≤ ҧ𝑥𝑖,𝑠 − 𝑎 𝑠, 𝑡 3 𝜇1 − 𝜇𝑖 < 2𝑎(𝑠, 𝑡) (1)(2)がFalseなので(*)を使って以下が言える 𝜇1 < ҧ𝑥1,𝑠′ + 𝑎 𝑠′ , 𝑡 < ҧ𝑥𝑖,𝑠 + 𝑎 𝑠, 𝑡 ҧ𝑥𝑖,𝑠 − 𝑎 𝑠, 𝑡 < 𝜇𝑖 前提として𝜇1 ≥ 𝜇𝑖なので(3)が言える 54
  55. 55. iを選ぶ確率の計算 (*)の起こる確率はこの3つの和以下 1 𝜇1 ≥ ҧ𝑥1,𝑠′ + 𝑎 𝑠′ , 𝑡 2 𝜇𝑖 ≤ ҧ𝑥𝑖,𝑠 − 𝑎 𝑠, 𝑡 3 𝜇1 − 𝜇𝑖 < 2𝑎(𝑠, 𝑡) (1)(2)は「信頼区間の外」なので𝑇−4 となる。 (3)の計算で「かつ 𝑁𝑡,𝑖 ≥ 𝑚 」の条件を使う。 mが十分大きければ確率が0になることを示す。 (mを導入したのはこのためだ!) 55
  56. 56. 𝜇1 − 𝜇𝑖 < 2𝑎(𝑠, 𝑡)の確率を求める 再掲: 𝑎 𝑛, 𝑇 = 2log 𝑇/𝑛 もし m ≥ 8 log 𝑇 𝜇1−𝜇 𝑖 2 なら s ≥ m なので 2𝑎 𝑠 , 𝑡 = 2 2log 𝑡/𝑠 ≤ 2 2log 𝑡 8 log 𝑇 𝜇1 − 𝜇𝑖 2 = 𝜇1 − 𝜇𝑖 log 𝑡 log T ≤ 𝜇1 − 𝜇𝑖 よってmが上記条件の時、確率は0になる。 56
  57. 57. 話の流れのバックトラック (3)の確率が0であることが分かった iを選ぶ確率が2𝑇−4 以下だと分かった 3重sumの中身がわかった 3重sumを計算したらNの期待値がわかる NがわかるとUCB1のリグレットがわかる 57
  58. 58. Nの期待値を求める 𝐸[𝑁 𝑇,𝑖] ≤ 𝑚 + ෍ 𝑡=1 ∞ ෍ 𝑠=𝑚 𝑡−1 ෍ 𝑠′=1 𝑡−1 𝑃 ҧ𝑥𝑖,𝑠 + 𝑎 𝑠, 𝑡 > ҧ𝑥1,𝑠′ + 𝑎 𝑠′ , 𝑡 かつ 𝑁𝑡,𝑖 ≥ 𝑚 ≤ 𝑚 + ෍ 𝑡=1 ∞ ෍ 𝑠=𝑚 𝑡−1 ෍ 𝑠′=1 𝑡−1 2𝑡−4 ≤ 𝑚 + 2 ෍ 𝑡=1 ∞ 𝑡−2 ≤ 8 log 𝑇 𝜇1 − 𝜇𝑖 2 + 1 + 𝜋2 3 つまりO(log T)である。 58 Basel Problem ෍ 𝑛=1 ∞ 1 𝑛2 = 𝜋2 6
  59. 59. 参考文献 http://amzn.to/2josIJ1 https://jeremykun.com/2013/10/28/optimism-in- the-face-of-uncertainty-the-ucb1-algorithm/ http://www.win.tue.nl/~aboer/sdt/notes.pdf 59

×