Slide 1

Slide 1 text

1 2024-11-15 第108回NearMe技術勉強会 Futo Ueno ガウス過程回帰とベイズ最適化

Slide 2

Slide 2 text

2 はじめに 参考図書:「ガウス過程と機械学習」 https://www.kspub.co.jp/book/detail/ 1529267.html

Slide 3

Slide 3 text

3 はじめに 図の出⼒などに使ったコード: https://colab.research.google.com/drive/1_1v2ZuANtvrgzOli6dnErZbms ASoU_rK?hl=ja#scrollTo=B4aPaxbC2Aoc

Slide 4

Slide 4 text

4 背景 ‧「ブラックボックス最適化⼿法」の⼀つであるベイズ最適化を  タスクで使ったらかなり良かったので, 共有したい ‧ベイズ最適化のアルゴリズムではガウス過程回帰をうまく使っている ‧ガウス過程回帰⾃体もどこかに使えそう ‧ガウス過程回帰&ベイズ最適化の概要を説明する

Slide 5

Slide 5 text

5 回帰とは ⼊出⼒ペアのデータから未知の⼊出⼒関係を推測すること ex. 単回帰 cf. 過去の勉強会資料 https://speakerdeck.com/nearme_tec h/ji-jie-xue-xi-woli-lun-karazhen-jian-n iqu-rizu-ndemitajian-sono1-hui-gui-nig uan-surufu-xi https://speakerdeck.com/nearme_tec h/ji-jie-xue-xi-woli-lun-karazhen-jian-n iqu-rizu-ndemitajian-sono2-xian-xing- hua-nitiao-zhan-siyou

Slide 6

Slide 6 text

6 ガウス過程とは → 直感的には「無限次元」の正規分布 (= ガウス分布) ガウス分布 → 実数が対応

Slide 7

Slide 7 text

7 ガウス過程とは → 直感的には「無限次元」の正規分布 (= ガウス分布) ガウス分布 多変量ガウス分布 → 実数が対応 → 有限次元のベクトルが対応

Slide 8

Slide 8 text

8 ガウス過程とは → 直感的には「無限次元」の正規分布 (= ガウス分布) →「無限次元」のベクトル (= 関数)が対応 ガウス分布 多変量ガウス分布 ガウス過程 → 実数が対応 → 有限次元のベクトルが対応

Slide 9

Slide 9 text

9 ガウス過程とは → 直感的には「無限次元」の正規分布 (= ガウス分布) →「無限次元」のベクトル (= 関数)が対応 ガウス分布 多変量ガウス分布 ガウス過程 → 実数が対応 → 有限次元のベクトルが対応

Slide 10

Slide 10 text

10 ガウス過程とは → 直感的には「無限次元」の正規分布 (= ガウス分布) →「無限次元」のベクトル (= 関数)が対応 ガウス分布 多変量ガウス分布 ガウス過程 → 実数が対応 → 有限次元のベクトルが対応

Slide 11

Slide 11 text

11 ガウス過程とは → 直感的には「無限次元」の正規分布 (= ガウス分布) →「無限次元」のベクトル (= 関数)が対応 ガウス分布 多変量ガウス分布 ガウス過程 → 実数が対応 → 有限次元のベクトルが対応

Slide 12

Slide 12 text

12 切り取る 「無限次元」をどう扱うか ‧ガウス過程は”関数 version”の正規分布だった → 「関数 f がガウス過程に従う」ことをどう定義すればよいか? ‧多変量ガウス分布の⼀部を切り取ってもやはりガウス分布に従うことに注⽬ → 任意の(いくらでも⼤きな)個数の成分をfから切り取っても多変量ガウス になるような「仕組み」があればよさそう m n - m m n - m m n - m 第1~第m成分を切り取る

Slide 13

Slide 13 text

13 ガウス過程の定義 定義 直感的には, ‧μ(x) → 無限次元の平均ベクトル ‧k(x, y) → 無限次元×無限次元の共分散⾏列

Slide 14

Slide 14 text

14 ガウス過程の定義 定義 ‧適切に前処理できるなら, 実際に回帰するときにμ(x)まで考慮しなくてもよい ‧k(x, y) はカーネル関数と呼ばれている

Slide 15

Slide 15 text

15 カーネル関数の与える影響 ‧カーネル関数k(x, y)は, f(x)とf(y)の相関を規定する → カーネル関数次第で, ガウス過程の実現値(= 関数)の性質が⼤きく変わる 😁 😭 異なるk(x, y)に対する実現値の⽐較

Slide 16

Slide 16 text

16 カーネル関数の例 ‧ガウスカーネル ‧指数カーネル ‧線形カーネル なめらか ギザギザ ← この「中間」もある    (Matérn カーネル) ← 重回帰に対応

Slide 17

Slide 17 text

17 カーネル関数の与える影響 (再掲) ‧カーネル関数k(x, y)は, f(x)とf(y)の相関を規定する → カーネル関数次第で, ガウス過程の実現値(= 関数)の性質が⼤きく変わる 😁 😭

Slide 18

Slide 18 text

18 ガウス過程回帰 ‧⼊出⼒のデータ:  が与えられたとする (適切に前処理されているとする) ‧データにフィットする関数 f をexactに求めるのではなく,  データ観測後の「事後的な f の分布」を求める → ベイズ的 ↑よくわからないので  とりあえずガウス過程でモデリング ⼊⼒ 出⼒ ↑データに適合するような関数が  出てくる確率が⾼くなっている(ことを期待) (未知)

Slide 19

Slide 19 text

19 ガウス過程回帰 ガウス過程の性質から であることはわかる →             の分布もわかりそう ← ここでの出⼒について知りたいとする

Slide 20

Slide 20 text

20 条件付き多変量ガウス分布 定理

Slide 21

Slide 21 text

21 ガウス過程回帰

Slide 22

Slide 22 text

22 ガウス過程回帰 カーネル関数を変えると「パス(ガウス過程の実現値)の⾃由度」が変わる → 推定される「fの事後分布」も変わる γ (ハイパーパラメータ)の選び⽅にも依存す る

Slide 23

Slide 23 text

23 ガウス過程回帰の応⽤例① ‧時系列解析 ガウスカーネル ガウスカーネル + 線形カーネル → トレンドを考慮 カーネルの設定( = 事前分布の設定) を通じて「主観」が反映される -- カーネル関数を組み合わせることで様々な予測が可能

Slide 24

Slide 24 text

24 ガウス過程回帰の応⽤例② ‧ベイズ最適化  -「ブラックボックス最適化⼿法」の⼀つ  - ガウス過程回帰をうまく使うことで効率的に探索することができる ⼊⼒ 出⼒ ↑ f の計算に時間がかかる場合,  なるべく少ない評価回数で最適化したい

Slide 25

Slide 25 text

25 獲得関数 ‧f の計算が重いので, 代理となる関数(獲得関数)を⽤意する ‧獲得関数に求めること:  - 計算が重くない (重要)  - f に近い (少なくとも既知の点とその近くで合っていてほしい)  - 不確かさが反映されている(未探索の部分を過⼩評価しないでほしい) ‧ガウス過程回帰を使うと「関数 version」の信頼区間を出すことができる  → 「上側100α%点を繋いだ関数」などが獲得関数として使われる  -- 例えば, +2.576σ など (上側0.5%点)

Slide 26

Slide 26 text

26 ベイズ最適化のアルゴリズム

Slide 27

Slide 27 text

27 ベイズ最適化のアルゴリズム 今回は acquisition = +2.576σ としている ‧上げると反復が多くなるが局所解に陥りにくい ‧下げると反復が少なくて済むが局所解に陥りやすい

Slide 28

Slide 28 text

28 ベイズ最適化のアルゴリズム

Slide 29

Slide 29 text

29 ベイズ最適化のアルゴリズム

Slide 30

Slide 30 text

30 ベイズ最適化のアルゴリズム

Slide 31

Slide 31 text

31 ベイズ最適化のアルゴリズム

Slide 32

Slide 32 text

32 ベイズ最適化のアルゴリズム

Slide 33

Slide 33 text

33 ベイズ最適化のアルゴリズム

Slide 34

Slide 34 text

34 ベイズ最適化のアルゴリズム

Slide 35

Slide 35 text

35 ベイズ最適化のアルゴリズム

Slide 36

Slide 36 text

36 ベイズ最適化のアルゴリズム

Slide 37

Slide 37 text

37 ベイズ最適化のアルゴリズム

Slide 38

Slide 38 text

38 ベイズ最適化のアルゴリズム

Slide 39

Slide 39 text

39 ベイズ最適化のアルゴリズム 1. 初期値に対して f を評価 (重い) 2. 既知の { (x, f(x)) } を使ってガウス過程回帰 3. ガウス過程回帰の結果から得られる獲得関数を最⼤化するx*を求める 4. x*においてfを評価 (重い) → (x*, f(x*))は既知となる 5. 2~4を繰り返して適当な停⽌条件を満たしたら終了

Slide 40

Slide 40 text

40 Reference ‧ 持橋⼤地, ⼤⽻成征 : 「ガウス過程と機械学習」. 講談社, 2019.

Slide 41

Slide 41 text

41 Thank you