機械学習のためのベイズ最適化入門

308 views

Published on

db analytics showcase Sapporo 2017 発表資料
http://www.db-tech-showcase.com/dbts/analytics

Published in: Data & Analytics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
308
On SlideShare
0
From Embeds
0
Number of Embeds
32
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

機械学習のためのベイズ最適化入門

  1. 1. 機械学習のための ベイズ最適化⼊⾨ 2017/07/01 牧⼭ 幸史 db analytic showcase 2017 1
  2. 2. ⾃⼰紹介 •  ヤフー株式会社 データサイエンティスト •  SBイノベンチャー (株) AI エンジニア •  株式会社ホクソエム 代表取締役 CEO 2
  3. 3. 本⽇の内容 •  ベイズ最適化 (Bayesian Optimization) を機械学習のハイパーパラメータ探索に 利⽤ •  効率的な探索を実現 •  実⾏⽅法まで •  詳しくはこの本で → 3
  4. 4. ⽬次 1.  はじめに 2.  ハイパーパラメータ探索 3.  グリッドサーチ 4.  ベイズ最適化 5.  獲得関数 6.  ガウス過程 7.  実⾏ツール 4
  5. 5. 1. はじめに •  ベイズ最適化が注⽬を集めている •  ベイズ最適化: 形状の分からない関数(ブラックボックス関数)の 最⼤値または最⼩値を求める⼿法 •  機械学習のハイパーパラメータ探索に利⽤ •  効率的に精度の良い学習モデルを発⾒ 5
  6. 6. ベイズ最適化 •  ベイズ最適化とは – ⼤域的最適化問題 (Global Optimization) – 逐次最適化⼿法 (Sequential Optimization) •  適⽤対象 – ブラックボックス関数 (関数の形が不明) – 計算コストが⼤きい (時間、お⾦) •  要求: 少ない評価回数で最適値を求めたい 6
  7. 7. ⼤域的最適化問題 •  局所解に陥らずに最適値を求めたい 7 局所解 ⼤域解
  8. 8. 逐次最適化法 •  これまでの結果をもとに次の観測点を決 める 8 ここら辺 良さそう 良くない
  9. 9. 逐次最適化の⾃動化 •  これまでの結果を⾒て次にどこを観測し たらいいかは⼈間にはなんとなくわかる ➡︎ これを⾃動化したい •  ベイズ最適化 – ⼈間の直観的な判断を再現している 9
  10. 10. 1. まとめ •  ベイズ最適化は⾼コストなブラックボッ クス関数の最適点を効率良く求める⼿法 •  何に使いたいか? ➡︎ 機械学習のハイパーパラメータ探索 10
  11. 11. ⽬次 1.  はじめに 2.  ハイパーパラメータ探索 3.  グリッドサーチ 4.  ベイズ最適化 5.  獲得関数 6.  ガウス過程 7.  実⾏ツール 11
  12. 12. 2. ハイパーパラメータ探索 •  ほとんどの機械学習⼿法には、ハイパー パラメータが存在 •  ハイパーパラメータ: –  データの学習では決定されないパラメータ –  学習の前にあらかじめ決めておく 12
  13. 13. 例: RBF SVM •  RBF カーネルでデータを⾼次元空間へ •  マージン最⼤化 •  判別境界 13出典: 1.4. Support Vector Machines ー scikit-learn documentation
  14. 14. 例: RBF SVM •  ハイパーパラメータ 2つ •  gamma: –  1つのサポートベクタが影響を及ぼす範囲 –  ⼤きいほど影響範囲が⼩さく過学習 •  cost: –  判別境界の単純さと誤分類のトレードオフ –  ⼤きいほど誤分類が少ないが過学習 14
  15. 15. 例: RBF SVM 15出典: RBF SVM parameters — scikit-learn documentation cost: ⼤ gamma: ⼤ ベスト
  16. 16. ハイパーパラメータ探索 •  ハイパーパラメータの選び⽅によって  精度が劇的に変わる •  意味を考えて慎重に選択する必要 •  データと学習モデルに対する深い理解 •  職⼈芸 16
  17. 17. 2. まとめ •  ハイパーパラメータは学習前に決める •  決め⽅で精度が劇的に変わる •  チューニングは職⼈芸 •  もっと簡単にできないか? ➡︎ グリッドサーチ 17
  18. 18. ⽬次 1.  はじめに 2.  ハイパーパラメータ探索 3.  グリッドサーチ 4.  ベイズ最適化 5.  獲得関数 6.  ガウス過程 7.  実⾏ツール 18
  19. 19. 3. グリッドサーチ •  ハイパーパラメータの選択は職⼈芸 •  もっと簡単にやる⽅法としてグリッド サーチがある 19
  20. 20. グリッドサーチ •  探索範囲を格⼦状(グリッド)にする 20
  21. 21. グリッドサーチ •  ハイパーパラメータの格⼦を作る •  gamma = (10-5, 10-4, … , 102, 103) •  cost = (10-4, 10-3, … , 103, 104) •  それぞれの組み合わせでモデルを学習 •  例: •  cost = 10-4, gamma = 10-5 ➡︎ 正答率 •  cost = 10-4, gamma = 103 ➡︎ 正答率 21
  22. 22. グリッドサーチ •  すべての格⼦点で正答率を求める 22
  23. 23. グリッドサーチ •  すべての組み合わせに対して正答率を求 め、最も良いものを選択する ※正答率はクロスバリデーションで求めた •  シンプルでわかりやすい •  しかし、グリッドのすべての組み合わせ (今回は10 ✖ 10 = 100) に対して正答率を 計算するのは時間がかかる 23
  24. 24. 3. まとめ •  グリッドサーチはハイパーパラメータの すべての組み合わせに対して正答率を計 算し最良のものを選ぶ •  データが多い場合、1回のモデルの学習に 多⼤な時間がかかる •  効率的に探索したい ➡︎ ベイズ最適化 24
  25. 25. ⽬次 1.  はじめに 2.  ハイパーパラメータ探索 3.  グリッドサーチ 4.  ベイズ最適化 5.  獲得関数 6.  ガウス過程 7.  実⾏ツール 25
  26. 26. 4. ベイズ最適化 •  グリッドサーチは、すべての組み合わせ についてモデルを学習 ➡︎ 時間がかかる •  ベイズ最適化により効率的な探索が可能 26
  27. 27. ベイズ最適化 •  次の4点の正答率が求まっているとする 27
  28. 28. ベイズ最適化 •  次にどこを観測するか? –  右下が良さそう –  真ん中がスカスカ •  ベイズ最適化 –  正答率が良さそうなエリアを優先的に観測 –  局所解に陥らないようにスカスカのエリアも たまに観測 28
  29. 29. 観測数 = 15 •  右下を重点的に観測、スカスカエリアも観測 29
  30. 30. 観測数 = 30 •  評価値の良さそうなエリアが⼤体⾒える 30
  31. 31. 観測数 = 50 •  良さそうなエリアが埋まり、最適解が求まる 31
  32. 32. 4. まとめ •  ベイズ最適化を使って、効率的に最適解 に到達 •  100個の格⼦点に対して 50回 •  これまでの評価値に基づいて次の観測点 を⾃動的に判断 •  どうやって判断しているか? ➡︎ 獲得関数 32
  33. 33. ⽬次 1.  はじめに 2.  ハイパーパラメータ探索 3.  グリッドサーチ 4.  ベイズ最適化 5.  獲得関数 6.  ガウス過程 7.  実⾏ツール 33
  34. 34. 5. 獲得関数 •  ベイズ最適化は次の観測点を⾃動で判断 •  様々な戦略が提案されている ①  PI 戦略 ②  EI 戦略 ③  UCB 戦略 •  獲得関数は、それぞれの戦略で最⼤化さ れる関数 34
  35. 35. ① PI 戦略 •  PI 戦略 –  Probability of Improvement (改善確率) –  現在の最⼤値 ybest –  ybest を超える確率が最も⾼い点を次に観測 •  シンプルで分かりやすいが局所解に陥る ことも 35
  36. 36. ② EI 戦略 •  PI 戦略は改善確率のみを考えた •  確率が⾼くても改善量が⼩さいと⾮効率 •  EI 戦略 –  Expected Improvement (期待改善量) –  評価値とベストの差 y – ybest の期待値が最も ⾼くなる点を次に観測 •  最も⼀般的に使われている 36
  37. 37. ③ UCB 戦略 •  UCB 戦略 –  Upper Confidence Bound (上側信頼限界) –  評価値の信頼区間の上限が最も⾼い点を次に 観測 •  最適解にたどり着く理論的保証がある 37
  38. 38. 獲得関数 •  それぞれの戦略は何らかの関数を最⼤化 する点を次に観測する –  PI(x) : y が ybest を超える確率 –  EI(x) : y – ybest の期待値 –  UCB(x): y の信頼区間の上限 •  このような関数を獲得関数と呼ぶ 38
  39. 39. 5. まとめ •  ベイズ最適化では獲得関数を最⼤化する 点を次に選ぶ •  獲得関数は確率、期待値、信頼区間など を使⽤ •  どうやって計算するか? ➡︎ ガウス過程 39
  40. 40. ⽬次 1.  はじめに 2.  ハイパーパラメータ探索 3.  グリッドサーチ 4.  ベイズ最適化 5.  獲得関数 6.  ガウス過程 7.  実⾏ツール 40
  41. 41. 6. ガウス過程 •  ベイズ最適化では獲得関数を最⼤化する 点を次に観測 •  獲得関数には確率や期待値が使われる •  これらを計算するために、最適化したい 関数がガウス過程に従うと仮定する 41
  42. 42. ガウス過程 •  関数がガウス過程に従う? •  例: 形状の分からない関数 y = f(x) •  次の5点を観測 42 x y 0.1 0.08 0.4 −0.30 0.5 −0.48 0.7 0.46 0.9 0.37
  43. 43. ガウス過程 •  観測点から関数のだいたいの形を予想 43
  44. 44. ガウス過程 •  未観測点の期待値 µ と分散 σ2 を算出可能 44 σ µ
  45. 45. ガウス過程 •  未観測点の期待値 µ と分散 σ2 を算出可能 •  µ が⼤きい: 周囲の観測点が⼤きい •  σ が⼤きい: 周囲が観測されていない •  µ が⼤きい点を次の観測点に選べば、⼤き い値が期待できる •  しかし、そればかりでは局所解に陥る •  適度に σ の⼤きい点を探索する必要あり 45
  46. 46. ガウス過程 •  ガウス過程を仮定することで獲得関数が 計算可能に •  カーネル関数の選択が必要 –  Squared Exponential: –  Matern: 46
  47. 47. カーネル関数 •  観測点同⼠がどれぐらい影響し合うか •  例: Squared Exponential •  距離 d が遠いほど影響は⼩さくなる ➡︎「近い観測点は同じぐらいの値」を表現 47
  48. 48. 6. まとめ •  獲得関数を計算するためにガウス過程を 仮定する •  未評価点は近隣の評価点と近い値を取る •  どれぐらい近くの評価点が影響するかは カーネル関数で決まる 48
  49. 49. ⽬次 1.  はじめに 2.  ハイパーパラメータ探索 3.  グリッドサーチ 4.  ベイズ最適化 5.  獲得関数 6.  ガウス過程 7.  実⾏ツール 49
  50. 50. 7. 実⾏ツール •  ベイズ最適化を⾏うツールはたくさん –  SMAC –  Spearmint (Python; ⾮商⽤) –  COMBO (Python; 東京⼤学 津⽥研) –  GPyOpt (Python) –  bayesian-optimization (Python) –  rBayesianOptimization (R) 50
  51. 51. bayesian-optimization 51
  52. 52. rBayesianOptimization 52
  53. 53. 7. まとめ •  ベイズ最適化の実⾏ツールはたくさん •  特に Python ライブラリが多い •  簡単に実⾏できる –  グリッド範囲の指定 –  獲得関数の指定 –  カーネル関数の指定 •  ぜひ実⾏してみて下さい! 53
  54. 54. 本⽇のまとめ •  ベイズ最適化は⾼コストなブラックボッ クス関数の最適点を効率良く求める⼿法 •  ガウス過程を⽤いて⽬的関数を表現 •  獲得関数が最⼤となる点を次の観測点に 選ぶ •  ツールがたくさんあり簡単に実⾏できる 54
  55. 55. おまけ 55
  56. 56. ランダムサーチ •  Bergstra & Bengio (JMLR 2012) •  ⼀部の機械学習⼿法において、ハイパー パラメータ探索はランダムサーチが有効 である •  これは、機械学習の精度を左右するハイ パーパラメータは少数だからである 56
  57. 57. ランダムサーチ •  Bergstra & Bengio (JMLR 2012) 57
  58. 58. 58 SMAC:  ベイズ最適化ツール TPE:  Tree Parzen Estimator  (Bergstra+ NIPS 2011) Random:  ランダムサーチ Random_2x:  2並列ランダムサーチ Li+ (arXiv 2016) Hyperband
  59. 59. 獲得関数 MI (Contal+ 2014) •  Mutual Information (相互情報量) •  次の探索点として、獲得関数 MI(x) = µ(x) + K Φt(x) が最も⼤きい点 x を選ぶ •  γt^ は f(xt) を観測したときに得られる 相互情報量の下限を表す 59
  60. 60. 相互情報量 •  ガウス過程の相互情報量(f と観測値): •  γT を相互情報量の最⼤値と定義する 60 (Srinivas+2012)
  61. 61. GP-MI の獲得関数 •  相互情報量は最低限これだけ増加する •  情報量の増加が⼤きい点を次に選ぶ戦略 61 これまでの 情報量の下限 もし点 x を観測したら 得られる情報量の下限
  62. 62. テスト関数 62 (図1) 混合ガウス分布 (図2) Himmelblau
  63. 63. 63
  64. 64. アルゴリズムの評価 •  アルゴリズムの評価に Regret (後悔) を使 う。 •  Regret とは、探索点における f(xt) と最適 値 f(x★) の差 •  累積 Regret が⼩さいと良いアルゴリズム 64
  65. 65. Regret (後悔) 65 求めたいのは ココ! この点を観測した ときの後悔の⼤きさ
  66. 66. Regret 上限 「UCBは最適値へ収束する理論的保証あり」 正確には •  累積 Regret RT が Regret 上限 G(T)√α 以下になる確率が⼤きい Pr[RT ≦ G(T)√α] ≧ 1 – δ α = log(2/δ) •  δ を⼩さくすると上限が緩くなる 66
  67. 67. おしまい 67

×