モデルパラメータとは

モデルパラメータとは、モデルに属し、データから学習される値です。これらは学習によって調整され、推論で使用される値です。

単純な線形モデルでは、

[
y = wx + b
]

(w) と (b) はどちらもパラメータです。モデルはこれらを学習によって獲得し、各予測のたびに新しい入力として受け取るわけではありません。

ニューラルネットワークは、数値の多次元配列であるテンソルにパラメータを格納します。1つのテンソルに多数のスカラー・パラメータが含まれることもあります。モデルが特定のパラメータ数を持つと説明される場合、その数は通常、テンソルの個数ではなく、パラメータ・テンソル全体に含まれるスカラー値の個数を指します。

モデルの重みとは

モデルの重みには、一般的に2つの意味があります。

狭い数学的な意味では、重みとは入力または中間値に乗算される値です。(y = wx + b) では、(w) が重みで、(b) がバイアスです。どちらもパラメータですが、重みなのは一方だけです。

より広いソフトウェア上の意味では、「重み」は、学習済みモデルがそのように振る舞うことを可能にする、保存された数値状態を指します。「重みファイル」には、重み行列、バイアス、場合によってはその他の永続的なテンソルも含まれます。この呼び方が示すのはパッケージ全体であり、その中のすべての数値が数学的に同じ役割を持つという意味ではありません。

違いの整理

最も信頼できる原則は次のとおりです。

重みは通常、パラメータの一種です。しかし「モデルの重み」は、モデルが学習した完全な状態を指す略称として使われることがよくあります。
Context“Parameters” usually means“Weights” usually means
A layer equationAll learned values, including weights and biasesValues multiplied by inputs or activations
A parameter countThe number of learned scalar values across parameter tensorsOften used loosely as a synonym for the same count
A framework APIRegistered model values that may be trainable or frozenA framework-specific collection that may include biases and non-trainable state
A model download or checkpointLearned values, if the term is used at allThe saved tensors needed to reproduce the trained model’s behavior

この表は慣例を示したものであり、普遍的な標準ではありません。正確さが重要な場合は、周辺の数式、APIの定義、またはファイル仕様を確認してください。

具体例

3つの入力値を受け取り、2つの出力値を生成する全結合層を考えます。この層は次の計算を行います。

[
\mathbf{y} = \mathbf{x}\mathbf{W} + \mathbf{b}
]

重み行列 (\mathbf{W}) の形状は (3 \times 2) なので、6個のスカラー重みを含みます。バイアスベクトル (\mathbf{b}) には、2個のスカラー・バイアスがあります。

したがって、この層には次の値が含まれます。

  • 6個のスカラー重み
  • 2個のスカラー・バイアス
  • 合計8個のスカラー・パラメータ

ライブラリがこの層の「重み」を保存する場合、保存されるコレクションには通常、(\mathbf{W}) と (\mathbf{b}) の両方が含まれます。数学的な内容が変わったわけではありません。変わったのは、「重み」という語が指す範囲だけです。

表現が重要になる場面

狭い意味での区別は、数式を読んだり、層を実装したり、パラメータ数を確認したりするときに重要です。重み行列の要素だけを数えると、バイアスやその他の学習されるパラメータ・テンソルを除外してしまい、モデルのパラメータ数を過少に数える可能性があります。

広い意味は、モデルをダウンロード、読み込み、凍結、共有するときに重要です。フレームワークによっては、永続的な層変数をすべて重みと呼ぶことがあります。また、チェックポイントには、パラメータとして学習時に最適化されていなくても、推論で使われるバッファが含まれる場合があります。

凍結も混乱の原因になります。凍結されたパラメータは、その学習実行中には更新されなくなりますが、依然としてモデルの一部であり、出力に影響を与えます。そのため、同じモデルでも「学習可能なパラメータ数」と「全パラメータ数」では異なる値になることがあります。

パラメータ数とチェックポイントのサイズも、異なる指標です。ファイルサイズは、各値の符号化方法、テンソルが量子化または共有されているかどうか、チェックポイントに追加の状態が含まれているかどうかによって変わります。形式の詳細がなければ、一方の値からもう一方を確実に特定することはできません。

よくある混同

「重み」は常にバイアスを除外する

(W) と (b) の項を別々に示す数式では、これは正しいです。しかし、フレームワークやチェックポイントの用語では、「重み」が両方を含むコレクションを指すことがあるため、常に正しいとは限りません。

「パラメータ」は学習設定を意味する

モデルパラメータとは、モデル内部で学習される値です。学習率など、学習プロセスのために選択する設定はハイパーパラメータです。名前が似ていても、同じ種類の値になるわけではありません。

パラメータが多いほど優れたモデルである

パラメータ数は、モデルに含まれる学習済みのスカラー値の個数を示します。アーキテクチャがどれだけ有用か、学習データの品質がどれだけ高いか、あるいはモデルがあなたのタスクでどれだけ性能を発揮するかは示しません。

次に読む内容

学習される値がモデル全体でどのように数えられ、使用されるかについては、「モデルパラメータとは?」を読んでください。重みが層の出力をどのように形作るか、またモデルファイルでこの用語がどのように使われるかについては、「モデルの重みとは?」を読んでください。