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.

機械学習による統計的実験計画

ベイズ最適化を中心とした能動学習のためのモデリングやアルゴリズムの解説,適用例の紹介

  • Soyez le premier à commenter

機械学習による統計的実験計画

  1. 1. 機械学習による統計的実験計画 ベイズ最適化を中心に 松井 孝太 名古屋大学大学院医学系研究科 生物統計学分野 matsui.k@med.nagoya-u.ac.jp 2020 年 7 月 27 日
  2. 2. Table of contents 1. はじめに: 統計的実験計画の基本概念 2. ベイズ線形回帰 3. ガウス過程回帰 4. ベイズ最適化 5. 獲得関数の設計 6. レベル集合推定のための能動学習 7. 構造出力デザイン問題のための能動学習 8. 事例紹介 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 1 / 103
  3. 3. 本スライドの趣旨 • 機械学習による実験計画の基本的事項の理解を目指す • 実験計画 (または能動学習) の動機づけ • モデリングの方法と学習アルゴリズム • 実例と実装例の紹介 • 以下の文献を特に参考にしている • “Taking the Human Out of the Loop: A Review of Bayesian Optimization” [Shahriari+ (2015)] • “Gaussian Processes for Machine Learning” [Rasmussen & Williams (2006)] • “ガウス過程と機械学習” [持橋 & 大羽 (2019)] • “ベイズ推論による機械学習” [須山 (2017)] 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 2 / 103
  4. 4. はじめに: 統計的実験計画の基本概念
  5. 5. 統計的実験計画で扱う「実験」とは ある条件 x を入力し, その条件の下での実験結果 y を観測する システム x1 x2 y x1 x2 y 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 3 / 103
  6. 6. 「実験」の抽象化: ブラックボックス関数 入力条件 x と観測結果 y の間の関係を f と書くと, f は実験その もの (これをブラックボックス関数と呼ぶ) 1 ε x f(x) y = f(x) + ε 統計的実験計画 (or 能動学習) 必要なデータを収集しながらブラックボックス関数 f に関す る統計的推論を行うための方法論 1 簡単のため観測誤差 ε は分散既知の正規分布 N(0, σ2 ) に従うと仮定する 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 4 / 103
  7. 7. 能動学習のイメージ X = {xj}m j=1 {(xi, yi)}n i=1, {(xj′ , yj′ )} j′ xj′yj′ D = D 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 5 / 103
  8. 8. 能動学習の問題設定 • 候補入力 x1, ..., xn が与えられている • f を評価して出力 yi = f(xi) を得るにはコストがかかる • できるだけ少ないコストで £ 問題設定 1: 関数推定 (回帰) f を精度良く推定する f∗ = arg min ˆf∈F n i=1 (f(xi) −ˆf(xi))2 £ 問題設定 2: 最適化 f を最大化するパラメータ x を求めたい x∗ i = arg max x∈{x1,...,xn} f(x) 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 6 / 103
  9. 9. ブラックボックス関数のモデリング アイデア ブラックボックス関数 f の更新可能かつ 評価可能なモデルを 構成する £ ベイズ線形回帰モデル (第2章) • 線形関数 ˆf(x) = w⊤x で f をモデル化 • w は正規分布に従うと仮定 (w ∼ N(0, Σ)) £ ガウス過程回帰モデル (第3章) • ノンパラメトリックな関数 ˆf で f をモデル化 • ˆf はガウス過程に従うと仮定 (ˆf ∼ GP(µ(x), k(x, x′))) 更新: データを観測する度に w や ˆf の確率モデルを更新可能 評価: ˆf は関数値の計算が可能 (非ブラックボックス関数) 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 7 / 103
  10. 10. 不確実性のモデリング 能動学習の特徴: f の不確実性を同時にモデル化する • f の推定に対する確信度を定量的評価 • どれくらい自信を持って f が推定できたと言っているのか 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 8 / 103
  11. 11. 関数推定のための能動学習: 数値例 Input Output Step 0 Objective Prediction Observations Next Sample Uncertainty 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 9 / 103
  12. 12. 関数推定のための能動学習: 数値例 Input Output Step 1 Objective Prediction Observations Next Sample Uncertainty 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 9 / 103
  13. 13. 関数推定のための能動学習: 数値例 Input Output Step 2 Objective Prediction Observations Next Sample Uncertainty 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 9 / 103
  14. 14. 関数推定のための能動学習: 数値例 Input Output Step 3 Objective Prediction Observations Next Sample Uncertainty 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 9 / 103
  15. 15. 関数推定のための能動学習: 数値例 Input Output Step 4 Objective Prediction Observations Next Sample Uncertainty 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 9 / 103
  16. 16. 関数推定のための能動学習: 数値例 Input Output Step 5 Objective Prediction Observations Next Sample Uncertainty 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 9 / 103
  17. 17. 関数推定のための能動学習: 数値例 Input Output Step 6 Objective Prediction Observations Next Sample Uncertainty 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 9 / 103
  18. 18. 関数推定のための能動学習: 数値例 Input Output Step 7 Objective Prediction Observations Next Sample Uncertainty 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 9 / 103
  19. 19. 関数推定のための能動学習: 数値例 Input Output Step 8 Objective Prediction Observations Next Sample Uncertainty 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 9 / 103
  20. 20. 関数推定のための能動学習: 数値例 Input Output Step 9 Objective Prediction Observations Next Sample Uncertainty 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 9 / 103
  21. 21. 最適化のための能動学習: 数値例 Input Output Step 0 Objective Prediction Observations Next Sample Uncertainty 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 10 / 103
  22. 22. 最適化のための能動学習: 数値例 Input Output Step 1 Objective Prediction Observations Next Sample Uncertainty 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 10 / 103
  23. 23. 最適化のための能動学習: 数値例 Input Output Step 2 Objective Prediction Observations Next Sample Uncertainty 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 10 / 103
  24. 24. 最適化のための能動学習: 数値例 Input Output Step 3 Objective Prediction Observations Next Sample Uncertainty 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 10 / 103
  25. 25. 最適化のための能動学習: 数値例 Input Output Step 4 Objective Prediction Observations Next Sample Uncertainty 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 10 / 103
  26. 26. 最適化のための能動学習: 数値例 Input Output Step 5 Objective Prediction Observations Next Sample Uncertainty 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 10 / 103
  27. 27. 最適化のための能動学習: 数値例 Input Output Step 6 Objective Prediction Observations Next Sample Uncertainty 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 10 / 103
  28. 28. 最適化のための能動学習: 数値例 Input Output Step 7 Objective Prediction Observations Next Sample Uncertainty 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 10 / 103
  29. 29. ベイズ線形回帰
  30. 30. ブラックボックス関数の線形モデリング ブラックボックス関数 f をパラメータ w = (w1, ..., wd) を用いた 線形モデル f(x) = w⊤ x = d j=1 wjxj で近似することを考える. このとき, • 観測系は y = w⊤x + ε, ε ∼ N(0, σ2) • 観測の確率モデルは p(y | w, x) = N(w⊤x, σ2) ベイズ線形回帰モデルでは, w に対して事前分布 p(w) を仮定 • w の取りうる値の範囲と実現可能性の度合いを表現 • 以下では平均 0, 分散共分散行列 Σ の正規分布を考える: w ∼ p(w) = N(0, Σ) 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 11 / 103
  31. 31. ベイズ線形回帰 i • 事前分布 (平均 0 の d 変量正規分布) p(w) = N(0, Σ) = 1 √ 2π d |Σ| exp − 1 2 wT Σ−1 w • 観測 y = (y1, ..., yn) の分布 (尤度関数) p(y|X, w) = N(Xw, σ2 In) = 1 √ 2πσ2 n exp − 1 2σ2 (y − Xw)T (y − Xw) ここで, X = (x⊤ 1 , ..., x⊤ n ) は入力ベクトルを並べた行列2 2 計画行列と呼ぶ 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 12 / 103
  32. 32. ベイズ線形回帰 ii ベイズの定理 事後分布 = 尤度関数 × 事前分布 周辺尤度 • 事後分布 (データ X, y 観測後の w の条件付き分布) p(w | X, y) = p(y | X, w)p(w) p(y | X) = p(y | X, w)p(w) p(y | X, w)p(w)dw ∝ p(y | X, w)p(w) 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 13 / 103
  33. 33. ベイズ線形回帰 iii 右辺の計算 (細かい式変形は省略) p(y | X, w)p(w) ∝ exp − 1 2σ2 (y − Xw)T (y − Xw) exp − 1 2 wT Σ−1 w ∝ exp − 1 2 (w − ¯w)T A(w − ¯w) • ¯w = 1 σ2 A−1 Xy • A = 1 σ2 XXT + Σ−1 以上より, 次の事実が確認できた3 p(w | X, y) ≈ N(¯w, A−1 ) 3 正規分布を事前分布としたとき, データ X, y を観測した下での w の事後分 布は再び正規分布となる (共役事前分布) 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 14 / 103
  34. 34. ベイズ線形回帰 iii • 新たな点 xnew における関数値 f(xnew) の予測分布の計算: f(xnew) | X, y ∼ N(x⊤ new ¯w, x⊤ newA−1 xnew) • 予測分布による学習 f(x) = (1, x)⊤ w f(x) = (1, x, x2 )⊤ w f(x) = (1, x, x2 , x3 )⊤ w • モデルのとり方で表現力が変わる → モデル選択 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 15 / 103
  35. 35. ベイズ線形回帰 iV p(w) w p(w) f(x) = w x p(w | X, y) ↓ w p(w | X, y) w 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 16 / 103
  36. 36. 事後分布に基づく w の点推定 i 事後分布を使って以下のような w の点推定も可能 最大事後確率推定 (Maximum a posteriori estimation, MAP 推 定) 1.「データ X, y を観測した」という条件の下での w の事後分 布 p(w | X, y) を導出 2. p(w | X, y) が最大となる点 (すなわち p(w | X, y) の最頻 値) を w の推定値 ˆwMAP とする 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 17 / 103
  37. 37. 事後分布に基づく w の点推定 ii w の事後分布 w | X, y ∼ N(¯w, A−1 ) • MAP 推定は事後分布の最頻値を推定量とする推定方法 • 正規分布においては, 最頻値 = 平均が成立 → ˆwMAP = ¯w と書ける ただし予測の不確実性を考慮できていない (分散項を無視して しまう) 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 18 / 103
  38. 38. ガウス過程回帰
  39. 39. ノンパラメトリックモデル:より柔軟なモデリングへ ベイズ線形回帰モデルでは • f に線形モデル ˆf(x) = w⊤x を仮定 • モデル (基底関数) を上手く選べば複雑な非線形関数でもモ デル化できる • しかし, 入力 x の次元に応じて推定しなければならないパ ラメータ w の次元が指数的に増加 (次元の呪い) → パラメータを積分消去しノンパラメトリックに扱うことで 次元の呪いを回避 ノンパラメトリックモデリング パラメータによる特定の関数形を指定せず, より柔軟なモデ リングを行なう 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 19 / 103
  40. 40. ベイズ線形回帰のノンパラ化 i • 観測系の確率モデル (再掲) : y ∼ N(w⊤ x, σ2 ) • ベイズ線形回帰では, w に対して平均 0 の正規分布を事前 分布として仮定した: p(w) = N(0, Σ) • このとき, 観測値 y の分布から w を積分消去できる: p(y | X, σ) = p(y | X, w, σ2 )p(w)dw = N(Xw, σ2 I)N(0, Σ)dw = N(0, XΣX⊤ + σ2 I) 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 20 / 103
  41. 41. ベイズ線形回帰のノンパラ化 ii • 入力 xi を特徴写像 ϕ で非線形変換する:ϕi = ϕ(xi) このときの計画行列を Φ = (ϕ1, ..., ϕn) とおく =⇒ 観測の分布は Φ を用いて以下のような表現になる p(y | Φ, σ) = N(0, ΦΣΦ⊤ + σ2 I) (1) • ΦΣΦ⊤ は半正定値対称行列であり, 非線形変換した特徴の Σ による内積を表す: ϕ⊤ i Σϕj = ⟨ϕi, ϕj⟩Σ, i, j = 1, ..., n • 上式を見ると, 変換後の特徴 ϕi に関する内積さえ計算でき れば事後分布は計算可能であることに気づく. 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 21 / 103
  42. 42. ベイズ線形回帰のノンパラ化 iii • そこで, k(xi, xj) = ⟨ϕi, ϕj⟩Σ となるようなカーネル関数 k(xi, xj) を取る • 左辺が計算できれば事後分布を求めるには十分で, 変換後 の特徴 ϕi を直接計算する必要はない (カーネルトリック): p(y | Φ, σ2 ) = N(0, K + σ2 I), ここで, Ki,j = k(xi, xj) (カーネル行列) • カーネル関数は, 入力 xi, xj の間の類似度を測っている • “近い入力に対応する出力は似ている” という性質を表現 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 22 / 103
  43. 43. ガウス過程 ベイズ線形回帰のノンパラ化は, f のガウス過程によるモデリン グに対応 Definition 1 (ガウス過程の数学的な定義) 確率過程 {Xt}t∈T がガウス過程であるとは, 任意の n ∈ N と任 意の t1, ..., tn ∈ T に対して (Xt1 , ..., Xtn ) が n 次元正規分布に 従うことと定義する. • f(x) を x に関する確率変数の無限列と見なすことで確率過 程として取り扱う 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 23 / 103
  44. 44. ガウス過程の特徴づけ • ガウス過程は, 平均関数とカーネル関数 µ(x) = E[f(x)] k(x, x′ ) = E[(f(x) − µ(x))(f(x′ ) − µ(x′ )] によって特徴づけることができる (µ と k を決めるとガウ ス過程が決まる) • 関数 f がガウス過程に従うことを以下で表す: f(x) ∼ GP(µ(x), k(x, x′ )) Remark 1 ここから, 各点 x0 に対して, 関数値 f(x0) が平均 µ(x0), 分散 k(x0, x0) の正規分布に従うモデルであることがわかる 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 24 / 103
  45. 45. ガウス過程によるモデリング i 記号の用意 • 入力点: x1, ..., xn • 未知の関数値: fi = f(xi) • 観測値: yi = fi + εi, εi ∼ N(0, σ2) このとき, f(x) ∼ GP(µ(x), k(x, x′ )) ⇐⇒ f | X ∼ N(m, K), yi | fi, σ2 ∼ N(fi, σ2 ) ここで, mi = µ(xi), Ki,j = k(xi, xj). → 関数値 f = (f1, ..., fn) が n 変量正規分布であり, 観測値 yi は 平均 fi の正規分布となるモデル 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 25 / 103
  46. 46. ガウス過程によるモデリング ii 予測分布 Dn = {(xi, yi)}n i=1 を既観測点とし, x を任意のテスト点とする. このとき, 関数値 f(x) は Dn を観測したという条件の下で正規 分布に従う (予測分布): f(x) | Dn ∼ N(µn(x), σ2 n(x)) ここで, µn(x) 及び σ2 n(x) はそれぞれ予測平均と予測分散4 と呼 ばれ, µn(x) = µ(x) + k(x)⊤ (K + σ2 I)−1 (y − m) σ2 n(x) = k(x, x) − k(x)⊤ (K + σ2 I)−1 k(x) と書ける. ここで, k(x) = (k(x, x1), ..., k(x, xn)) 4 x における関数値 f(x) の, ガウス過程モデルによる予測と不確実性に対応 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 26 / 103
  47. 47. カーネル関数の選択 カーネル関数はガウス過程回帰において非常に重要な構成要素 • 目的関数に対する仮定を表現する • データ点に対して “類似度” を定義する • 近い入力の出力はやはり近いという気分を表す • テストデータ点に近い学習データ点は, 前者の予測に対し て十分に informative であることが期待される. 様々なカーネル関数が提案されているが, ここでは 1. 二乗指数カーネル (ガウスカーネル) 2. Matérn カーネル の 2 種類を紹介する. 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 27 / 103
  48. 48. 二乗指数カーネル 二乗指数カーネルは以下で定義される: kSE(x, x′ ) = θ exp − ∥x − x′∥2 2ℓ2 • θ, ℓ は超パラメータ • このカーネル関数で定義したガウス過程からのサンプルは 滑らかな関数となる 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 28 / 103
  49. 49. Matérn カーネル  i Matérn カーネルは以下で定義される: kMat´ern(x, x′ ) = 21−ν Γ(ν) √ 2νr ℓ ν Kν √ 2νr ℓ • r = (x − x′)⊤Λ(x − x′) • ν, ℓ は超パラメータで, Kν は修正ベッセル関数 • 特に ν = 3/2 及び ν = 5/2 の場合が良く用いられている 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 29 / 103
  50. 50. Matérn カーネル  ii • ν = 3/2 のとき k3/2(r) = 1 + √ 3r ℓ exp − √ 3r ℓ • ν = 5/2 のとき k5/2(r) = 1 + √ 5r ℓ + 5r2 3ℓ2 exp − √ 5r ℓ 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 30 / 103
  51. 51. カーネル関数の比較 • 2 乗指数カーネルを用いたガウス過程からのサンプル関数 は滑らか • Matérn カーネルを用いたガウス過程からのサンプル関数 は, カーネルパラメータによって滑らかさが変化 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 31 / 103
  52. 52. 事前分布の平均関数をどう取るか • 平均関数は真の関数に対する事前知識を表現 • 実応用の際には, 定数 µ(x) ≡ µ0 とすることが多い (特に µ0 = 0) • 観測データを変換して µ = 0 とみなせることが多い • 専門家による事前知識などによって平均関数 µ が適切に設 計できる場合, それを用いた方が学習が効率化できる可能 性はある 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 32 / 103
  53. 53. ガウス過程回帰の実行例 • 黒破線: 真の関数 • 青線: ガウス過程の平均関数 • 青枠: ガウス過程による不確実性 • 赤点: 観測点 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 33 / 103
  54. 54. ガウス過程回帰に基づく能動学習 (関数推定) (Recall) 関数推定問題 f∗ = arg min g∈F n i=1 (f(xi) − g(xi))2 • 真の関数 f を全域で精度良く推定したい • 自然な探索方針: 予測モデルの不確実性が大きい入力点を観測点に選ぶ → ガウス過程回帰モデルの予測分散が最大となる点で観 測を行う (不確実性サンプリング) : xnext = arg max x σ2 n(x) 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 34 / 103
  55. 55. ガウス過程回帰に基づく能動学習 (関数推定) の実行例 不確実性サンプリングによる能動学習 0 1 2 3 4 5 x −2 0 2 4 6 8 10 12 f(x) iteration 1 µ(x) f(x) µ(x) ± 1.96σ(x) next observed 0 1 2 3 4 5 x −2 0 2 4 6 8 10 12 f(x) iteration 2 µ(x) f(x) µ(x) ± 1.96σ(x) next observed 0 1 2 3 4 5 x −2 0 2 4 6 8 10 12 f(x) iteration 3 µ(x) f(x) µ(x) ± 1.96σ(x) next observed 0 1 2 3 4 5 x −2 0 2 4 6 8 10 12 f(x) iteration 4 µ(x) f(x) µ(x) ± 1.96σ(x) next observed 0 1 2 3 4 5 x −2 0 2 4 6 8 10 12 f(x) iteration 5 µ(x) f(x) µ(x) ± 1.96σ(x) next observed 0 1 2 3 4 5 x −2 0 2 4 6 8 10 12 f(x) iteration 6 µ(x) f(x) µ(x) ± 1.96σ(x) next observed • ガウス過程回帰によって推定された関数の不確実性が最も 大きい点 (図の黄色の点) が常に選ばれるような探索方針 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 35 / 103
  56. 56. 非正規観測系への拡張 i 観測 y が連続値でなくカテゴリ変数や順序変数の場合, その確 率モデルとして正規分布を仮定するのは不適切 £ 一般化線形モデル リンク関数 (非線形変換) g : Rd → R を導入し, ブラックボック ス関数のモデルとして f(x) = g−1 (w⊤ x) を考える. 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 36 / 103
  57. 57. 非正規観測系への拡張 ii Example 1 (ロジスティック回帰) 観測が 2 値 (y = 0 or 1) のとき, y = 1 となる確率 p = P(y = 1) をモデリングしたい. いま, 観測のオッズ p 1−p に対して log p 1 − p = w⊤ x なるモデルを考える (対数オッズに線形モデルを仮定). このとき, データ x を観測した下での y = 1 となる事後確率は p(y = 1 | x) = 1 1 + exp{−w⊤x} と書ける. 右辺はロジット変換 g−1 = 1/1 + e−z をリンク関数 として採用していることに相当する. 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 37 / 103
  58. 58. パラメトリックモデリング i 特に y ∈ {+1, −1} の場合 (2 値判別) を考える. • リンク関数 g : R → (0, 1) によって P(y | x, w) = g(yw⊤ x) と書けると仮定 (パラメータ w の一般化線形モデル).   • g は単調増加かつ g(x) + g(−x) = 1 を満たす (e.g. シグモイド関数, 標準正規分布の累積分布関 数) • このとき, y =    +1 w⊤x ≥ 0 ⇔ P(y | x, w) ≥ 1 2 −1 w⊤x < 0 ⇔ P(y | x, w) < 1 2 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 38 / 103
  59. 59. パラメトリックモデリング ii データ D = {(xi, yi)}n i=1 ⊂ Rd × {±1} を観測した下で, • w の事後分布: p(w | D) ∝ p(w) n i=1 g(yiw⊤ i x) • x におけるラベルの予測分布: P(y | x, D) = g(yw⊤ x)p(w | D)dw 以降, f(x) に対してノンパラメトリックな事後分布の計算や予 測分布の計算を考える 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 39 / 103
  60. 60. 事後分布の近似 i • 事後分布が厳密に計算できた回帰の場合と異なり, 判別の 場合は何らかの近似によって事後分布を求める必要がある (共役事前分布を設定できないため) • 以下ではラプラス近似による事後分布の近似方法を紹介 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 40 / 103
  61. 61. 事後分布の近似 ii • x におけるラベル y の事後確率: P(y | x, f) = g(yf(x)) • 関数値 f = (f(x1), ..., f(xn))⊤ に対する事前分布: f ∼ Nn(0, K) • ラベルの事後分布: p(y | f) = n i=1 g(yif(xi)) −−−−−−−−−−→ Bayes’ theorem p(f | D) ∝ p(f)p(y | f) p(f | D) をラプラス近似を用いて正規分布で近似する 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 41 / 103
  62. 62. 事後分布の近似 iii ラプラス近似 密度関数を極大にする点を中心とする正規分布で近似 log p(f | D) = log p(f) + log p(y | f) = − 1 2 f⊤ K−1 f + log p(y | f) + log 1 (2π)n |Σ| −∇2 log p(f | D) = K−1 − ∇2 log p(y | f) diagonal =: A より, Taylor 展開の 2 次の項に注目すると log p(f | D) ≈ log p(f0 | D) − 1 2 (f − f0)⊤ A(f − f0), f0 = arg max f log p(f | D) 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 42 / 103
  63. 63. 事後分布の近似 iv Taylor 展開による 2 次近似 log p(f | D) ≈ log p(f0 | D) − 1 2 (f − f0)⊤ A(f − f0) 以上の下で, p(f | D) ≈ N(f0, A−1 ) と近似する (ラプラス近似). 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 43 / 103
  64. 64. 予測分布の近似 i £ x における関数値 f(x) の予測分布を近似 • (f(x), f(x1), ..., f(xn)) の事前分布を以下のように設定: N(0, ˜K), ˜K = k(x, x) k(x)⊤ k(x) ¯K ここで ¯K は既に観測した点 x1, ..., xn から定まるカーネル 行列. • f(x) の予測分布は観測値 f = (f(x1), ..., f(xn)) の条件の下で f(x) ∼ N(µx, σ2 x), µx = k(x)⊤ ¯K −1¯f, σ2 x = k(x, x) − k(x)⊤ ¯K −1 k(x)⊤ . 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 44 / 103
  65. 65. 予測分布の近似 ii • データ D = {(xi, yi)}n i=1 が与えられたときの f の (近似) 事 後分布は N(f0, A−1). ここで, f0 = arg max f − 1 2 f⊤ ¯K−1 f + log p(y | f) • 結局, f(x) の予測分布は µx と σ2 x において f に関する平均 を取ったもの: µf(x) = Ef[µx] = k(x)⊤ ¯K−1 f0 σ2 f(x) = Ef[σ2 x] = k(x, x) − k(x)⊤ A−1 k(x) 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 45 / 103
  66. 66. 予測分布の近似 iii £ 観測値 y の予測分布を近似 リンク関数 g として標準正規分布の分布関数をとる • シグモイド関数を取った場合でも scaling によってほぼ同 様な結果が得られる このとき, y の予測分布は以下のように書ける: P(y | x, D) = Ef∼N(µf(x),σ2 f(x) )[g(yf)] = g   yµf(x) 1 + σ2 f(x)   . 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 46 / 103
  67. 67. ベイズ最適化
  68. 68. ベイズ最適化 次の最適化問題の解はどうすれば求まる? f は未知. 入出力のペア {(x, f(x))} のみが観測可能のとき, f の 最小値を求めよ → f に対して何らかの仮定 が必要 ベイズ最適化 f がガウス過程からのサンプルであると仮定し, • f の概形の推定 • f の最適解の探索 を同時に実行する逐次最適化手法 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 47 / 103
  69. 69. ベイズ最適化アルゴリズムの基本形 Algorithm : ベイズ最適化 入力: 目的関数 f の事前分布 P, 獲得関数 α for t = 1, 2, ... do Step1: 次の評価点 xn+1 を獲得関数の最大化問題を解いて 決定する: xn+1 = arg max x∈X α(x; Dn). Step2: xn+1 における関数値 yn+1 = f(xn+1) + ε を評価する. Step3: Dn+1 = Dn ∪ {(xn+1, yn+1)} とし, P を更新する. end for 出力 f の最適解 ˆx. 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 48 / 103
  70. 70. ベイズ最適化のビルディングブロック ベイズ最適化では主に 1. 未知の目的関数 f の事前分布 P の設定, 更新 2. 獲得関数 α の設計, 最適化 の 2 点が重要なビルディングブロックとなる 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 49 / 103
  71. 71. f の事前分布 P の設定と更新 • f の事前分布 P としてガウス過程 GP(µ(x), k(x, x′ )) を用いる • データ Dn = {(xi, yi)}n i=1 を観測したという条件の下で, 以 下のように更新できる: f(x) ∼ GP(ˆµ(x),ˆk(x, x′ )) ここで, ˆµ(x) = µ(x) + k(x)⊤ (K + σ2 I)−1 (y − m) ˆk(x, x′ ) = k(x, x′ ) − k(x)⊤ (K + σ2 I)−1 k(x′ ) 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 50 / 103
  72. 72. 獲得関数の α の設計, 最適化 • ベイズ最適化の性能は, 獲得関数 α の設計に大きく依存 • 獲得関数は, 目的関数と比べて最適化が容易であり, かつ探 索方針を反映するように設計 • 獲得関数は一般に非凸関数であり, その大域的最適解を得 ることは難しい. 以下のようなアプローチが良く採用 される • 多点スタート勾配法 • 進化計算による大域最適化 詳細は次章 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 51 / 103
  73. 73. ベイズ最適化における超パラメータ i ベイズ最適化を実行する際には, ガウス過程のカーネルパラメ ータなどの超パラメータを適切に調整する必要がある. 超パラメータの決定方法 周辺尤度 (モデルエビデンスとも呼ばれる) 最大化基準が良く 用いられる θ∗ = arg max θ p(D | θ) = p(D | f, θ)p(f)df • 事前知識の利用 • 各種勾配法 • グリッドサーチ • MCMC 法 (局所解にはまりにくい) 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 52 / 103
  74. 74. ベイズ最適化における超パラメータ ii 獲得関数最適化と同時に超パラメータを考慮する方法 θ の分布を考え, ベイズ最適化実行時の獲得関数に θ の不確実 性を取り入れる: αn(x) := Eθ|Dn [α(x; θ)] = α(x; θ)p (θ|Dn) dθ この Eθ|Dn [α(x; θ)] を MCMC などのサンプリング法で近似する サンプリングを十分行うことで θ の分布が精度良く近似でき, 信用区間も数値計算的に求めることができる 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 53 / 103
  75. 75. 獲得関数の設計
  76. 76. 獲得関数 アイデア : ガウス過程の事後モデルを逐次探索の候補点選択に利用 1. 改善度に基づく方策 • probability of improvement • expected improvement 2. 楽観的な方策 • GP-LCB (lower confidence bound) 3. 情報獲得量に基づく方策 • トンプソン抽出 • entropy search 以降では特に最小値探索 min x∈X f(x) を目的とする 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 54 / 103
  77. 77. Probability of Improvement (PI) アイデア: x が現在の最良関数値 τ = min i=1,...,n f(xi) を改善する確率を評価: αPI(x; Dn) := Pr[v < τ] = Φ τ − µn(x) σn(x) ここで • Φ : 標準正規分布の累積分布関数 • xnext = max x αPI(x; Dn) 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 55 / 103
  78. 78. Expected Improvement (EI) アイデア: 現在の最良関数値 τ に対する期待値改善度を評価. EI は, 改善度関数 I(x, v, θ) = (τ − v)1v<τ の期待値を取ったものとして定義される: αEI(x; Dn) := E[I(x, v, θ)] = (τ − µn(x))Φ τ − µn(x) σn(x) + σn(x)ϕ τ − µn(x) σn(x) • Φ, ϕ : 標準正規分布の累積分布関数と確率密度関数 • xnext = max x αEI(x; Dn) 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 56 / 103
  79. 79. EI の導出 i 改善度関数は, 以下のように書き換えられる: I(x) = max{τ − v, 0} ここで, v = µ(x) + σ(x)ε, ε ∼ N(0, 1). このとき, αEI(x) = ∞ −∞ I(x)ϕ(ε)dε = (τ−µ(x))/σ(x) −∞ (τ − µ(x) − σ(x)ε)ϕ(ε)dε = (τ − µ(x)) (τ−µ(x))/σ(x) −∞ ϕ(ε)dε − σ(x) (τ−µ(x))/σ(x) −∞ εϕ(ε)dε 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 57 / 103
  80. 80. EI の導出 ii = (τ − µ(x))Φ τ − µn(x) σn(x) + σ(x) √ 2π (τ−µ(x))/σ(x) −∞ −εe−ε2/2 dε = (τ − µ(x))Φ τ − µn(x) σn(x) + σ(x) √ 2π e−ε2/2 (τ−µ(x))σ(x) −∞ = (τ − µ(x))Φ τ − µn(x) σn(x) + σ(x) ϕ τ − µn(x) σn(x) − 0 = (τ − µ(x))Φ τ − µn(x) σn(x) + σ(x)ϕ τ − µn(x) σn(x) 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 58 / 103
  81. 81. Remarks • 実応用では, n 時点での最良点を τ = maxi=1,...,n yi とする が, PI を用いる場合には, これは過度に貪欲的に最適化を実 行してしまう可能性がある. • 一方で, EI を用いる場合には上記の設定でもリーズナブル に挙動する. 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 59 / 103
  82. 82. 楽観的な方策: GP-LCB αLCB(x; Dn) = −µn(x) + βnσn(x) • 探索と活用のトレードオフをコントロールする • 理論的な利点 (regret 上界) • xnext = max x αLCB(x; Dn) 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 60 / 103
  83. 83. ベイズ最適化の実行例: GP-LCB を利用した場合 −10 −5 0 f(x) iteration 1 µ(x) f(x) µ(x) ± 1.96σ(x) observed 0 1 2 3 4 5 x 5 10 α(x) −10 −5 0 f(x) iteration 2 µ(x) f(x) µ(x) ± 1.96σ(x) observed 0 1 2 3 4 5 x 0 10 α(x) −10 −5 0 f(x) iteration 3 µ(x) f(x) µ(x) ± 1.96σ(x) observed 0 1 2 3 4 5 x 5 10 α(x) −10 −5 0 f(x) iteration 4 µ(x) f(x) µ(x) ± 1.96σ(x) observed 0 1 2 3 4 5 x 2.5 5.0 7.5 α(x) −10 −5 0 f(x) iteration 5 µ(x) f(x) µ(x) ± 1.96σ(x) observed 0 1 2 3 4 5 x 0 5 α(x) −10 −5 0 f(x) iteration 6 µ(x) f(x) µ(x) ± 1.96σ(x) observed 0 1 2 3 4 5 x 0 5 α(x) 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 61 / 103
  84. 84. ベイズ最適化の実行例: PI を利用した場合 −10 −5 0 f(x) iteration 1 µ(x) f(x) µ(x) ± 1.96σ(x) observed 0 1 2 3 4 5 x 0.0 0.5 α(x) −10 −5 0 f(x) iteration 2 µ(x) f(x) µ(x) ± 1.96σ(x) observed 0 1 2 3 4 5 x 0 1 α(x) −10 −5 0 f(x) iteration 3 µ(x) f(x) µ(x) ± 1.96σ(x) observed 0 1 2 3 4 5 x 0 1 α(x) −10 −5 0 f(x) iteration 4 µ(x) f(x) µ(x) ± 1.96σ(x) observed 0 1 2 3 4 5 x 0 1 α(x) −10 −5 0 f(x) iteration 5 µ(x) f(x) µ(x) ± 1.96σ(x) observed 0 1 2 3 4 5 x 0 1 α(x) −10 −5 0 f(x) iteration 6 µ(x) f(x) µ(x) ± 1.96σ(x) observed 0 1 2 3 4 5 x 0.0 0.5 α(x) 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 62 / 103
  85. 85. ベイズ最適化の実行例: EI を利用した場合 −10 −5 0 f(x) iteration 1 µ(x) f(x) µ(x) ± 1.96σ(x) observed 0 1 2 3 4 5 x 0.0 0.5 α(x) −10 −5 0 f(x) iteration 2 µ(x) f(x) µ(x) ± 1.96σ(x) observed 0 1 2 3 4 5 x 0.0 0.1 α(x) −10 −5 0 f(x) iteration 3 µ(x) f(x) µ(x) ± 1.96σ(x) observed 0 1 2 3 4 5 x 0.000 0.025 α(x) −10 −5 0 f(x) iteration 4 µ(x) f(x) µ(x) ± 1.96σ(x) observed 0 1 2 3 4 5 x 0.000 0.005 α(x) −10 −5 0 f(x) iteration 5 µ(x) f(x) µ(x) ± 1.96σ(x) observed 0 1 2 3 4 5 x 0.0000 0.0005 α(x) −10 −5 0 f(x) iteration 6 µ(x) f(x) µ(x) ± 1.96σ(x) observed 0 1 2 3 4 5 x 0.0000 0.0005 α(x) 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 63 / 103
  86. 86. 情報獲得量に基づく方策:基本的なアイデア • 未知の最適解 x∗ に関する事後分布 p∗(x | Dn) を考える • 評価候補点 x が, x∗ に関してどの程度情報を持っているか を評価する 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 64 / 103
  87. 87. (Predictive) Entropy Search [Hernández-Lobato+ (NIPS’14)] アイデア Black box 関数 f の大域最大値を達成するパラメータ x∗ = arg max x∈X f(x) に関する情報が最大となるような点を次の 探索点とする Acquisition function in ES, PES これまで評価したデータ Dn の下で候補点 {x, y} と最適解 x∗ との相互情報量 (MI) を評価する: αn(x) = I({x, y}; x∗ | Dn) = H(p(x∗ | Dn)) − Ep(y|Dn,x)[H(p(x∗ | Dn ∪ {x, y}))] (ES) = H(p(y | Dn, x)) − Ep(x∗|Dn)[H(p(y | Dn, x, x∗))] (PES) • PES はオリジナルの ES に対して MI の対称性を使って等価 な変換をしたもの 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 65 / 103
  88. 88. Predictive Entropy Search i 次の評価点の決定 xn+1 = arg max x∈X αn(x) = H[p(y | Dn, x)] − Ep(x∗|Dn)[H[p(y | Dn, x, x∗)]] 第 1 項について • 予測分布 p(y | Dn, x) が正規分布のとき, 第 1 項は解析的に 書ける: H[p(y | Dn, x)] = 1 2 log(2πe(σn(x) + σ2 )) 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 66 / 103
  89. 89. Predictive Entropy Search ii 第 2 項の予測分布は以下のように近似 • f ∼ Posterior をベイズ線形回帰 fi(x) = ϕi(x)⊤θi で解析的 に近似し最適解の推定量 ˆx∗ を大量にサンプリング → 期待値の計算を ˆx∗ に関する標本平均で実現 • “最適解で条件付け” を次の 3 制約で表現 1. x∗ は局所解 i.e. ∇f(x∗) = 0 & ∇2 f(x∗) が負定値 2. f(x∗) は現在までの観測データより大きい i.e. f(x∗) ≥ f(xi), i = 1, ..., n 3. 候補点 x で, f(x) < f(x∗) • p(f(x) | Dn, 1, 2, 3) を expectation propagation (EP) で正 規近似 第 2 項の予測分布: p(f(x) | Dn, x∗) ∝ 1f1<f2 N(f | mf, Vf)df2 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 67 / 103
  90. 90. Predictive Entropy Search iii Acquisition Function (Empirical Version) αn(x) = 1 M M i=1 [0.5 log(v (i) n (x) + σ2 ) − 0.5 log(v (i) n (x | x (i) ∗ ) + σ2 )] • v (i) n (x), v (i) n (x | x (i) ∗ ) はそれぞれデータ Dn (と最適解 x∗) で の条件付きの f の予測分散, σ2 は誤差分散 • それぞれ先に導出した予測分布から計算する (正規分布の ときエントロピー ≈ 予測分散) Figure 1: [Hernández-Lobato+ NIPS’14] Figure 1 より抜粋 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 68 / 103
  91. 91. Max-Value Entropy Search (MES) [Wang+ ICML’17] i • ES, PES : 最適解 x∗ に関する情報量を測る • MES : 最適値 y∗ = f(x∗) に関する情報量を測る Acquisition function in MES これまで評価したデータ Dn の下で候補点 {x, y} と最適値 y∗ との相互情報量 (MI) を評価する: αt(x) = I({x, y}; y∗ | Dt) = H(p(y | Dt, x)) − Ep(y∗|Dn)[H(p(y | Dn, x, y∗))] ≈ 1 K y∗∈Y∗ γy∗ (x)ψ(γy∗ (x)) 2Ψ(γy∗ (x)) − log(Ψ(γy∗ (x))) • ψ, Ψ : 正規分布の密度関数 & 分布関数 • γy∗ (x) = (y∗ − µt(x))/σt(x) 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 69 / 103
  92. 92. Max-Value Entropy Search (MES) [Wang+ (ICML’17)] ii H(p(y | Dt, x)) − Ep(y∗|Dn)[H(p(y | Dn, x, y∗))] • 期待値は K 回 f の最大値をサンプリングすることで MC 推 定 • p(y | Dt, x) = N(µt(x), σt(x)) • p(y | Dt, x, y∗) = T N(µt(x), σt(x); y∗) • y < y∗ を満たすような切断正規分布 Remark : avoiding the curse of dimensionality • ES, PES : d 次元の分布に依っている • MES : 1-次元の分布に依っている → MES の方がサンプリング効率が高く計算コストが 小さい 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 70 / 103
  93. 93. レベル集合推定のための能動学習
  94. 94. レベル集合推定 i レベル集合推定 (level set estimation, LSE) の定義 ブラックボックス関数 f と入力候補点 {xi}N i=1 が与えられたと き, 関数値 f(xi) が所望のしきい値 h ∈ R よりも大きい xi ∈ Xup = {x | f(x) > h} か, 小さい xi ∈ Xlow = {x | f(x) ≤ h} かを判定する問題 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 71 / 103
  95. 95. レベル集合推定 ii Xup Xlow f(x) x 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 72 / 103
  96. 96. レベル集合の判定方法 ガウス過程回帰による予測分布 N(µn(x), σ2 n(x)) を用いて f(x) の信頼区間を考える • µn(x) − βσn(x) > h ⇒ xi ∈ Xup (左) • µn(x) + βσn(x) < h ⇒ xi ∈ Xlow (右) • µn(x) − βσn(x) ≤ h ≤ µn(x) + βσn(x) ⇒ 保留 (中央) 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 73 / 103
  97. 97. レベル集合推定のための獲得関数 Straddle 関数 αStraddle (x) = min{µn(x) + βσn(x) − h, A h − (µn(x) − βσn(x)) B } µn(x) x h = µn(x) + 1.96σn(x) − h = h − (µn(x) − 1.96σn(x)) • 予測分散が大きく, かつしきい値付近の点が選ばれやすい 獲得関数 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 74 / 103
  98. 98. レベル集合推定の実行例 • 赤帯が上位集合を表す 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 75 / 103
  99. 99. 構造出力デザイン問題のための能動 学習
  100. 100. 構造出力デザイン問題 • 構造出力デザイン ⇔ 出力が何らかの “構造” を持った系における逆問題 • 所望の構造出力を達成する入力を高速に見つけたい Example 1 (SiC 結晶成長モデリング) ある成長速度分布を達成する実験装置の内部パラメータを少 ない実験回数で発見したい 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 76 / 103
  101. 101. 問題設定 観測系 y =    y1 ... yM    =    f1(x) ... fM(x)    +    ε1 ... εM    = f(x) + ε • f = (f1, ..., fM) : X → Y : ブラックボックス関数 • ε ∼ N(0, Σε), Σε = diag(σ1, ..., σM) : 独立な観測誤差 目標 所望の出力 f0 = (f0,1, ..., f0,M) を達成する入力 x0 を見つける ∗ f1, ..., fM 間に関係 (相関, 類似度) がある場合を考える → 構造出力 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 77 / 103
  102. 102. 相関のある多出力のガウス過程モデル i マルチタスクガウス過程 [Bonilla+(NIPS07), Alvare+(2012)]       f1 f2 ... fM       =f ∼ N                  0 0 ... 0       ,       Kf1,f1 · · · Kf1,fM Kf2,f1 · · · Kf2,fM ... · · · ... KfM,f1 · · · KfM,fM       =K            • fm = (fm(x1), ..., fm(xN))⊤ : N 点の観測 x1, ..., xN に対する fm の関数値 • f はサイズ MN のベクトル (M は出力の次元, N は観測点 数) • K は MN × MN 観測誤差行列 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 78 / 103
  103. 103. 相関のある多出力のガウス過程モデル ii カーネル行列 K の各成分は, (i, j) 成分が以下で与えられるブロ ックカーネル行列 (Kfm,fm′ )i,j = Bm,m′ × k(xi, xj) • k(xi, xj) は入力に対するカーネル関数 (e.g. RBF, Matern...) • Bm,m′ は関数 fm と fm′ の類似度を表す係数 すなわち, K は入力の類似度行列 K と出力の類似度行列 B の クロネッカー積 K =    B1,1 × K . . . B1,M × K ... ... ... BM,1 × K . . . BM,M × K    = B ⊗ K 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 79 / 103
  104. 104. 相関のある多出力のガウス過程モデル iii マルチタスクガウス過程モデルにおける推論は通常のガウス過 程回帰と形式的には同じ • 尤度 p(Y | f, X, θ) = N(Y | 0, K + Σ) • 事後平均 µy∗ = K⊤ f∗ (K + Σ)−1 y • 事後共分散行列 Ky∗ = Kf∗,f∗ − Kf∗ (K + Σ)−1 K⊤ f∗ • Σ = Σε + IN : NM × NM 行列 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 80 / 103
  105. 105. 提案法の方針と目的関数 方針 • 所望の出力 f0 とガウス過程の予測 y との誤差 L(x) = E(x)⊤ E(x) = M m=1 (ym − f0,m)2 を最小化する (E(x) = (y1 − f0,1, ..., yM − f0,M)) • 最適化における出力 y の観測はできるだけ少なくする 方法 L(x) に基づく獲得関数で次の観測点を指定 £ 誤差関数 L(x) に対するベイズ最適化とも解釈できる • ただしガウス過程でモデル化されているのは L ではなく f であること に注意 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 81 / 103
  106. 106. アルゴリズム 入力: 観測データ D = {(xi, yi)}N i=1, 所望の出力 f0 初期化: x∗ = arg min xi,i=1,...,N L(xi) for t = 1, 2, ... do Step 1: 獲得関数を最大化して観測点を決定: xt+1 = arg max x∈X α(x; f0). Step 2: 出力を観測 yt+1 = f(xt+1) + ε. Step 3: データセットを更新 D ← D ∪ {xt+1, yt+1}. Step 4: カレントベストを更新 x∗ ← arg min x=x∗,xt+1 L(x) end for 出力: x∗ ∗ 赤字: 普通のベイズ最適化と異なる部分 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 82 / 103
  107. 107. 獲得関数 Probability of Improvement (PI) αPI(x) = Pr(L∗ ≥ L(x)) Expected Improvement (EI) αEI(x) = E[max{0, L∗ − L(x)}] Lower Confidence Bound (LCB) αLCB(x) = −F−1 (q; L(x)) • F : L(x) の累積分布関数 • q : 分位点 (“どれくらい探索するか” を指定) 獲得関数は二乗誤差関数 L(x) が従う分布 (̸= 正規分布)に基づ いて設計される ← 普通のベイズ最適化と異なる 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 83 / 103
  108. 108. 獲得関数の評価方法 i 二乗誤差関数 L(x) が従う分布とは? Proposition (M+) ある bm ∈ R, 1 ≤ m ≤ M が存在して, L(x) は W = M m=1 λmwm と同一の確率分布に従う. • λm : 予測共分散行列 Ky∗ の固有値 • wm : 自由度 1, 非心度 bm の非心 χ2 分布に従う確率変数 W が従う分布は一般化 χ2 分布と呼ばれる ⇒ L(x) は一般化 χ2 分布に従う確率変数になっている 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 84 / 103
  109. 109. 獲得関数の評価方法 ii • LCB, PI は一般化 χ2 分布の累積分布関数から計算される • EI は α(x) = E[max{0, L∗ − L(x)}] = L∗ 0 (L∗ − t)pGχ2 (t)dt = L∗ Gχ2 (L∗ ) − L∗ 0 tpGχ2 (t)dt = L∗ Gχ2 (L∗ ) − [tGχ2 (t)]L∗ 0 + L∗ 0 Gχ2 (t)dt = L∗ Gχ2 (L∗ ) − L∗ Gχ2 (L∗ ) + L∗ 0 Gχ2 (t)dt より一般化 χ2 分布の累積分布関数 Gχ2 の定積分となる ∗ 実装上はマルチタスクガウス過程からのサンプリングで実現 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 85 / 103
  110. 110. 事例紹介
  111. 111. 応用事例 i : 機械学習における超パラメータ調整 • 機械学習モデルには多数の超パラメータが含まれておりそ の設定は汎化性能に直結 Ex (深層学習の超パラメータ) • 層数, チャンネル数, 学習アルゴリズム, ... • 従来は検証誤差を監視しながら人力で調整 (深層学習が職 人芸と言われる所以) • 最近は超パラメータ自動最適化用のフレームワークが充実 しつつある 超パラメータ調整のための方法 : £ グリッドサーチ, ランダムサーチ (クロスバリデーション) £ 進化計算 (遺伝アルゴリズムなど) £ ベイズ最適化 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 86 / 103
  112. 112. 応用事例 i : 深層学習における超パラメータ調整 例: Optuna • Preferred Networks 社が開発した超パラメータ最適化フレ ームワーク • 過去の超パラメータによる学習の履歴に基づいて次に試行 するべき超パラメータを適応的に指定 • Tree-structured Parzen Estimator (TPE) [Bergstra+ (2011)] と呼ばれるベイズ最適化の亜種を採用 • TPE の他の手法との性能比 較 (畳み込みニューラルネ ットの超パラメータ調整タ スク) • 同じ探索回数では TPE が 最も誤差を小さくしている 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 87 / 103
  113. 113. 応用事例 ii : レベル集合推定による適応的マッピング マッピング (データ取得) • 1 点 1 点, 物性値を測定する • 狭義: 実空間での逐次測定 • 広義: 任意のパラメータ空間での逐次測定 • 測定点数 vs 精度のトレードオフ 少ないコスト (点数, 時間, 費用...) で正確な分布を得たい 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 88 / 103
  114. 114. 応用事例 ii : レベル集合推定による適応的マッピング 角 角 • 製造業では, 材料の物性が所望の品質を満たしていない低 品質領域の特定が重要 • 従来は等間隔マッピングで網羅的に物性値を測定して判断 → 無駄な測定が多く, 効率が悪い 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 89 / 103
  115. 115. 応用事例 ii : レベル集合推定による適応的マッピング レベル集合推定としての定式化 物性値にしきい値を設定し, • 測定点の物性値がしきい値以上 → 低品質領域ではない • 測定点の物性値がしきい値以下 → 低品質領域である と定義して 2 つの領域を分離する 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 90 / 103
  116. 116. 応用事例 ii : レベル集合推定による適応的マッピング [穂積 +, JSAI2019] • 2 次元入力 (測定点の座標), 1 次元出力 (物性値) 関数を GP でモデリングし LSE を適用 • 従来法 (6586 点測定) よりも少ない測定点数で低品質領域 を同定 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 91 / 103
  117. 117. 応用事例 iii : イオン電動性物質の伝導度推定 [Kanamori+ (2018)] £ 電池材料などのイオン電動性物質の伝導度を知りたい • ポテンシャルエネルギー (PE) 曲面内のイオン伝導経路を 同定できれば,その経路内の最安定点(エネルギー最小の 点)とボトルネック点(エネルギー最大の点)を知ること ができ,イオン伝導度を求めることができる • 第一原理計算などの物理シミュレーションを用いれば各点 における PE を高精度に求められる → PE 関数全体を網羅的な第一原理計算で求めようとすると膨 大な計算コスト 提案法 ガウス過程モデルとベイズ最適化の考え方を拡張し,イオン 伝導経路を特徴づける部分に対して選択的に第一原理計算を 行うアプローチ 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 92 / 103
  118. 118. 応用事例 iii : イオン電動性物質の伝導度推定 [Kanamori+ (2018)] 以下の 3 ステップの繰り返しアルゴリズムとして実現 Step 1 ガウス過程モデルから PE 関数のランダムサンプ ルを多数生成 Step 2 Step 1 の各 PE 関数に対して動的計画法で最適な イオン伝導路を同定 → 最安定点とボトルネック点のランダムサンプル を得る Step 3 Step 2 で得た最安定点とボトルネック点に基づい た獲得関数を設計し, 次に第一原理計算を適用す るべきコンフィギュレーション点を選択 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 93 / 103
  119. 119. 応用事例 iii : イオン電動性物質の伝導度推定 [Kanamori+ (2018)] • 左図: 2 次元空間のポテンシャルエネルギー (PE) 曲面をガ ウス過程でモデル化して得られた予測平均と予測分散 • 右図: ガウス過程モデルからランダムサンプリングで PE 曲面の候補を多数作成. 各候補に動的計画法を適用してイ オン伝導経路を求めることで,イオン伝導経路の予測分布 を推定し, ベイズ最適化で第一原理計算すべき点を決定 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 94 / 103
  120. 120. 応用事例 iv : SiC モデリングの出力デザイン [Matsui+ (2020)] SiC (シリコンカーバイド) 結晶成長シミュレーションデータ • 入力: 9 次元の実験パラメータ • 接着剤熱伝導率 • 黒鉛熱伝導率 • 断熱材熱伝導率 • 黒鉛電気伝導率 • 断熱材電気伝導率 • 溶液輻射率 • 溶液熱容量 • 結晶-溶液界面速度係数 • 黒鉛-溶液界面速度係数 • 出力: 10 地点の成長速度を並べた 10 次元のベクトル 目的 所望の結晶成長速度ベクトルを少ない実験回数で見つける 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 95 / 103
  121. 121. 応用事例 iv : SiC モデリングの出力デザイン [Matsui+ (2020)] 1 次元入力の場合のデモ • 黒鉛-溶液界面速度係数のみ入力とした 1 入力 10 出力の系 • 初期点は 5 点, 獲得関数には EI を使用 L(x) EI f(x) • 黒: 所望の出力 • 青: ガウス過程による予測 + 不確実性 • 赤: 実際の観測 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 96 / 103
  122. 122. 応用事例 iv : SiC モデリングの出力デザイン [Matsui+ (2020)] 9 次元入力の場合の実データ実験 データから各測定地点に対応する関数の相関を推定 0 1 2 3 4 5 6 7 8 9 0123456789 1 0.062 -0.25 -0.36 -0.41 -0.4 -0.3 0.078 0.53 0.59 0.062 1 0.94 0.88 0.83 0.8 0.75 0.5 -0.068-0.32 -0.25 0.94 1 0.99 0.97 0.94 0.87 0.51 -0.22 -0.52 -0.36 0.88 0.99 1 0.99 0.98 0.9 0.52 -0.25 -0.57 -0.41 0.83 0.97 0.99 1 0.99 0.93 0.56 -0.23 -0.57 -0.4 0.8 0.94 0.98 0.99 1 0.97 0.64 -0.14 -0.51 -0.3 0.75 0.87 0.9 0.93 0.97 1 0.81 0.095 -0.31 0.078 0.5 0.51 0.52 0.56 0.64 0.81 1 0.66 0.29 0.53 -0.068-0.22 -0.25 -0.23 -0.14 0.095 0.66 1 0.9 0.59 -0.32 -0.52 -0.57 -0.57 -0.51 -0.31 0.29 0.9 1 SiC Simulation 0.0 0.2 0.4 0.6 0.8 1.0 • データを分割し, 一方で推定 (探索には用いない) • “近い測定地点の関数値は似ている” という関係がある 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 97 / 103
  123. 123. 応用事例 iv : SiC モデリングの出力デザイン [Matsui+ (2020)] 9 次元入力の場合の実データ実験 単純リグレット min1≤i≤n L (xi) − minx∈X L(x) による比較 0 20 40 60 80 100 Number of observation 10−1 101 103 SimpleRegret SiC simulation EI EI (ind) PI PI (ind) LCB LCB (ind) MSE random 出力ベクトルの成分間の類似度 (すなわち構造) を考慮した提 案法が最も早くリグレットを減少させることができている 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 98 / 103
  124. 124. まとめ • 統計的実験計画の考え方 • ブラックボックス関数のベイズモデリング • ベイズ線形回帰 • ガウス過程回帰 • ベイズ最適化の基本概念 • ベイズ最適化の基本アルゴリズム • 獲得関数 • レベル集合推定のための能動学習 • 構造出力デザインのための能動学習 • 応用事例紹介 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 99 / 103
  125. 125. Python による実装方法例 ベイズ最適化のためのライブラリ各種 • Gaussian Processes (scikit-learn) • 機械学習の汎用ライブラリ scikit-learn 内のガウス過程回 帰用モジュール • 事後分布からのサンプリング用の関数が用意されていない など次の GPy に比べると不便な印象 • GPy • ガウス過程回帰用ライブラリ • 事前分布の設定, 事後分布 · 予測分布の計算, などが関数化 されており非常に便利 • カーネルの超パラメータ最適化なども含む • GPyOpt • GPy をベースにしたベイズ最適化用ライブラリ • ただし, 獲得関数の種類などが多くなく, 研究で使うには 不向き 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 100 / 103
  126. 126. Python による実装方法例 ベイズ最適化のためのライブラリ各種 (つづき) • GPyTorch • PyTorch ベースのガウス過程回帰用モジュール • 共分散行列の遅延評価による計算の効率化 • BoTorch • GPyTorch のベイズ最適化用ラッパー • サンプリングや勾配計算は専用の関数が提供されている • BO のアルゴリズム自体は自分で書く必要がある (研究用) • Ax • BoTorch をさらにラップしたライブラリ • 既成の獲得関数で BO を実行するだけであれば圧倒的に楽 • システムに組み込むことを念頭に開発されている (AB テス ト, ML システム...) 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 101 / 103
  127. 127. Python による実装方法例 ベイズ最適化の比較的手軽な実装方法 £ 既成の獲得関数でとりあえず BO を実行したい → GPyOpt や Ax で一括モデリング £ 自作の獲得関数を使うなどいろいろカスタマイズをしたい → GPy, GPyTorch, BoTorch などでモデリング部分は自動化しつ つ BO 部分は自分で書く • ベイズ最適化の肝は “いかにして問題に適した獲得関数を 設計するか” なので, 研究では後者がマジョリティだと思わ れる • 今回紹介する方法も後者 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 102 / 103
  128. 128. References [1] James S Bergstra, Rémi Bardenet, Yoshua Bengio, and Balázs Kégl. Algorithms for hyper-parameter optimization. In Advances in neural information processing systems, pages 2546–2554, 2011. [2] Alkis Gotovos, Nathalie Casati, Gregory Hitz, and Andreas Krause. Active learning for level set estimation. In IJCAI, pages 1344–1350, 2013. [3] Daniel Hernández-Lobato, Jose Hernandez-Lobato, Amar Shah, and Ryan Adams. Predictive entropy search for multi-objective bayesian optimization. In International Conference on Machine Learning, pages 1492–1501, 2016. [4] José Miguel Hernández-Lobato, Michael A Gelbart, Ryan P Adams, Matthew W Hoffman, and Zoubin Ghahramani. A general framework for constrained bayesian optimization using information-based search. The Journal of Machine Learning Research, 17(1):5549–5601, 2016. [5] Kenta Kanamori, Kazuaki Toyoura, Junya Honda, Kazuki Hattori, Atsuto Seko, Masayuki Karasuyama, Kazuki Shitara, Motoki Shiga, Akihide Kuwabara, and Ichiro Takeuchi. Exploring a potential energy surface by machine learning for characterizing atomic transport. Physical Review B, 97(12):125124, 2018. [6] Carl Edward Rasmussen and Christopher KI Williams. Gaussian process for machine learning. MIT press, 2006. [7] Bobak Shahriari, Kevin Swersky, Ziyu Wang, Ryan P Adams, and Nando De Freitas. Taking the human out of the loop: A review of bayesian optimization. Proceedings of the IEEE, 104(1):148–175, 2016. [8] Kazuaki Toyoura, Daisuke Hirano, Atsuto Seko, Motoki Shiga, Akihide Kuwabara, Masayuki Karasuyama, Kazuki Shitara, and Ichiro Takeuchi. Machine-learning-based selective sampling procedure for identifying the low-energy region in a potential energy surface: A case study on proton conduction in oxides. Physical Review B, 93(5):054112, 2016. [9] 須山敦志. ベイズ推論による機械学習入門. 講談社, 2017. [10] 持橋大地 大羽成征. ガウス過程と機械学習. 講談社, 2019. 松井 (名古屋大) 機械学習による統計的実験計画 2020/07/27 103 / 103

×