【比較】パラメータとハイパーパラメータの違い¶
概要¶
機械学習の説明で必ず出てくる「パラメータ」と「ハイパーパラメータ」は名前が似ていますが、決定的に違う概念です。パラメータは学習中にデータから自動で獲得される値(ニューラルネットの重み・バイアスなど)で、最適化アルゴリズムが勾配降下で更新します。一方ハイパーパラメータは学習を始める前に人間が設定する値(学習率、バッチサイズ、層の数、エポック数、正則化の強さなど)で、最適化アルゴリズム自身は学習しません。チューニングは交差検証やグリッド/ランダム/ベイズ探索で外側から行います。
両者を混同すると、「学習率をモデルが勝手に調整してくれる」と誤解して収束しない、「精度が出ないのを重みのせいにして実はハイパーパラメータ未調整」、LLM の文脈で「70B パラメータ」とサンプリングの temperature を同じ土俵で語る、といった事故につながります。LLM の「パラメータ数(70B など)」は学習済みの重みの個数を指し、推論時の temperature / top_p はリクエストごとに設定するサンプリング設定(ハイパーパラメータの一種であり、モデルの重みそのものではない)です。ここを切り分けるのが本記事のねらいです。
例えるなら:料理人の腕と、レシピの設定値¶
- パラメータ … 料理人が試作を繰り返して身体に染み込ませた「腕(火加減の感覚・手の動き)」。練習(学習)の中で本人が自動的に獲得していくもの。
- ハイパーパラメータ … 調理を始める前に人間が決める「レシピ側の設定値」。オーブンの温度、何回試作するか、調味料を控えめにする度合い。料理人の腕とは別レイヤーで、外から人が決め直す。
詳細比較¶
| 比較軸 | パラメータ(parameter) | ハイパーパラメータ(hyperparameter) |
|---|---|---|
| 何か | モデルがデータから学習する内部の値(重み・バイアス) | 学習プロセスを設定するために人間が事前に決める値 |
| 決まり方 | 学習中に最適化アルゴリズム(勾配降下など)が自動更新 | 学習開始前に人間が設定。最適化アルゴリズムは学習しない |
| 代表例 | ニューラルネットの重み w、バイアス b、線形回帰の係数 |
学習率、バッチサイズ、層数・ユニット数、エポック数、正則化係数、optimizer の種類 |
| 調整方法 | 損失の勾配を逆伝播し勾配降下で更新 | グリッド/ランダム/ベイズ探索+検証データ(交差検証)で外側から探索 |
| 個数の規模 | 大規模(LLM では数十億〜:例「70B パラメータ」) | 少数(通常は数個〜数十個) |
| 学習データとの関係 | データから直接導出される | データから学習されない(学習の進め方を規定する) |
| 保存先 | 学習済みモデル(チェックポイント/重みファイル)に保存 | 設定・実験管理(コンフィグ)として記録 |
| LLM 推論時の対応物 | 学習済みの重み(モデルサイズ=パラメータ数) | temperature/top_p 等のサンプリング設定(リクエスト単位の設定値) |
よくある誤解¶
- 誤解1:「ハイパーパラメータも学習でモデルが勝手に最適化してくれる」 — しません。勾配降下が更新するのはパラメータ(重み・バイアス)だけです。学習率やバッチサイズ、層数は学習アルゴリズムの対象外で、人間が検証データを見ながら探索(ハイパーパラメータチューニング)して決めます。「学習率が自動で最適になる」前提でコードを書くと収束しません(学習率スケジューラは“あらかじめ決めた規則で変える”のであって、損失からの勾配で学習しているわけではありません)。
- 誤解2:「LLM の
temperatureはモデルのパラメータ(重み)の一つ」 — 違います。temperatureやtop_pは推論時にリクエストごとに渡すサンプリング設定で、モデルの重みではありません。OpenAI / Anthropic のドキュメントでも API 呼び出しのリクエストパラメータとして定義されており、値を変えても学習済みの重みは一切変わりません。「temperatureを下げたらモデルが賢くなった/学習し直した」ではなく、出力のランダム性(確率分布のシャープさ)を変えているだけです。位置づけとしては推論時のハイパーパラメータの一種で、学習で得るw/bとはレイヤーが違います。 - 誤解3:「『70B パラメータ』のパラメータはハイパーパラメータも含む数」 — 含みません。「70B(700 億)パラメータ」は学習で獲得した重み・バイアスの個数です。層数やエポック数といったハイパーパラメータはこの数に入りません(むしろ層数を決めた“結果”として重みの総数が定まります)。モデルサイズの議論とハイパーパラメータ設定の議論を同じ数字で語らないようにします。
- 誤解4:「正則化(L1/L2・ドロップアウト率)はモデルが学習する値」 — 正則化の“強さ”を決める係数(
λやドロップアウト率)はハイパーパラメータで、人間が設定します。正則化の影響を受けて学習されるのは重み(パラメータ)側です。「正則化を強くしたのに過学習する」は、学習される重みの問題ではなく、まずハイパーパラメータ(係数)設定とデータを疑う領域です。
実務での選び分け¶
- 精度が出ない原因の切り分け → 「重み(パラメータ)が十分に学習できていない(データ量・学習時間・損失設計)」のか「ハイパーパラメータ未調整(学習率が大きすぎ/小さすぎ、エポック不足、正則化過小)」のかを最初に分ける。混ぜると原因究明が迷走する。
- チューニングの順番 → まず学習が回る(損失が下がる)ハイパーパラメータ(特に学習率)を確保し、その上で検証データに対し探索(グリッド/ランダム/ベイズ)。パラメータは学習に任せ、人間が直接いじらない。
- 再現性の管理 → パラメータは重みファイル(チェックポイント)、ハイパーパラメータは実験コンフィグ(バージョン管理)として別に保存する。両者を取り違えると実験が再現できない。
- LLM 利用(学習しない場合) → 触れるのは基本「推論時の設定値」(
temperature/top_p/max_tokens等)。出力の傾向を変えたいだけならここを調整。挙動の根っこ(知識・口調)を変えたいなら学習側(ファインチューニング)の問題で別レイヤー。 - コスト議論 → モデルサイズ(パラメータ数)は推論コスト・必要メモリに直結。ハイパーパラメータ探索のコストは学習試行回数に直結。別軸として積む。
ひとことまとめ¶
パラメータは「データから学習で自動獲得される重み・バイアス」、ハイパーパラメータは「学習の進め方を人間が事前に決める設定値(学習率・バッチサイズ・層数・エポック・正則化など)」。学習で更新されるか・人間が外から設定するかが境界です。LLM の「◯◯B パラメータ」は重みの個数、推論時の temperature/top_p はサンプリング設定(ハイパーパラメータの一種)で、モデルの重みとは別物と覚えると混同しません。
出典・参考¶
- Google Machine Learning Glossary(parameter=モデルが学習で更新する重み等、hyperparameter=学習プロセスを人が設定する値。learning rate / batch size / epoch / regularization の定義): https://developers.google.com/machine-learning/glossary
- Wikipedia「Hyperparameter (machine learning)」(hyperparameter はモデルの学習プロセスを設定するために設定する値で、データから学習される parameter とは対照的。learning rate / batch size / ネットワークの位相・規模が例): https://en.wikipedia.org/wiki/Hyperparameter_(machine_learning)
- Anthropic Messages API(
temperatureはリクエスト時に渡すボディパラメータで応答のランダム性を制御する設定値。学習済みの重みではない): https://platform.claude.com/docs/en/api/messages