YANS 2019 参加報告② 〜デジタル広告における商品特徴を考慮した広告文の自動生成〜
Blog
シンプルなベイズ最適化について
みなさんこんにちは! 6月からAI Labに異動してきた野村(@nmasahiro_)と申します.
先月まではSparkで集計基盤を作ったりといったデータエンジニアリング業務に従事していましたが,現在は数理最適化の研究を行っています.
今回は機械学習手法のハイパーパラメータ最適化によく利用されているベイズ最適化について勉強してみたので,自分なりの理解をまとめておこうと思います.
まだ勉強中の身ですので,もし気になる点などあればご指摘いただけると嬉しいです!
はじめに
Black-box関数最適化問題というのは,目的関数の代数的な表現,つまり,数式自体が与えられず,解に対する目的関数値のみを利用することができる問題です.
機械学習手法のハイパーパラメータ最適化などがBlack-box関数最適化問題の枠組みに属します.例としてDeep Learningのハイパーパラメータ最適化問題を考えた場合,バッチサイズ,ネットワーク構造(中間層の数,各層のユニット数,活性化関数の種類など),ドロップアウト率,最適化手法の種類,学習率などが最適化すべきハイパーパラメータに対応します.
Black-box関数最適化では解の1回の評価の計算コストが大きいことを前提としていることが特徴です.前述のDeep Learningの例を考えると,1回の評価に数時間かかることが容易に考えられると思います.よって,探索にかかる評価回数をいかに少なくできるかが重要となります.
なお,本記事では常に最小化問題を仮定します.
ベイズ最適化
ベイズ最適化(Bayesian Optimization)は有力なBlack-box関数最適化手法の1つであり,近年では機械学習手法のハイパーパラメータ最適化によく利用されています.ベイズ最適化は,Grid Search,Random Searchと比較して効率よく優れた解を求められることが報告されています[Snoek, 2015]. Googleはベイズ最適化でクッキーを作ったりしてます.楽しそう.
ベイズ最適化では評価に大きな計算コストのかかる目的関数の代わりにAcquisition functionと呼ばれる代理関数を最適化することで,次の探索点を選択します.このAcquisition functionを構築するために,Gaussian Processが使われることが多いです.ベイズ最適化には様々なvariantが存在しますが,本記事では,文献[Brochu, 2010]で説明されているシンプルなベイズ最適化のモデルを説明しようと思います.
全体のアルゴリズム
ベイズ最適化は,以下の操作を繰り返すことで探索を行います.
- Gaussian Processによって予測した平均,分散を使って計算したAcquisition functionを最適化して,次の探索点を得る
- 得られた探索点を評価し,評価値を得る
- 探索点と評価値の組を保存し,Gaussian Processを更新する
つまり,ベイズ最適化では,ある解の”良さ”をAcquisition functionを通して評価し,そのAcquisition functionをGaussian Processによって更新するという訳です.それでは,このGaussian ProcessとAcquisition functionが何者なのかを見ていきます.
Gaussian Process
Gaussian Processは関数の空間で議論をすることから,正規分布の無限次元への拡張と言われることがあります.正規分布が確率変数上の分布であり,平均ベクトルと共分散行列により一意に定められるのに対し,Gaussian Processは関数上の分布であり,平均関数と共分散関数により定められます.
直感的には,Gaussian Processは,ある
共分散行列(カーネル関数)
今,観測データ
まず,ガウス過程の性質より,
ここで,
です.
それでは,予測分布
ここで,以下の条件つき正規分布についての補題を証明なしで使います(詳細はPRML上巻のpp.82-85参照)
すると,
結果をまとめると,以下のようになります.
サンプル数2のとき,3つ目の予測値はどうなるか
上の式だけ見ても,イマイチGaussian Processが予測しようとしているものがわからなかったので,サンプル数が2,つまり
まず,
よって,
上式から,以下のように考えることができます.
f(x3) の平均であるμx3|x1:2 はf(x1),f(x2) の線形和になっている.- カーネル関数について,近いほど大きい値を取ったことを思い出すと,
x3 がx1 に近いほどf(x1) を考慮し,x3 がx2 に近いほどf(x2) を考慮しているように見える.
Acquisition function
ついにGaussian Processによって予測された評価値の平均,分散を使うときがやってきました.目的関数の代わりになるようなAcquisition functionを定義する必要があるのですが,それには以下のような性質を満たしていることが理想であると考えられます.
- 良いかもしれないけどまだ探していないところに評価を与える(探索)
- ある程度良いということがわかってるところに評価を与える(活用)
よく知られているAcquisition functionとして以下の3つがあるので,それぞれについて説明していきます.
- Probability of Improvement (PI)
- Expected Improvement (EI)
- Lower Confidence Bound (LCB)
Probability of Improvement (PI)
PIでは改善確率を指標として用います.
新たな探索点
ここで
しかし,この方法には注意点があります.それは,改善さえすればPIが良くなってしまうという点です.
つまり,無限小の改善であってもPIは良くなってしまうため,不確実だがもっといいかもしれないところより,
無限小の改善だけど改善はしそうというところに探索が集まってしまうのです.つまり,活用に振りすぎているということになります.
これを改善しようとして,trade-off parameter
最初は
Expected Improvement (EI)
PIは改善確率だけを見ていたことにより,無限小の改善だけど改善はしそうというところが評価されやすくなるという問題点が存在しました.
EIは改善確率に加えて改善量(の期待値)も見るということがPIと異なります.以下で具体的に計算をしていきます.
改善量
ここで,maxオペレータにより
すると,
よって,
となる.
よって,
ここで,
また,
ここで,上式について,
よって,
また,
まとめると,
Upper Confidence Bound (UCB)
BanditでおなじみUCBです.ここで,
おわりに
本記事ではシンプルなベイズ最適化のモデルについて説明しました.個人的に,今回取り上げたベイズ最適化において改善できそう(あるいは改善したい)と感じた部分は以下になります.
- サンプル数
n に対して時間計算量がO(n3) のため,収束性が重要な問題に対しても多数のサンプル生成が難しい. - 設定すべきパラメータが多い.例えば,カーネル関数(とそれに用いるハイパーパラメータ),Acquisition functionの最適化手法どれにするかなど,職人芸が必要な部分がある.
- Acquisition functionはnon-convexであるため,局所探索に重きを置いている手法を複数回繰り返す,あるいは,大域的探索が可能な手法を使う必要があると考えられる.
- 離散変数をうまく扱う枠組みがない.
次回は以下のようなことを行いたいと考えています.
- 上記の課題点を解決できているベイズ最適化のvariantがあるかどうか調査
- ベイズ最適化のサーベイ論文[Shahriari, 2016]読んでみる
- GPをDNNに置き換えた[Snoek, 2015]は気になる
- ハイパーパラメータに対してrobust, あるいはsensitiveな機械学習手法の洗い出し
- 他のBlack-box関数最適化手法との比較実験
読んで下さり,ありがとうございました.
引用文献
- E.Brochu, V.M.Cora, N.de Freitas : A Tutorial on Bayesian Optimization of Expensive Cost Functions, with Application to Active User Modeling and Hierarchical Reinforcement Learning,
arXiv:1012.2599 (2010). - B. Shahriari, K. Swersky, Z. Wang, R. Adams, and N. de Freitas : Taking the human out of the loop: A Review of Bayesian Optimization.
Proc. of the IEEE,(1) , 12/2015(2016) - J.Snoek, H.Larochelle, R.P.Adams : Practical Bayesian Optimization of Machine Learning Algorithms,
AdvancesinNeuralInformationProcessingSystem25 , pp.2951-2959(2012). - J.Snoek, O.Rippel, K.Swersky, R.Kiros, N.Satish, N.Sundaram, M.M.A.Patwary, Prabhat, and R.P.Adams : Scalable Bayesian optimization using Deep Neural Networks,
In Proc. of ICML′15 (2015)
Author