Keisuke UTO
July 26, 2013
論文紹介:Practical Bayesian Optimization of
Machine Learning Algorithms(NIPS2012)
1/10/2013 1@utotch
※引用した図、その他の著作権は論文の著者に帰属します
http://www.cs.toronto.edu/~jasper/publications.html
論文の背景
• 機械学習のアルゴリズムは “rarely parameter
free”
• テキトーにデフォルト値を使うのと、綿密に
Tuningするのでは、性能は雲泥の差
• しかし、Hyperparameter のチューニングは
「Black Art」
1/10/2013 2@utotch
具体例
SVM実践ガイド
1/10/2013 3@utotch
http://www.slideshare.net/sleepy_yoshi/svm-13435949 より引用
解法例:Grid Search
1/10/2013 4@utotch
http://www.slideshare.net/sleepy_yoshi/svm-13435949 より引用
Grid search で解決か?
• 1個1個の点での「学習器のTraingin・性能評価」にかかる計算は普
通大きい
• パラメータの数が増えるとさらに増大
問題点
• 各点での計算量・計算時間コストが大のとき非常に問題(評価し
なおしたら、論文投稿までに計算が終わらない)
• 形状が複雑な場合、どのような戦略で詳細化するか問題
1/10/2013 5@utotch
やりたいこと
• 機械学習の汎化性能を最大にする
Hyperparameter x をなるべく少ない評価回数
で見つける
• あるHyperparameter における学習器の性能
指標をf(x)とし、f(x)を最小とするx を見つける
しかし f(x) の正確な形は分からない…
未知の多次元入力関数の大域最小値を最小の
評価回数で求めるには、どこを探せばよいか?
1/10/2013 6@utotch
• Amazon EC2
• 論文投稿までの日数--
つまり
? )(minarg*
xx
x
f
但し
)(xf の評価は非常に時間がかかるので
なるべく少ないサンプルで高速に 大域最小解を求めたい
)(xf :機械学習の性能の悪さ
• 形状はよく分からない
• 勾配情報は不明
• 非線形・非凸
x は機械学習アルゴリズムのHyperParameter
多次元(1D~10D)
Ex: SVMのC,RBF
Kernel のγ, 正則化項
のλ, …
good
1/10/2013 7@utotch
解法のOverview
?
));(( θxfp
))};,{(|)(( θxx nn yfp
f(x)の事前分布を決める
サンプル点のf(x)を評価し、
のf(x)事後分布を決める
)}),{(,( nn ya xx
)}),{(,(maxarg nnnext ya xx
x
x 
f(x)の事後分布と、サンプル点から計
算される「候補点の良さ」の指標
※実際はMCMCして求める
1/10/2013 8@utotch
解法のOverview
(ポイント1)「関数の分布」をどのようにモデル化するか?
(ポイント2)「候補点の良さ」をどのような指標で測るか?
Hyperparamter
機械学習の性能の悪さ
Hyperparameter を変えたとのコ
スト関数(機械学習の性能の悪
さ)を何らかの手法で(後述)モデ
ル化する
?
「次の候補点の良さ」を定量化
した指標をつくり、その最大点
をサンプリングする
解法のポイント
1/10/2013 9@utotch
関数の分布と次サンプル候補のイメージ
1/10/2013 10@utotch
(1)「未知の関数」をどうやってモデル化するか?
1/10/2013 @utotch 11
「未知の関数」をどうやってモデル化するか?
?
• Cost function f(x) の形は、分からない
• サンプル点のみ分かる
f(x)の事前分布p(f(x))を何らか具体的に表現し、
サンプル点が増えるに従ってf(x)の事後分布
p(f(x);Sampled Data)を使って次の候補点の目星
を付けることができないか?
1/10/2013 12@utotch
Gaussian Process によるf(x)のイメージ
GPによるf(x)の事前分布 GPによるf(x)の事後分布
2
Rx
Rx 
Rxf )(
Rf )(x
1/10/2013 13@utotch
Gaussian Process とは何か?
1/10/2013 14@utotch
Gaussian Process とは
Gaussian Process は無限次元の多変量ガウス分布
(点,ベクトルの分布ではなく)「関数」の分布をモデ
ル化して扱うための道具として使える
※理解途中のなので若干のウソが入るかもしれません。すみません。
1/10/2013 15@utotch
Gaussian Process とは
イメージを乱暴に言います
x
)(xf
 2
111 ~ f
1f
1/10/2013 16@utotch
Gaussian Process とは
イメージを乱暴に言います
x
)(xf
 2
111 ~ f
1f
2f
 2
222 ~ f

1/10/2013 17@utotch
Gaussian Process とは
イメージを乱暴に言います
x
)(xf
1f
2f
nf
 Σμf ~

1/10/2013 18@utotch
Gaussian Process とは
• 無限次元の多変量ガウス分布
• 「関数」の分布を表す
x
)(xf
 ),()(~)( x'xxx kmGPf
GP
)(x
無限次元
),( x'xk
1/10/2013 19@utotch
無限次元の分散共分散行列
またの名を Kernel!
比較表
Gaussian Distribution Gaussian Process
点,Vector の分布 関数(無限次元のベクトル)の分布
mean
covariance
Mean function
Covariance function
= Kernel
Index=i Index=
D
R
DD
RR 
RRm D
:)(x
RRRk DD
),(:),( x'x
で分布の形が決まるで分布の形が決まる
1/10/2013 20@utotch
Gaussian Process のイメージ
• 非常に多様な形状(非線形、
非凸)の関数を表現可能
• Kernelをデザインすることで
関数の形を変えられる
GPによるf(x)の事前分布 GPによるf(x)の事後分布
• データ点の周辺は分散が小
• データ点の増加に応じて関
数の形状が詳細化していく
• どこを切ってもガウシアン
1/10/2013 21@utotch
f(x)の事前分布をGaussian Processで表現する
)(xm
),( x'xk
:Mean Function
:Covariance Function = Kernel
の2つを決めれば、Gaussian Process の形を既定できる
)(xm
),( x'xk
(詳細な形に関する事前知識はないので)
1/10/2013 22@utotch
関数の分布のモデル化
表現される関数f(x)が滑らかすぎたので
1/10/2013 23@utotch
(2)「サンプル候補点の良さ」をどうやって測るか?
1/10/2013 24@utotch
サンプル候補点の「良さ」をどう測る?
Acquisition Function
?
このへんが最小値ありそう
• 小さいf(x)の近くに最小値はあり
そう
• 分布が未知の部分には、隠され
た鉱脈があるかも
サンプル候補点の「良さ」を表す関数:
どうあるべきか?
1/10/2013 25@utotch
サンプル候補点の「良さ」をどう測る?
Acquisition Function
サンプル候補点の「良さ」を表す関数:
?
どこに最小値があると思
いますか?
?
1/10/2013 26@utotch
サンプル候補点の「良さ」をどう測る?
Acquisition Function
イメージ
1/10/2013 27@utotch
のイメージ( )EIa x
1/10/2013 28@utotch
関数の分布と次サンプル候補のイメージ
1/10/2013 29@utotch
サンプル候補点の「良さ」をどう測る?
Acquisition Function
※EI以外にも、Probability of Improvement, Upper
Confidence Bound という指標がある。本論文では実験比
較で性能の高かったEIを用いている
乱暴な説明
• 新しいサンプル点が最小値となりうる期待値
• サンプル済みの点の評価値と、不確実さを考慮した値
1/10/2013 30@utotch
全体のアルゴリズム
1/10/2013 31@utotch
モデル























D
m






2
1
0
θ
“Gaussian Process の” Hyperparameter θ
※機械学習のHyperpamameter x ではないので注意
観測ノイズの分散
GPのmean function
GP Kernel の
Covariance Amplitude
GP Kernel 内の各次元
のScale Paramter
※GP:Gaussian Process
1/10/2013 32@utotch
アルゴリズムの概要
1/10/2013 33@utotch
Bayesian Optimization
1/10/2013 34@utotch
評価:Logistic Regression(MNIST)
4
Rx
1/10/2013 35@utotch
評価:Structured SVM
• Random Grid Seach よりも速く、良い解を見つけている
• Kernel の形が違うと、性能が異なる → 問題毎に適切
なKernelがある
3
Rx
1/10/2013 36@utotch
評価:Convolutional Neural Network
• CIFAR-10 画像データベースを用いた実験
• HumanExpert よりもよい性能
9
Rx
1/10/2013 37@utotch
まとめ
要約
• 機械学習のHyperparmeter チューニングを効率良く行う手法
• 未知の多次元入力・非線形・非凸関数の最適化(f(x)の評価コスト
大)という問題
• Gaussian Process で「関数の分布」をモデル化し、EI(Expected
Improvement) という指標で次の候補点をBayes最適化
• 並列化して効率良く実行することも可能
1/10/2013 38@utotch

論文紹介:Practical bayesian optimization of machine learning algorithms(nips2012)