Ch.1 Hyperparameter Optimization|Automatic Machine Learning 読解メモ #1

f:id:lib-arts:20190215164551p:plain

機械学習の文脈においてここ最近AutoMLが注目されています。AutoMLは機械学習のモデルを自動的に作るという考え方です。

 のシリーズで自作にあたって取り組みたいと考えているのですが、上記記事で最後に言及したサイトのpdfの情報が非常に情報が豊富だったので、こちらも並行で読み解くと良いのではということで読解メモをまとめていければと思います。(大筋は外してないと思いますが、あくまで読解メモなので読み取りミスはある可能性があります。深く考えると進まなくなりそうなので8~9割くらいの確信度で書いていければと考えています。)

https://www.automl.org/book/

https://www.automl.org/wp-content/uploads/2018/12/automl_book.pdf
上記がサイトとドラフト版のpdfのリンクですが、250ページあり概要を掴むには十分な情報量だと思われるので1章単位読み進めていければと思います。全体構成はMethods、Systems、Challengesの三部構成になっており、Part1では1~3章でMethodsの話をしています。
#1ではPart1のMethodsのCh.1のHyperparameter Optimizationを読み進めていければと思います。
以下目次になります。

1. 1章の内容に関して概要
2. 詳細
2.1 Introduction(1.1)
2.2 Problem Statement(1.2)
2.3 Blackbox Hyperparameter Optimization(1.3)
2.4 Multi-Fidelity Optimization(1.4)
2.5 Applications to AutoML(1.5)
2.6 Open Problems and Future Research Directions(1.6)
3. まとめ&所感

 

1. 1章の内容に関して概要
1章ではAutoMLについて考えるにあたって、ハイパーパラメータの最適化(HPO; Hyperparameter Optimization)について色々とまとまっています。中でも1.2節ではHPOにあたっての最適化問題の定義がされているので、1章で一番把握しておきたいポイントだと思います。


2. 詳細
1章の構成としては、まず1.1で章の導入を行いAutoMLが何ができそうなのかやどういった困難に面しているかについてまとめられています。1.2ではHPOの問題の定式化を行っています。1.3では実際のハイパーパラメータの最適化(HPO)にあたってのアプローチ、1.4では計算を軽くするための様々なアプローチについてまとまっています。1.5ではHPOの歴史的なハイライトとそのAutoMLへの応用について(ML系のライブラリへの実装も含む)、1.6では将来研究への参考のためにAutoMLの課題について言及されています。


2.1 Introduction(1.1)
1.1では諸々の概要についてまとめられています。まず、「the most basic task in AutoML(AutoMLにおける最も基本的なタスク)」としてハイパーパラメータの最適化(HPO)について言及されています。1章では基本的にハイパーパラメータの最適化の話がメインだったので、一旦はAutoMLはHPOを行うことを目的とするという理解でも良いのではないかと思われました。
HPOの自動化を行うことで、下記の三点ができるという風にまとまっていました。

・人間の手間を減らすこと
アルゴリズムのパフォーマンス(精度)を向上させること
・再現性を高めること

また、HPOの自動化にあたっては以下が課題として挙がっていました。

・大きなモデルだと評価に極めてコストがかかること
・設定空間(configuration space)が複雑になりがちなこと
・大抵のケースでは最適化にあたって勾配(gradient)にアクセスできないこと
・汎化性能を直接的に最適化することはできないこと

これらが大まかな概要で、節の終わりとして1章の話の構成についてまとまっていました。(2.詳細のところにまとめたのでここでは飛ばします)


2.2 Problem Statement(1.2)
1.2ではHPOの問題を実際に取り扱うにあたっての問題の定義(立式)についてまとまっています。
具体的には式(1.1)を満たすλを求める問題として定義されています。ここでλについている*は最適解におけるλということを示唆しています。それぞれの文字の定義に関しては数式の周辺にまとまっており、λは各ハイパーパラメータの値の集合であるΛ(configuration space; ハイパーパラメータのいくつかの値を保持している空間)の要素、Vは対象のデータセットに関する誤差関数(loss function)、Dはそれぞれデータ集合を表しています。argminが使われているのはこれはλについての最適化問題を解くということを示唆しています。Eを使う理由は有限(finite)のデータにしかアクセスできないので、期待値を求める形になるとされています。
また、設定空間(configuration space)のΛはconditionalityを持つとされており、条件付きの表現や有向非循環グラフ(DAG; Directed Acyclic Graph)で表現することがあるとされています(NASの論文にもCNNのハイパーパラメータを表すにあたってDAGが出てきました)。関連してFMSやCASHなどについても言及されています。
1.2.1ではHPOの代替(alternatives)として、アンサンブル(Ensembling)と周辺化(Marginalization)の二点についてまとまっていました。具体的には前者はRandom Forestのようなアンサンブル学習、後者はベイズ推論などに出てくる考え方です。アンサンブル学習、ベイズ推論はどちらも過学習(overfitting)を防ぐ手法として利用されるため、ここで言及されるのは納得な印象でした。
1.2.2では複数の目的関数(Multiple Objective)の最適化について言及されています。Objectiveは最適化を行う対象の関数で、最適化の文脈では必ず出てくる関数なので英語表現も含めて把握しておくと良いです。複数の目的関数の取り扱いに関しては二つの方法が言及されており、一つ目が制約条件(constraint)下での最適化問題に変える方法、二つ目がパレート効率性(Pareto front)を探索する複数の目的関数を設定する方法とそれぞれ言及されています。


2.3 Blackbox Hyperparameter Optimization(1.3)
1.3ではハイパーパラメータの最適化にあたっての具体的なアプローチについてまとまっています。凸関数でない(non-convex)と言及があったのが注意が必要なようでした。
大まかには二つのアプローチが載っており、1.3.1で言及されるmodel-freeのアプローチと、1.3.2で言及されるベイズ系のアプローチの二つとされています。
1.3.1ではベーシックな考え方としてグリッドサーチとランダムサーチについてまとまっています。

f:id:lib-arts:20190215223939p:plain
上図がドキュメントでも言及されている簡単な図です。これを見ることで、それぞれの概要に加え、あるパラメータだけが極端にきいている場合はランダムサーチの方が良いことが直感的にわかります。基本的にグリッドサーチとランダムサーチではランダムサーチを使うと良さそうですが、ランダムサーチの弱点も言及されており、ランダムサーチよりパフォーマンスが良い例として遺伝的アルゴリズム(Population-based methodsの例として出されています)などが挙げられています。population-based methodsの一つの成功例として、CMA-ES(covariance matrix adaption evolutionary strategy)が挙げられており、一旦言葉だけ抑えておくと良さそうでした。
1.3.2のベイズ系のアプローチは分量が多かったので一旦飛ばしました。


2.4 Multi-Fidelity Optimization(1.4)
1.4では計算コスト削減についてまとまっていました。諸々のアプローチは人間が実際にチューニングする際に対応づけて説明されている印象でした。1.4.1では早期終了(Early Stopping)についてまとまっていました。1.4.2ではBandit-Based Algorithmの例としてsuccessive halvingとHyperbandについてまとまっていました。


2.5 Applications to AutoML(1.5)
1.5ではHPOの歴史的な変遷(historical overview)とライブラリへの実装に関してまとまっていました。一旦飛ばして必要に応じて読むで十分そうでした。


2.6 Open Problems and Future Research Directions(1.6)

2.6 Open Problems and Future Research Directions(1.6)
1.6では将来研究のためにHPOの課題についてまとまっていました。

・Benchmarks and Comparability
・Gradient-Based Optimization
・Scalability
・Overfitting and Generalization
・Arbitrary-Size Pipeline Construction

のそれぞれ5点について諸々まとまっていました。


3. まとめ&所感
ベーシックな考え方をまとめてくれていて非常に良いなと感じました。
1.2で行われている立式によって最終目的が明確になり、全体の見通しがよくなった印象でした。