Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ガウス過程回帰とベイズ最適化
Search
NearMeの技術発表資料です
PRO
November 15, 2024
Science
1
170
ガウス過程回帰とベイズ最適化
NearMeの技術発表資料です
PRO
November 15, 2024
Tweet
Share
More Decks by NearMeの技術発表資料です
See All by NearMeの技術発表資料です
Rustで作る強化学習エージェント
nearme_tech
PRO
0
23
ビームサーチ
nearme_tech
PRO
0
27
WASM入門
nearme_tech
PRO
0
30
ESLintをもっと有効活用しよう
nearme_tech
PRO
0
22
リファクタリングのための第一歩
nearme_tech
PRO
0
62
確率的プログラミング入門
nearme_tech
PRO
2
110
Observability and OpenTelemetry
nearme_tech
PRO
2
43
観察研究における因果推論
nearme_tech
PRO
1
150
React
nearme_tech
PRO
2
52
Other Decks in Science
See All in Science
最適化超入門
tkm2261
14
3.4k
All-in-One Bioinformatics Platform Realized with Snowflake ~ From In Silico Drug Discovery, Disease Variant Analysis, to Single-Cell RNA-seq
ktatsuya
0
300
生成AI による論文執筆サポートの手引き(ワークショップ) / A guide to supporting dissertation writing with generative AI (workshop)
ks91
PRO
0
390
SciPyDataJapan 2025
schwalbe10
0
130
[第62回 CV勉強会@関東] Long-CLIP: Unlocking the Long-Text Capability of CLIP / kantoCV 62th ECCV 2024
lychee1223
1
830
テンソル分解を用いた教師なし学習による変数選択法のシングルセルマルチオミックスデータ解析への応用
tagtag
1
120
240510 COGNAC LabChat
kazh
0
180
多次元展開法を用いた 多値バイクラスタリング モデルの提案
kosugitti
0
230
02_西村訓弘_プログラムディレクター_人口減少を機にひらく未来社会.pdf
sip3ristex
0
120
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
130
オンプレミス環境にKubernetesを構築する
koukimiura
0
100
トラブルがあったコンペに学ぶデータ分析
tereka114
2
1.4k
Featured
See All Featured
How GitHub (no longer) Works
holman
314
140k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.2k
YesSQL, Process and Tooling at Scale
rocio
172
14k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Bootstrapping a Software Product
garrettdimon
PRO
306
110k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
630
Why Our Code Smells
bkeepers
PRO
336
57k
Gamification - CAS2011
davidbonilla
80
5.1k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.4k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.6k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Transcript
1 2024-11-15 第108回NearMe技術勉強会 Futo Ueno ガウス過程回帰とベイズ最適化
2 はじめに 参考図書:「ガウス過程と機械学習」 https://www.kspub.co.jp/book/detail/ 1529267.html
3 はじめに 図の出⼒などに使ったコード: https://colab.research.google.com/drive/1_1v2ZuANtvrgzOli6dnErZbms ASoU_rK?hl=ja#scrollTo=B4aPaxbC2Aoc
4 背景 ‧「ブラックボックス最適化⼿法」の⼀つであるベイズ最適化を タスクで使ったらかなり良かったので, 共有したい ‧ベイズ最適化のアルゴリズムではガウス過程回帰をうまく使っている ‧ガウス過程回帰⾃体もどこかに使えそう ‧ガウス過程回帰&ベイズ最適化の概要を説明する
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
6 ガウス過程とは → 直感的には「無限次元」の正規分布 (= ガウス分布) ガウス分布 → 実数が対応
7 ガウス過程とは → 直感的には「無限次元」の正規分布 (= ガウス分布) ガウス分布 多変量ガウス分布 → 実数が対応
→ 有限次元のベクトルが対応
8 ガウス過程とは → 直感的には「無限次元」の正規分布 (= ガウス分布) →「無限次元」のベクトル (= 関数)が対応 ガウス分布
多変量ガウス分布 ガウス過程 → 実数が対応 → 有限次元のベクトルが対応
9 ガウス過程とは → 直感的には「無限次元」の正規分布 (= ガウス分布) →「無限次元」のベクトル (= 関数)が対応 ガウス分布
多変量ガウス分布 ガウス過程 → 実数が対応 → 有限次元のベクトルが対応
10 ガウス過程とは → 直感的には「無限次元」の正規分布 (= ガウス分布) →「無限次元」のベクトル (= 関数)が対応 ガウス分布
多変量ガウス分布 ガウス過程 → 実数が対応 → 有限次元のベクトルが対応
11 ガウス過程とは → 直感的には「無限次元」の正規分布 (= ガウス分布) →「無限次元」のベクトル (= 関数)が対応 ガウス分布
多変量ガウス分布 ガウス過程 → 実数が対応 → 有限次元のベクトルが対応
12 切り取る 「無限次元」をどう扱うか ‧ガウス過程は”関数 version”の正規分布だった → 「関数 f がガウス過程に従う」ことをどう定義すればよいか? ‧多変量ガウス分布の⼀部を切り取ってもやはりガウス分布に従うことに注⽬
→ 任意の(いくらでも⼤きな)個数の成分をfから切り取っても多変量ガウス になるような「仕組み」があればよさそう m n - m m n - m m n - m 第1~第m成分を切り取る
13 ガウス過程の定義 定義 直感的には, ‧μ(x) → 無限次元の平均ベクトル ‧k(x, y) →
無限次元×無限次元の共分散⾏列
14 ガウス過程の定義 定義 ‧適切に前処理できるなら, 実際に回帰するときにμ(x)まで考慮しなくてもよい ‧k(x, y) はカーネル関数と呼ばれている
15 カーネル関数の与える影響 ‧カーネル関数k(x, y)は, f(x)とf(y)の相関を規定する → カーネル関数次第で, ガウス過程の実現値(= 関数)の性質が⼤きく変わる 😁
😭 異なるk(x, y)に対する実現値の⽐較
16 カーネル関数の例 ‧ガウスカーネル ‧指数カーネル ‧線形カーネル なめらか ギザギザ ← この「中間」もある
(Matérn カーネル) ← 重回帰に対応
17 カーネル関数の与える影響 (再掲) ‧カーネル関数k(x, y)は, f(x)とf(y)の相関を規定する → カーネル関数次第で, ガウス過程の実現値(= 関数)の性質が⼤きく変わる
😁 😭
18 ガウス過程回帰 ‧⼊出⼒のデータ: が与えられたとする (適切に前処理されているとする) ‧データにフィットする関数 f をexactに求めるのではなく, データ観測後の「事後的な f
の分布」を求める → ベイズ的 ↑よくわからないので とりあえずガウス過程でモデリング ⼊⼒ 出⼒ ↑データに適合するような関数が 出てくる確率が⾼くなっている(ことを期待) (未知)
19 ガウス過程回帰 ガウス過程の性質から であることはわかる → の分布もわかりそう ← ここでの出⼒について知りたいとする
20 条件付き多変量ガウス分布 定理
21 ガウス過程回帰
22 ガウス過程回帰 カーネル関数を変えると「パス(ガウス過程の実現値)の⾃由度」が変わる → 推定される「fの事後分布」も変わる γ (ハイパーパラメータ)の選び⽅にも依存す る
23 ガウス過程回帰の応⽤例① ‧時系列解析 ガウスカーネル ガウスカーネル + 線形カーネル → トレンドを考慮 カーネルの設定(
= 事前分布の設定) を通じて「主観」が反映される -- カーネル関数を組み合わせることで様々な予測が可能
24 ガウス過程回帰の応⽤例② ‧ベイズ最適化 -「ブラックボックス最適化⼿法」の⼀つ - ガウス過程回帰をうまく使うことで効率的に探索することができる ⼊⼒ 出⼒ ↑ f
の計算に時間がかかる場合, なるべく少ない評価回数で最適化したい
25 獲得関数 ‧f の計算が重いので, 代理となる関数(獲得関数)を⽤意する ‧獲得関数に求めること: - 計算が重くない (重要) -
f に近い (少なくとも既知の点とその近くで合っていてほしい) - 不確かさが反映されている(未探索の部分を過⼩評価しないでほしい) ‧ガウス過程回帰を使うと「関数 version」の信頼区間を出すことができる → 「上側100α%点を繋いだ関数」などが獲得関数として使われる -- 例えば, +2.576σ など (上側0.5%点)
26 ベイズ最適化のアルゴリズム
27 ベイズ最適化のアルゴリズム 今回は acquisition = +2.576σ としている ‧上げると反復が多くなるが局所解に陥りにくい ‧下げると反復が少なくて済むが局所解に陥りやすい
28 ベイズ最適化のアルゴリズム
29 ベイズ最適化のアルゴリズム
30 ベイズ最適化のアルゴリズム
31 ベイズ最適化のアルゴリズム
32 ベイズ最適化のアルゴリズム
33 ベイズ最適化のアルゴリズム
34 ベイズ最適化のアルゴリズム
35 ベイズ最適化のアルゴリズム
36 ベイズ最適化のアルゴリズム
37 ベイズ最適化のアルゴリズム
38 ベイズ最適化のアルゴリズム
39 ベイズ最適化のアルゴリズム 1. 初期値に対して f を評価 (重い) 2. 既知の {
(x, f(x)) } を使ってガウス過程回帰 3. ガウス過程回帰の結果から得られる獲得関数を最⼤化するx*を求める 4. x*においてfを評価 (重い) → (x*, f(x*))は既知となる 5. 2~4を繰り返して適当な停⽌条件を満たしたら終了
40 Reference ‧ 持橋⼤地, ⼤⽻成征 : 「ガウス過程と機械学習」. 講談社, 2019.
41 Thank you