はじめに
元論文: Auto-WEKA: Combined Selection and Hyperparameter Optimization of Classification Algorithms
著者: Chris Thornton, Frank Hutter, Holger H. Hoos, Kevin Leyton-Brown
ちょっと古い論文です.(2013)
従来,アルゴリズムの選択とハイパーパラメータの設定は個別に行われてきましたが,これらを同時に自動で最適化する手法です.
既存手法の問題点
従来の機械学習アルゴリズムの選択やハイパーパラメータの選択ではユーザが意思決定をする必要があり,人間の判断による選択には限界がありました.
ここで機械学習アルゴリズムを自動で選択する場合,手法ごとに使用するハイパラが違うという問題があります.
提案手法のアイデア
CASH
アルゴリズム選択とハイパーパラメータ最適化を同時に行うために CASH (combined algorithm selection and hyperparameter optimization problem)を定義.
アルゴリズムとハイパラの探索空間から,最適な組み合わせを探索することを目指します.
探索自体は普通にアルゴリズムとハイパラを選択したらデータで訓練・推論して,ロスを最小化することを目指すみたいです.
SMAC
SMAC (Sequential Model-Based Algorithm Configuration) はCASHを最適化するために使用されている既存手法で,ベイズ最適化をするみたいです.
ハイパラに対する損失を計算し,これを最小化します.
いくつかのtrain・validateデータで出した損失の平均を使って一度に計算することで,精度と効率を両立しています.
TPE
TPE (Tree-structured Parzen Estimator) は損失関数のモデル化に密度推定 (density estimate) を用いる既存手法です.
損失が閾値を超えるかどうかに基づいて,"良い"設定と"悪い"設定の2グループに割り振ります.
それぞれの設定について別の損失関数として密度推定することで,損失が低い = 良い設定のグループに対してより良い推定ができる,という狙いです.
Auto-WEKA
Auto-WEKAは多種多様なアルゴリズムを自動的に選択し,ハイパラを最適化してくれるツールです.
コードが公開されている他,Pythonのためのwrapperもあります.
さいごに
実験ではちゃんと適切な手法とハイパラを選択し,良い結果を残していました.
少し古い手法なので,ハイパラ最適化なら他に色々手法があるかと思います.
しかし多種多様なアルゴリズムに対応し,アルゴリズムの探索ができるような手法はまだまだ貴重だと思います.