ハイパーパラメータとは?意味・仕組みと探索の方法を扱った論文(2026年11月時点)

ハイパーパラメータ

Hyperparameter / ハイパーパラメーター

ハイパーパラメータとは、学習率、バッチサイズ、エポック数のように、AI のモデルを学習させる前に人が決める設定値のこと。重みのように学習で決まるパラメーターとは分けて扱う。

要するに

  • 学習率やバッチサイズは人が決め、重みとバイアスは学習の間にモデルが計算する
  • グリッドサーチ、ランダムサーチ、ベイズ最適化、Hyperband などで値を探す
  • 値は検証用のデータで選び、テスト用のデータは最後の評価のために残す

最終確認

白い面に並べた白いつまみ2つとすりガラスのつまみ1つ、それぞれ違う向きに回した目盛り、下を通る紫のリボン
目次8

ひとことで言うと

ハイパーパラメータは、AI のモデルを学習させる前に人が決める設定値だ。Google の講座「Machine Learning Crash Course」は、ハイパーパラメータを人が制御する値、パラメーターを学習の間にモデルが計算する値と説明している。パラメーターは重みやバイアスのことで、モデルそのものの一部になる。

身近な例は学習率の決め直しだ。Google の機械学習の用語集は、学習率を0.01にして1回学習し、高すぎると判断したら次の学習では0.003にする例を挙げている。

仕組み

ハイパーパラメータは次の流れで決まる。

  1. 値を決める。Google の講座は、よく使うものとして学習率、バッチサイズ、エポック数の3つを挙げる。
  2. 学習させる。モデルは勾配降下法で重みとバイアスを計算する。学習率は1回ごとに重みをどれだけ動かすかを決める。
  3. 検証用のデータで成績を測る。検証用のデータは学習に使わずに取っておいたデータだ。
  4. 値を変えてもう一度学習させる。Google の用語集は、ハイパーパラメータを、人かチューニングのサービスが学習のたびに調整する値と定義している。
  5. 選んだ値のモデルを、最後にテスト用のデータで確かめる。

それぞれの値の意味は次のとおりだ。学習率は低すぎると収束(くり返しても損失がほとんど変わらなくなること)に時間がかかり、高すぎると収束しない。バッチサイズは重みを1回更新する前に処理する例の数だ。エポック数は学習用のデータ全体を何回処理するかを表す。講座によると、1,000件のデータをバッチサイズ100で学習させると、1エポックは10回の更新になる。講座は、エポックが多いほど一般にモデルはよくなるが、学習の時間も延びるとしている。

層の数のような構造の値もハイパーパラメータに入る。Google の「Deep Learning Tuning Playbook」は、層の数が学習の速さとメモリの使用量に大きく響くとしている。scikit-learn(Python の機械学習のライブラリ)では、モデルを作るときに引数として渡す。サポートベクター分類器(SVC)の C、kernel、gamma が例だ。

値の組み合わせを探す方法には、主に次の4つがある。

  • グリッドサーチ:候補の値の組み合わせをすべて試す。scikit-learn の GridSearchCV がこれにあたる。
  • ランダムサーチ:指定した分布から、決めた数の組み合わせをランダムに選んで試す。scikit-learn の RandomizedSearchCV がこれにあたる。
  • ベイズ最適化:それまでの試行の結果から、次に試す値を選ぶ。2012年の Snoek らの論文は、モデルの成績をガウス過程というモデルで表し、それまでの試行の情報から次に試す値を選ぶ枠組みで、自動の調整を扱った。
  • Hyperband:ランダムに選んだ候補に少しずつ学習の資源を与え、早めに打ち切りながら探す。2016年に Li らが発表した。

scikit-learn によると、ランダムサーチは値の数と関係なく予算を決められ、成績に関係ない値を足しても効率が落ちない。

表で見る最新の状況

上の論文の欄は、TRAIL が解説した論文から、ハイパーパラメータの探索を扱った2本を古い順に並べたものだ。確認日は2026年11月6日。

2016年3月の Hyperband は、ランダムサーチを資源の配分と早めの打ち切りで速くする方法だ。要旨は、深層学習とカーネル法の問題で、比べたベイズ最適化などの方法より1桁以上速くなる場合があったと報告している。一方、TRAIL の解説によると、SVHN などでは早期終了を加えた SMAC が競り合い、Hyperband が常に最良ではなかった。

2016年11月の Neural Architecture Search は、ネットワークの構造そのものを自動で探す研究だ。探索の間に800個の GPU を同時に使い、12,800の構造を試した。そのあと、よい候補の学習率などを小さく追加で探している。

TRAIL の解説は、最終のモデルの成績だけでなく、探索にかかった時間や計算の資源もあわせて見るよう勧めている。

ハイパーパラメータとパラメーターの違い

ハイパーパラメータ パラメーター
誰が決めるか 人か、チューニングのサービス 学習の間にモデルが計算する
いつ決めるか 学習を始める前 学習の間
例 学習率、バッチサイズ、エポック数、層の数 重み、バイアス
決め方 学習と評価をくり返して選ぶ 勾配降下法で損失を小さくする向きに動かす

Google の用語集は、パラメーターを学習の間にモデルが学ぶ重みとバイアスとし、学習率はハイパーパラメータだと書いている。

仕事でどう関係するか

外部にモデルの開発を頼むとき

どの値を、どのデータで選んだかを聞くと、報告された成績を読めるようになる。scikit-learn は、探索に使ったデータとは別に、評価用のデータを取っておくよう勧めている。scikit-learn の RandomizedSearchCV では、試す候補の数が計算の予算になる。

プロンプト
次の項目を表にまとめてください。
- 調整したハイパーパラメータと、探した値の範囲
- 探索の方法(グリッドサーチ、ランダムサーチ、ベイズ最適化など)と試した回数
- 値を選ぶのに使ったデータと、最終の成績を測ったデータ

ファインチューニングのジョブを作るとき

ファインチューニングでも、ハイパーパラメータを指定する場面がある。OpenAI の API のリファレンスでは、ジョブを作るときに、学習の方法(method)の指定の中で batch_size(バッチサイズ)、learning_rate_multiplier(学習率の倍率)、n_epochs(エポック数)を渡せる。レスポンスの例ではどれも "auto" になっている。検証用のファイルも指定できる。ただし OpenAI はファインチューニングの基盤の提供を終える方向で、新しい利用者は使えない。対象の既存の利用者がジョブを作れるのも、元のモデルの提供が先に終わらない限り、2027年1月6日までだ。

LLM の temperature を設定するとき

Google の用語集は、Temperature をモデルの出力のランダムさを決めるハイパーパラメータに分類している。学習率と違い、temperature は答えを作るときの設定だ。OpenAI の Responses API では、リクエストごとに0から2の範囲で指定し、既定値は1だ。ただし Anthropic や Google の新しいモデルには、指定するとエラーになるものや、指定しても無視されるものがある。LLM を使う側が触る設定は、学習のハイパーパラメータとは決めるタイミングが違う。

注意点と限界

ハイパーパラメータをテスト用のデータで選ぶと、成績があてにならなくなる。scikit-learn によると、テスト用のデータで成績が最もよくなるまで値を調整すると、テスト用のデータの情報がモデルに漏れる。そのため、学習用、検証用、テスト用の3つに分け、検証用で値を選び、最後にテスト用で測る。3つに分けると学習に使えるデータが減るので、交差検証(学習用のデータを k 個に分け、順番に1つを検証に使う方法)を使えば、検証用のデータを別に取っておかなくて済む。テスト用のデータは最後の評価のために残しておく。

グリッドサーチは、新しいデータで値を決めるのに向かないことがある。Bergstra と Bengio の2012年の論文は、多くのデータセットで本当に効くハイパーパラメータは少なく、どれが効くかはデータセットごとに違うと報告した。人手とグリッドサーチを組み合わせて設定した深層信念ネットワークとの比較では、同じ32次元の範囲を探したランダムサーチが、7つのデータセットのうち4つで統計的に同等、1つで上回った。Google の Playbook は、グリッドサーチは1〜2次元なら許容できるが、それより多い次元ではそうではないとしている。

Playbook は、ベイズ最適化を使うと調整の結果を読み取りにくくなるとしている。そのため、問題の性質をつかむ探索の段階では準ランダムサーチ(ランダムサーチより点をむらなく散らして探す方法)を好み、探索が終わったら、使える場合はベイズ最適化のソフトウェアを使うよう勧めている。TRAIL の Hyperband の解説によると、早めに打ち切る方法では、学習の初めの成績が最終の順位を正しく表さないと、有望な候補を止めてしまう。

よくある質問

ハイパーパラメータとは簡単に言うと何か

学習を始める前に人が決める設定値だ。学習率、バッチサイズ、エポック数が代表的な例だ。重みのように学習で決まる値はパラメーターと呼んで分ける。

ハイパーパラメータはどうやって決めるのか

値を変えて学習と評価をくり返し、検証用のデータで成績のよい値を選ぶ。探し方には、グリッドサーチ、ランダムサーチ、ベイズ最適化、Hyperband などがある。scikit-learn は、一部の値が成績に大きく響き、ほかは既定値のままでよいことが多いと書いている。

グリッドサーチとランダムサーチはどちらがよいか

値の種類が多いならランダムサーチが向く。Bergstra と Bengio の論文は、ニューラルネットワークの実験で、同じ計算の予算なら、ランダムサーチがグリッドサーチより広い範囲を探してよりよいモデルを見つけたと報告した。Google の Playbook も、グリッドサーチは1〜2次元までなら許容できるとしている。

なぜテスト用のデータで選んではいけないのか

テスト用のデータに合わせた値になり、新しいデータでの性能がわからなくなるからだ。scikit-learn は、テスト用のデータの情報がモデルに漏れると説明している。値は検証用のデータで選ぶ。

temperature もハイパーパラメータなのか

Google の用語集は、temperature を出力のランダムさを決めるハイパーパラメータとしている。ただし学習の前に決める学習率と違い、答えを作るリクエストごとに指定する値だ。

関連する用語

出典

公開
執筆
TRAIL編集部(編集方針)