DCEKit に搭載されている Gaussian Mixture Regression (GMR) や Variational Bayesian Gaussian Mixture Regression (VBGMR) について、
クロスバリデーションとベイズ最適化によってハイパーパラメータを最適化する機能を追加しました。DCEKit における以下のデモンストレーションも実行していただければ、最適化される様子をご覧いただけると思います。
- demo_gmr_with_cross_validation_bayesian_optimization.py
- demo_vbgmr_with_cross_validation_bayesian_optimization.py
ここでは、クロスバリデーションとベイズ最適化によるハイパーパラメータの最適化について説明します。GMR や VBGMR を例にして説明しますが、それらに限らずハイパーパラメータの種類が多い回帰分析手法・クラス分類手法のハイパーパラメータを最適化するためにベイズ最適化はとても適していますので、参考になると思います。
はじめに、GMR と VBGMR のハイパーパラメータの種類は以下の通りです。
○ GMR
- 正規分布の数
- 分散共分散行列の種類
- mode を用いて予測するか、meanを用いて予測するか
○ VBGMR
- 正規分布の数
- 分散共分散行列の種類
- 重みの事前分布の種類
- 重みの事前分布のパラメータ
- mode を用いて予測するか、meanを用いて予測するか
まずベイズ最適化の前に、ハイパーパラメータの候補のすべての組み合わせを生成します。グリッドサーチとクロスバリデーションを使った方法では、
ハイパーパラメータの候補のすべての組み合わせでクロスバリデーションを行い、回帰分析であれば r2 が最大になる候補を、クラス分類であれば正解率などが最大になる候補を選択しますが、特にハイパーパラメータの種類や候補の数が多くなると、ハイパーパラメータの候補のすべての組み合わせでクロスバリデーションをするのに時間がかかってしまいます。
そこで、ハイパーパラメータの候補のすべての組み合わせではクロスバリデーションをせずに、少数の組み合わせのみでクロスバリデーション後の r2 や正解率を高くするために、ベイズ最適化を使用します。
ベイズ最適化において構築するガウス過程回帰モデルの説明変数 x がハイパーパラメータであり、目的変数 y がクロスバリデーション後の r2 や正解率になります。GMR や VBGMR における「分散共分散行列の種類」のようなカテゴリーの情報をもつハイパーパラメータは、ダミー変数で表し x とします。
まず、ハイパーパラメータの候補のすべての組み合わせの中から、D最適基準に基づく実験計画法により、
最初にクロスバリデーションすべき少数の組み合わせを選択します。DCEKit では 15 個選択しています。その後、15 組のハイパーパラメータの候補の組み合わせに対し、GMR や VBGMR でクロスバリデーションを実行し (15 回実行)、r2 を計算します。この 15 サンプルを用いて、(カテゴリー変数についてはダミー変数にした) ハイパーパラメータ (x) とクロスバリデーション後の r2 (y) の間でガウス過程回帰モデル y = f(x) を構築します。
その後、まだクロスバリデーションを行っていないハイパーパラメータの候補の組み合わせに対し、ガウス過程回帰モデルを用いて r2 の予測と獲得関数の計算を行います。そして、獲得関数の値が最大となるハイパーパラメータの候補の組み合わせを選択します。
次は、選択されたハイパーパラメータの候補の組み合わせで、GMR や VBGMR でクロスバリデーションを実行し (1 回実行)、r2 を計算します。この結果は、ガウス過程回帰モデルを構築するサンプルに追加します。
この後は、
- ガウス過程回帰モデルの再構築
- r2 の予測と獲得関数の計算
- 獲得関数が最大となるハイパーパラメータの候補の組み合わせの選択
- クロスバリデーションと r2 の計算
を繰り返すことで、クロスバリデーション後の r2 が最大となるハイパーパラメータの組み合わせを目指します。DCEKit のデフォルトの設定では、15 回繰り返します。これにより、ハイパーパラメータの候補のすべての組み合わせが何百個あろうとも、30 回 (最初の15回 + ベイズ最適化における繰り返しの 15 回)のクロスバリデーションで、ハイパーパラメータが最適化されます。効率的かつ高速にハイパーパラメータを決定可能です。
GMR や VBGMR に限らず、このクロスバリデーションとベイズ最適化に基づく方法はハイパーパラメータの種類や候補が多い回帰分析手法・クラス分類手法に有効です。ご参考になれば幸いです。
以上です。
質問やコメントなどありましたら、twitter, facebook, メールなどでご連絡いただけるとうれしいです。