Keras Tunerは、Kerasモデルにおけるハイパーパラメータのチューニングを自動化するためのライブラリであり、その中心的なコンポーネントの一つが**HyperModel**です。
1. HyperModelとは何か
HyperModelは、ハイパーパラメータを含むモデル構造を定義するための抽象クラスです。これを使って、モデル構造・コンパイル・トレーニングの設定を一括して記述することで、Keras Tunerがその構造内のハイパーパラメータを自動で探索できるようになります。
Keras Tunerには以下のような方法でHyperModelを利用できます:
-
HyperModelクラスを継承して自分で定義する方法 -
hypermodel引数に関数を渡す方法(関数API)
ここでは、主にクラスベースの方法について詳述します。
2. HyperModel クラスの実装方法
HyperModel クラスの実装方法
基本構造
3. ハイパーパラメータの定義方法
hpオブジェクト(HyperParametersのインスタンス)を使って、様々なハイパーパラメータを定義できます:
| メソッド | 用途 |
|---|---|
hp.Int() |
整数の範囲を指定 |
hp.Float() |
浮動小数点数の範囲を指定(線形/対数) |
hp.Choice() |
選択肢の中から1つ選ぶ |
hp.Boolean() |
真偽値を指定 |
4. HyperModelを使ったTunerの実行例
5. なぜHyperModelを使うのか
HyperModelを使うのか-
モデル構造とハイパーパラメータ探索空間を明確に分離できる
-
再利用可能な構造で、他のTuner(
BayesianOptimization,Hyperbandなど)でも使いまわせる -
Tunerのパラメータと独立して、モデル定義だけに集中できる
6. まとめ
-
HyperModelは、Keras Tunerのハイパーパラメータ最適化におけるモデル定義のためのクラス -
build(hp)メソッド内で、ハイパーパラメータとモデル構造を記述する -
独自のチューニング対象モデルを柔軟に設計・再利用できるメリットがある
必要に応じて、fit()メソッドもオーバーライドすることで、データ前処理や学習ループのカスタマイズも可能です。
生成日:2025/05/22