54
東京大学 JSTさきがけ(兼任) 佐藤一誠 ステアラボ2015.10.31 ベイズ的最適化 (Bayesian Optimization) -入門とその応用- 1

ベイズ的最適化(Bayesian Optimization)の入門とその応用

Embed Size (px)

Citation preview

Page 1: ベイズ的最適化(Bayesian Optimization)の入門とその応用

東京大学

JSTさきがけ(兼任)

佐藤一誠

ステアラボ2015.10.31

ベイズ的最適化(Bayesian Optimization)

-入門とその応用-

1

Page 2: ベイズ的最適化(Bayesian Optimization)の入門とその応用

• ベイズ的最適化

• 適用例

• 細かい話

目次

2

Page 3: ベイズ的最適化(Bayesian Optimization)の入門とその応用

次はどの点を探す?

0

3

Page 4: ベイズ的最適化(Bayesian Optimization)の入門とその応用

問題

目的: 3つの薬品{A,B,C}の投入の順番による効果を分析したい

一週間後

A B C

• 全ての実験設定を試すには3!=6週必要

• 少ない実験回数で効果を分析するためには、どの順番で実験すればよいか?

4

Page 5: ベイズ的最適化(Bayesian Optimization)の入門とその応用

実験の順番 1 2 3

1週目 薬A 薬B 薬C

2週目 薬C 薬A 薬B

3週目 薬B 薬C 薬A

Latin square: 各行列に現れるシンボルの種類は1つ

A B C

C A B

B C A

Latin squareによる実験計画

3週あれば、各々の順番で各薬品が必ず1度現れる→統計解析との組合せで実験回数が減らせるかも?5

Page 6: ベイズ的最適化(Bayesian Optimization)の入門とその応用

実験の順番 1 2 3

1週目 薬A 薬B 薬C

2週目 薬C 薬A 薬B

3週目 薬B 薬C 薬A

Latin square: 各行列に現れるシンボルの種類は1つ

A B C

C A B

B C A

Latin squareによる実験計画

3週あれば、各々の順番で各薬品が必ず1度現れる→統計解析との組合せで実験回数が減らせるかも?

連続値を扱いたい場合は?

6

Page 7: ベイズ的最適化(Bayesian Optimization)の入門とその応用

0

1

4

3

2

1

4

1

14

3

2

1

4

1

),( 10 yx

),( 21 yx

),( 32 yx

),( 03 yx

Latin Hypercube Sampling[McKay+1979]

-Latin squareに基づく偏りを軽減したサンプリング手法-

7

Page 8: ベイズ的最適化(Bayesian Optimization)の入門とその応用

3

2

1

0

0 1 2 3XY

0

1

4

3

2

1

4

1

14

3

2

1

4

1

4,

4

1~

iiUyi

4,

4

1~

iiUxi

}3,2,1,0{i

),( 10 yx

),( 21 yx

),( 32 yx

),( 03 yx

Latin Hypercube Sampling[McKay+1979]

-Latin squareに基づく偏りを軽減したサンプリング手法-

D次元でN点サンプリングしたい⇒ {0,1,…,N-1}の順列をD個生成する

⇒ ⇒

※N=4,D=2のとき

8

Page 9: ベイズ的最適化(Bayesian Optimization)の入門とその応用

3

2

1

0

0 1 2 3XY

0

1

4

3

2

1

4

1

14

3

2

1

4

1

4,

4

1~

iiUyi

4,

4

1~

iiUxi

}3,2,1,0{i

),( 10 yx

),( 21 yx

),( 32 yx

),( 03 yx

Latin Hypercube Sampling[McKay+1979]

-Latin squareに基づく偏りを軽減したサンプリング手法-

D次元でN点サンプリングしたい⇒ {0,1,…,N-1}の順列をD個生成する

⇒ ⇒

※N=4,D=2のとき

予め固定された実験計画ではなくこれまでに観測してきた実験結果から次の実験設定を決めたほうが効率がよいのではないか?

↓𝑝 𝑦 𝑥, {𝑥𝑖 , 𝑦𝑖} が計算できればよい?

9

Page 10: ベイズ的最適化(Bayesian Optimization)の入門とその応用

• 実験計画

• ベイズ的最適化

• 適用例

• 細かい話

目次

10

Page 11: ベイズ的最適化(Bayesian Optimization)の入門とその応用

問題設定

事前に設定しておくパラメータ(実験設定)

),,,( 21 Dxxxx y

なんらかの評価値を算出

次にどの設定で実験すればよいのか?

この関係を知りたい

11

Page 12: ベイズ的最適化(Bayesian Optimization)の入門とその応用

問題設定

事前に設定しておくパラメータ(実験設定)

なんらかの評価値を算出

12

y=f(x)x y

Page 13: ベイズ的最適化(Bayesian Optimization)の入門とその応用

13

ベイズ的最適化Bayesian Optimization (BO)

Black-box関数の最適化(多峰性・評価が高コスト)→関数がわからないなら

事前分布を仮定して、関数の事後分布を基に最適化しよう

y=f(x)x y

[Kusher 1964, Mockus, 1978]

Page 14: ベイズ的最適化(Bayesian Optimization)の入門とその応用

14

y=f(x)x y

• Bayesian Nonparametricsに基づく関数f(x)のモデリングe.g., f(x)の事前分布としてGaussian process (GP)を仮定

• 評価点 から事後分布を計算)}(,{ ii xfx

ベイズ的最適化Bayesian Optimization (BO)

[Kusher 1964, Mockus, 1978]

Page 15: ベイズ的最適化(Bayesian Optimization)の入門とその応用

15

),(),(),(

),(),(),(

),(),(),(

,

)(

)(

)(

~

)(

)(

)(

332313

322212

312111

3

2

1

3

2

1

xxKxxKxxK

xxKxxKxxK

xxKxxKxxK

xm

xm

xm

N

xf

xf

xf

)( 1xf

)( 2xf )( 3xf

ガウス過程:

ガウス過程に従う関数fのn点はn次元ガウス分布に従う

Page 16: ベイズ的最適化(Bayesian Optimization)の入門とその応用

16

ガウス過程:

Page 17: ベイズ的最適化(Bayesian Optimization)の入門とその応用

17

ガウス過程のベイズ予測分布

生成過程

ベイズ予測分布

Page 18: ベイズ的最適化(Bayesian Optimization)の入門とその応用

18

観測情報なし

x

)(xf

Page 19: ベイズ的最適化(Bayesian Optimization)の入門とその応用

19

観測

Observations

x

)(xf

Page 20: ベイズ的最適化(Bayesian Optimization)の入門とその応用

20

関数の可能性

x

)(xf

Observations

Page 21: ベイズ的最適化(Bayesian Optimization)の入門とその応用

21From [Brochu+,2010]

事後分布

ガウス過程を事前分布に用いると扱いやすい事後分布が求まる

Page 22: ベイズ的最適化(Bayesian Optimization)の入門とその応用

22From [Brochu+,2010]

事後分布

ガウス過程を事前分布に用いると扱いやすい事後分布が求まる事後分布の情報を利用してブラックボックス関数の最適化はできないか?

↓ベイズ的最適化

Page 23: ベイズ的最適化(Bayesian Optimization)の入門とその応用

探索と活用の戦略

-機械学習の重要テーマの1つ-

x

)(xf

Better この辺りに高い値がありそう? (活用)

もしかするとこの辺りに高い値があるかも? (探索)

Page 24: ベイズ的最適化(Bayesian Optimization)の入門とその応用

24

獲得関数の導入

)(max* xfyx

目的

)(.max1 xax tx

t

アルゴリズム

探索と活用のトレードオフ

候補点xを生成

Page 25: ベイズ的最適化(Bayesian Optimization)の入門とその応用

25

Confidence bound [Srinivas+,2010]

)(max* xfyx

目的

)(.max1 xax tx

t

アルゴリズム

From [Brochu+,2010]

)()()( xxxa ttt

探索活用

トレードオフRegretの解析から理論値は求まるが実用的には大きすぎる

Page 26: ベイズ的最適化(Bayesian Optimization)の入門とその応用

26

Page 27: ベイズ的最適化(Bayesian Optimization)の入門とその応用

27

Page 28: ベイズ的最適化(Bayesian Optimization)の入門とその応用

28

Page 29: ベイズ的最適化(Bayesian Optimization)の入門とその応用

29

Page 30: ベイズ的最適化(Bayesian Optimization)の入門とその応用

30

Page 31: ベイズ的最適化(Bayesian Optimization)の入門とその応用

31

Page 32: ベイズ的最適化(Bayesian Optimization)の入門とその応用

32

Page 33: ベイズ的最適化(Bayesian Optimization)の入門とその応用

33

Page 34: ベイズ的最適化(Bayesian Optimization)の入門とその応用

34

Page 35: ベイズ的最適化(Bayesian Optimization)の入門とその応用

35

Page 36: ベイズ的最適化(Bayesian Optimization)の入門とその応用

36

Expected improvement [Mockus,1978]

)(max* xfyx

目的

)(.max1 xaxx

t

アルゴリズム

dfyxfGPyxfxa t

iiibestt )},{|())(,0max()( 1

1

探索と活用のトレードオフ

解析的に求まる

• f(x)が期待的に高いxほどa(x)は大きくなる• f(x)の分散が大きいxほどa(x)は大きくなる• トレードオフパラメータはない

探索

活用

Page 37: ベイズ的最適化(Bayesian Optimization)の入門とその応用

37

Mutual Information [Contal+2014]

)(max* xfyx

目的

)(.max1 xax tx

t

アルゴリズム

1

1

21

1

22 )()()()()(t

i

ii

t

i

iittt xxxxxa

探索と活用のトレードオフ

GP-UCB 最大MIの下限

)(MImax)( TT|:|1

2

TXX

t

i

ii XCxTT

トレードオフ κ

Regretの解析から理論値が求まり実用的にもよい

Page 38: ベイズ的最適化(Bayesian Optimization)の入門とその応用

• ベイズ的最適化

• 適用例

• 細かい話

目次

38

Page 39: ベイズ的最適化(Bayesian Optimization)の入門とその応用

Himmelblau をBOで解くEI: Expected Improvement [Mockus,1978]

UCB: Upper Confidence Bound [Srinivas+,2010]

MI: Mutual Information[Contal+2014]

From [Contal+2014]Better 39

Page 40: ベイズ的最適化(Bayesian Optimization)の入門とその応用

Gaussian mixture をBOで解くEI: Expected Improvement [Mockus,1978]

UCB: Upper Confidence Bound [Srinivas+,2010]

MI: Mutual Information[Contal+2014]

From [Contal+2014]Better 40

Page 41: ベイズ的最適化(Bayesian Optimization)の入門とその応用

Analogical Reasoning Task

Germany : Berlin :: France : X

word2vec(skip-gram model)ハイパーパラメータ:

– ベクトルの次元

– 文脈の幅 (デフォルト:5)

– Negative sampling数

– Negative sampling分布のパラメータ (デフォルト:0.75)

– 学習率 (デフォルト:0.25)

word2vec を BOでチューニング

41

Page 42: ベイズ的最適化(Bayesian Optimization)の入門とその応用

word2vec を BOでチューニング

※学習データはenWik9

Better

42

Page 43: ベイズ的最適化(Bayesian Optimization)の入門とその応用

BO結果可視化ツールデモ

43

Page 44: ベイズ的最適化(Bayesian Optimization)の入門とその応用

Online LDAをBOでチューニング

※学習データはPubmed1M

Sato+KDD’15

SCVB0 [Foulds+13]

SVB+BO

SCVB0+BO

BOによるチューニングなくても良い性能

44

学習率、事前分布のパラメータなどなどを最適化

Page 45: ベイズ的最適化(Bayesian Optimization)の入門とその応用

複数行列分解をBOでチューニング

コスト関数付き複数行列分解のハイパーパラメータを最適化

45

リクナビ2015のエントリー予測(with Recruit IEEE BigData2016 (to appear))

Page 46: ベイズ的最適化(Bayesian Optimization)の入門とその応用

複数行列分解をBOでチューニング

リクナビ2015のエントリー予測(with Recruit IEEE BigData2016 (to appear))

[Hu+2008]+BO[Fang+2011]+BO

提案手法46

Page 47: ベイズ的最適化(Bayesian Optimization)の入門とその応用

47

Snoek+, NIPS2012: Practical Bayesian Optimization of Machine Learning Algorithms

Random Grid Search

エポック数, 学習率, 正規化のパラメータなどを最適化

DNNをBOでチューニング

※学習データはCIFER-10

Page 48: ベイズ的最適化(Bayesian Optimization)の入門とその応用

• ベイズ的最適化

• 適用例

• 細かい話

目次

48

Page 49: ベイズ的最適化(Bayesian Optimization)の入門とその応用

• ARD squared exponential (SE) Kernel

• Matern kernel [Matern 1960]

49

よく使われるカーネル

2exp);',( 0

zxxK

zvBessv

zvxxK v

v

2)(

)(2);',(

d d

dd xxz

2)'(

ガンマ関数 修正ベッセル関数

νにより滑らかさをコントロールν=3/2,5/2がよく用いられる

Page 50: ベイズ的最適化(Bayesian Optimization)の入門とその応用

Sample from GP with SE Sample from GP with Matern5/2

よく使われるカーネル

SE kernelはMatern5/2に比べて滑らかBOでは、Black-box関数は滑らかではないという性質を仮定する事が多く、Maternのほうがよく用いられる 50

Page 51: ベイズ的最適化(Bayesian Optimization)の入門とその応用

• 経験ベイズ法

• MCMC [Snoek+ 2012](BOではこちらを使うほうがよい)

51

カーネルパラメータθの扱い

S

s

s

xt xa

Sx

1

)(

1 )|(1

max

獲得関数は、カーネル(θ)に依存

dffGPfypyp nn )|()|()|(max* :1:1

)|(~ :1

)(

n

s yp

)|(max1 xaxXx

t

解析的に求まる

)( ii xfy

by slice sampling

[Murray and Adams 2010]

Page 52: ベイズ的最適化(Bayesian Optimization)の入門とその応用

Latin Hypercube Sampling [McKay+, 1979]が使える

(その他、ソボル列 [Bratley and Fox, 1988]など) 52

獲得関数の最適化

獲得関数は多峰

)|(max1 xax tXx

t

)|(max},...,,{

1 )L()2()1(xax t

xxxxt

(特に、ハイパーパラメータチューニングの場合)

f(x)の評価は高コストだけど、a(x)の評価はそれほどでもない

⇒Grid searchまたは大量にサンプリングして調べれば良い?

Page 53: ベイズ的最適化(Bayesian Optimization)の入門とその応用

53

探索空間の正規化

Hypercube上に限定

• xの次元毎に適切な正規化が必要

• 例えば(ハイパーパラメータの場合)、

• Learning rate = 0.1, 0.01, 0.001….

• Dimension = 100, 200, 300....

)log/(loglog minmax xxx

)/( minmax xxx

)|(max1 xaxXx

t

Page 54: ベイズ的最適化(Bayesian Optimization)の入門とその応用

• マルチタスクBO [Snoek+,NIPS2013]

–マルチタスクGP[Bonilla+,NIPS2008]を用いて複数のタスク(データセット)でハイパーパラメータを同時に探索

• 正規化の学習 [Snoek+,ICML2014]

– Warped GP[Snelson+,NIPS2004]を用いてハイパーキューブ上への正規化関数を学習

• 制約付きBO [Gardner+ ICML2014, Gelbart+ UAI2014]

– xにコスト関数及び制約:

• 高次元BO [Wang+ IJCAI2013]

– Random projectionによるxの埋め込み54

BO 最近の話題

)( 1txc