機械学習確率モデル統計物理学

分配関数

ぶんぱいかんすう · Partition Function
20 views

分配関数とは、確率モデルや統計力学において、すべての可能な状態に対する確率の総和を1にするための規格化定数です。ボルツマン分布などの確率計算や、大規模言語モデルのソフトマックス関数における分母として、AIや機械学習の分野で広く活用されています。

分配関数とは

一言でいうと分配関数とは、複雑な確率モデルにおいて、すべての確率の合計が必ず1(100%)になるように全体を調整する「規格化のための定数または総和」のことです。

詳しく解説

分配関数は、統計力学に由来する概念ですが、現代の機械学習や深層学習の確率的モデルにおいても極めて重要な役割を果たしています。確率モデルでは、ある状態が発生する相対的な確率(エネルギーの指数関数など)を計算しますが、これらをそのままでは合計が1になりません。そこで、すべての状態についての値を足し合わせた分配関数で割ることで、厳密な確率分布に変換します。例えば、ニューラルネットワークの出力層で使われるソフトマックス関数においても、分母にある全クラスのスコアの総和は分配関数に相当します。

具体例・使われ方

具体的な利用例として、ボルツマンマシンやマルコフ確率場といったエネルギーベースモデルが挙げられます。これらのモデルでは、画像生成や異常検知を行う際に状態の確率を計算するため、分配関数を介した規格化が行われます。また、自然言語処理の分野では、系列データの確率を計算する条件付き確率場(CRF)の学習時にも分配関数が登場します。

似た用語との違い

損失関数や活性化関数がモデルの最適化や特徴量変換を直接行う目的を持つのに対し、分配関数は確率の総和を1に保つための「スケーリングや正規化」を目的としている点が異なります。また、尤度関数とは異なり、モデルのパラメータそのものではなく確率の総和を計算する対象となります。

注意点

分配関数の計算における最大の課題は、取りうる状態の数が膨大な場合にすべての組み合わせを足し合わせることが計算上不可能になる点です。これを「分配関数の計算困難性」と呼びます。そのため、MCMCサンプリングや変分推論、コントラスティブ・ダイバージェンスなどの近似手法を用いて効率的に計算や学習を行う工夫が必要となります。

更新日時: 2026年9月8日 03:01