| Up | HPO とは | 作成: 2026-03-11 更新: 2026-03-13 |
アーキテクチャを設計する。
但し,AOS は一般的な用語ではなく,研究論文で使うのは: NAS(Neural Architecture Search) Architecture Optimization Architecture Search Model Search など HPO の出番は,モデルが出来てから。 モデルのハイパーパラメータを,さらに,最適化しようとする。
ハイパーパラメータ最適化 (「ブラックボックス最適化」) ハイパーパラメータとは,モデルのプログラム (構造・アルゴリズム) の変数で,値が入っているもの。 HPO は,この値を最適化しようというわけ。 「ブラックボックス最適化」 は,「匙加減」の作業を思わせる。 そして 「匙加減」は,NN (ニュウラルネットワーク) の十八番。 そこで,HPO は,NAS の類の NN がと思ってします。 しかし,そうではない。 HPO は,明示的な数学的最適化アルゴリズムを中身とする,アプリケーションである。 CPU でも動く。 LLM, NASコントローラは,NN HPO は,アプリケーション AutoML における位置は: ├── ニューラルネット型 │ ├── LLM(巨大 NN) │ └── NAS コントローラ(小型 NN) │ └── 数理アルゴリズム型 └── HPO(ベイズ最適化・進化戦略・バンディット) ニューラルネットではないので,, パラメータを大量に持たない 訓練データセットを必要としない HPO が NAS と同じなのは,「評価」を使って,最適化を進めるところ。 HPO は次のように動作する: 「評価関数」を用意する ハイパーパラメータの提案を求める 1. HPO が, 候補のハイパーパラメータを返す 2. ユーザが, そのハイパーパラメータでモデルを訓練し, 評価値(accuracy など)を返す 3. HPO が, その評価値と自己史に整合的に, 候補のハイパーパラメータを作成する 1〜3 を繰り返す シンプルな HPO は,CPU でも動くほどのもの。 大変なのは,やはりユーザ側の作業 (訓練・評価)。 実際,HPO 製品の Vizier (Google) は,Google の巨大計算資源が前提になっている: ↓ 大量並列訓練 「最適化」 は: 「評価値」を観測しながら, 「どのハイパーパラメータが良さそうか」の確率分布を更新 HPO の内部は,次のようなアルゴリズムで動く: 進化戦略(Evolutionary Search) バンディットアルゴリズム(UCB, Thompson Sampling) ランダム探索 ガウス過程の平均・分散の更新 進化戦略の個体群の更新 バンディットの報酬分布の更新 このなかでは「ベイズ最適化」が直感的にわかりやすので,簡単にこれを見ていく。 <ハイパーパラメータ値の組み合わせ>の全体を, 「探索空間」 に見立てる。 <ハイパーパラメータ値の組み合わせ>の1つが,空間の1点。 既に試した点を,x_1, ‥‥, x_n とする。 また,各 x_i に対する評価を f_i とする。 そして, (x_1, f_1), ‥‥ , (x_n, f_n) に対し, ガウス過程を更新: ・平均 μ(x) を更新 ・分散 σ(x) を更新 そして評価関数を最大化する点を,次に試す点 x_(n+1) にする。 ユーザは,x_(n+1) でモデルを訓練。 そしてモデルの評価 f_(n+1) を,HPO に返す。 イメージは,探索空間で試行点列が収束し, その収束点を 「最適化」 に見る,というわけ。 なおこの方法は,「最適化」 が最初の点に依存する可能性がある(「局所最適」)。) ○ HPO 全体の流れ図解) 1. ベイズ最適化(Gaussian Process)の内部構造 「評価値の確率分布を学習しながら,次の候補を選ぶ」 というアルゴリズム。 <ハイパーパラメータ値の組み合わせ>の全体を, 「探索空間」 に見立てる。 空間の1点は,1つの<ハイパーパラメータ値の組み合わせ>。 評価値そのものが「データ」になる 2. 進化戦略(Evolutionary Search)の内部構造 「良い個体を残し,突然変異させながら探索する」 というアルゴリズム。 3. バンディット(Bandit Algorithm)の内部構造 「試行回数と報酬のバランスを取りながら探索する」 というアルゴリズム。 |