この記事では、観測値が離散的な場合を扱います(連続の場合は確率質量関数を確率密度関数に読み替えます)。

観測値 $x_1,\dots,x_n$ が得られたときの尤度関数は、観測値が得られる同時確率を、パラメータ $\theta$ の関数として見たものです。

尤度関数の式は同時確率の式と同じになります。同時確率の変数は確率変数の実現値(観測値)ですが、尤度関数では観測値を固定し、代わりに確率分布を指定するパラメータ $\theta$ を変数とみなします。尤度関数の変数を特にパラメータと呼ぶことがあります。

\[L(\theta) := p(x_1,\dots,x_n;\theta)\]

ここで $p(\,\cdot\,;\theta)$ はパラメータ $\theta$ で指定される確率分布(確率質量関数)です。

尤度関数 $L(\theta)$ は $\theta$ の確率分布ではない

「入力」「出力」「推定値」を区別すると、混乱を避けられます。

  何か 性質
$\theta$ 尤度関数の入力(パラメータ) 動かす変数。カテゴリカル分布なら確率ベクトルそのもの
$L(\theta)$ 尤度関数の出力(尤度の値) 離散ならその $\theta$ のもとで観測データが得られる確率(スカラー)
$\hat\theta=\underset{\theta}{\arg\max}\,L(\theta)$ 最尤推定値 $L$ を最大にする入力。カテゴリカル分布なら 1 つの分布

尤度関数の出力 $L(\theta)$ の値 1 つ 1 つは、離散なら観測データの確率です。一方、入力 $\theta$ の上に $L(\theta)$ を並べたもの(尤度関数)は、$\theta$ 上の確率分布ではありません。$\theta$ について足したり積分したりしても 1 になるとは限らないためです。

例:ベルヌーイ試行を 1 回観測して $x_1=1$ だった場合、$L(p)=p$ です。$\int_0^1 L(p)\,dp = 1/2$ となり、1 になりません。

なお、$L(\hat\theta)$(最大の尤度の値)と $\hat\theta$(最尤推定値)も別物です。$L(\hat\theta)$ は観測データの確率(1 以下の数値)で、$\hat\theta$ は分布を指定するパラメータです。

連鎖律による分解

同時確率は、確率の公理から導かれる連鎖律(chain rule)によって以下の形に分解できます。

\[p(x_1,\dots,x_n;\theta) = p(x_1;\theta)\,p(x_2\vert x_1;\theta)\,p(x_3\vert x_1,x_2;\theta)\cdots p(x_n\vert x_1,\dots,x_{n-1};\theta) = \prod_{i=1}^{n} p(x_i\vert x_{\lt i};\theta)\]

ただし $x_{\lt i} := (x_1,\dots,x_{i-1})$ です($i=1$ のときは空、つまり条件なしです)。

この分解は恒等式であり、独立性などの仮定なしに常に成り立ちます。したがって、尤度関数の一般の形は以下です。

\[L(\theta) = \prod_{i=1}^{n} p(x_i\vert x_{\lt i};\theta)\]

i.i.d. を仮定しない場合

各因子 $p(x_i\vert x_{\lt i};\theta)$ は、関数の形と $\theta$ が共通でも、条件 $x_{\lt i}$ が異なるため、$x_i$ の分布は $i$ ごとに異なり得ます。各観測に既知の入力 $z_i$(分類器の入力など)が付く場合は、これも条件に加えて $p(x_i\vert x_{\lt i},z_i;\theta)$ と書きます($z_i$ がない場合は $z_i$ を省略して読んでください)。

\[p_i(x_i\vert x_{\lt i};\theta) := p(x_i\vert x_{\lt i},z_i;\theta)\]

と書くと、尤度関数は以下です。

\[L(\theta) = \prod_{i=1}^{n} p_i(x_i\vert x_{\lt i};\theta)\]

$\theta$ は 1 組で共通ですが、そこから導かれる分布 $p_1,\dots,p_n$ は、互いに異なる可能性があります。異なるのは、関数に入力する条件($x_{\lt i}$ や $z_i$)が $i$ ごとに違うためです。

仮に $p_1,\dots,p_n$ を互いに無関係な自由な変数として動かせるとすると、観測が 1 系列しかない場合は $p_i(x_i\vert x_{\lt i})=1$ とするだけで尤度が最大になってしまい、推定が退化します。実際には $p_1,\dots,p_n$ はすべて共通の $\theta$ から決まる形に制限されます。$\theta$ を共有してモデルの自由度を観測数より小さく制限することが、推定が意味を持つ条件です(自由度が観測数に近いモデルでは、$\theta$ を共有しても、観測値を丸暗記するような推定になり得ます)。

最尤推定で求めるのは共通の $\theta$ の推定値 $\hat\theta$ 1 つだけです。各 $p_i$ は $\hat\theta$ と条件から $\hat p_i = p(\,\cdot\,\vert x_{\lt i},z_i;\hat\theta)$ として決まります。

i.i.d. でないケースの代表的な 2 種類は、次のとおりです。

  • 独立だが同分布でない:$x_{\lt i}$ には依存せず、既知の入力 $z_i$ にだけ依存して分布が $i$ ごとに変わります。$p(x_i\vert x_{\lt i},z_i;\theta) = p(x_i\vert z_i;\theta)$ と書け、$z_i$ を与えたうえで $x_1,\dots,x_n$ は条件付き独立です。$\theta$ は全 $i$ で共通で、分布の違いは入力 $z_i$ の違いによります。例:入力 $z_i$ ごとに予測分布が変わる分類器。
  • 独立でない(従属):$x_i$ の分布が過去の観測値 $x_{\lt i}$ に依存します。例:自己回帰モデル。

$x_{\lt i}$ と $z_i$ の両方に依存する場合(プロンプトを条件とする生成など)もあります。

具体例:自己回帰言語モデル(LLM の多く)は従属のケースです。系列長 $T$ の 1 本の系列について、$i\to t$、$n\to T$ と読み替え、モデルの予測分布を $q_\theta(x_t\vert x_{\lt t})$ と書きます($q_\theta$ は上記の $p$ にあたります)。位置 $t$ ごとに条件付き分布(softmax の出力)は変わりますが、それを決めるパラメータ(重み)$\theta$ は全位置で共有されています。

\[L(\theta) = \prod_{t=1}^{T} q_\theta(x_t\vert x_{\lt t})\]

i.i.d. の場合(特殊ケース)

$x_1,\dots,x_n$ が独立に同一の分布 $p(\,\cdot\,;\theta)$ から生成されたと仮定すると、$p(x_i\vert x_{\lt i};\theta) = p(x_i;\theta)$ となり、連鎖律が単一の関数 $p$ の積に単純化されて定義は以下になります。

\[L(\theta) = \prod_{i=1}^{n} p(x_i;\theta)\]

以降のベルヌーイ分布カテゴリカル分布の節では、i.i.d. を仮定して尤度関数を考えます。

対数尤度

積だと微分が煩雑なので対数を取り、和の形に変換します。

一般形:

\[\log L(\theta) = \sum_{i=1}^{n} \log p(x_i\vert x_{\lt i};\theta)\]

i.i.d. の場合:

\[\log L(\theta) = \sum_{i=1}^{n} \log p(x_i;\theta)\]

対数を取っても問題ないのは、$\log$ が単調増加関数だからです。$L(\theta)$ を最大にする $\theta$ と $\log L(\theta)$ を最大にする $\theta$ は一致します。また、確率の積は小さな値の掛け算になるため、数値計算ではアンダーフローしやすく、和に変えることで避けられます。

注意点は次の 2 つです。

  • 観測値の確率が 0 になる $\theta$ では $L(\theta)=0$、$\log L(\theta)=-\infty$ となり、最大化の候補から外れます。
  • 以降の式に出てくる $x\log p$ の形の項で、$x=0$ かつ $p=0$ の場合の $0\cdot\log 0$ は $0$ と約束します。

ベルヌーイ分布

ベルヌーイ試行の観測値を ${x_1, x_2, \dots, x_n}$(各 $x_i\in{0,1}$)とします。成功確率を $p$($0\le p\le 1$)とし、各試行は独立に同一の分布に従うと仮定します。この節ではパラメータ $\theta$ が $p$ です。これは確率そのものがパラメータになる場合の読み替えで、後述の分類器のように確率が重み $\theta$ と入力から計算される場合は $\theta\neq p$ です。

二項分布との違いに注意してください。試行回数 1 の二項分布ベルヌーイ分布です。二項分布では「$m$ 回中の成功回数 $k$」1 個が観測値になり、確率質量関数に二項係数 $\binom{m}{k}$ が付きます($p$ に依存しないので、$p$ についての最大化には影響しません)。ここでは 0/1 の個別の結果 $n$ 個が観測値なので、この係数は現れません。

尤度関数

ベルヌーイ分布の確率質量関数は $p(x;\theta)=p^{x}(1-p)^{1-x}$ です。ベルヌーイ分布尤度関数は以下のとおりです。

\[L(p) = \prod_{i=1}^{n} p^{x_i}(1-p)^{1-x_i}\]

$k=\sum_{i=1}^{n}x_i$(成功の総数)とおくと、$L(p)=p^{k}(1-p)^{n-k}$ とも書けます。

対数尤度関数

積(総乗 $\prod$)のままだと微分が複雑になるため、全体の自然対数($\log$)を取って、計算しやすい和(総和 $\sum$)に変換します。積の対数は対数の和、冪の対数は係数になります。

\[\begin{aligned} \log L(p) &= \sum_{i=1}^{n} \log \left( p^{x_i}(1-p)^{1-x_i} \right) \\ &= \sum_{i=1}^{n} \left( x_i \log p + (1-x_i)\log(1-p) \right) \end{aligned}\]

上記の符号を反転した負の対数尤度は、2 クラス分類のニューラルネットワークの損失関数(2 クラスの場合の交差エントロピー)の形です。

\[-\sum_{i=1}^{n} \left( x_i \log p + (1-x_i)\log(1-p) \right)\]

実際の損失関数では通常 $n$ で割って平均を取ります。また、分類器では成功確率が入力ごとに変わり、$\pi_i = \sigma(f_\theta(z_i))$($\sigma$:シグモイド関数、$f_\theta$:ネットワーク、$z_i$:入力)となります。この場合、$\theta$ はネットワークの重みで、$\theta\neq p$ です。また、これは「独立だが同分布でない」ケースにあたり、尤度関数は以下です。

\[L(\theta)=\prod_{i=1}^{n} \pi_i^{x_i}(1-\pi_i)^{1-x_i}\]

カテゴリカル分布

カテゴリカル分布尤度関数について記載します。

前提条件

  • $N$:観測値の数(データ数)
  • $M$:カテゴリ数
  • $\boldsymbol{x}^i$:$i$ 番目の観測値。one-hot ベクトル $\left(x^i_1, \ldots, x^i_M \right)$
    • $x^i_j$:$i$ 番目の観測値がカテゴリ $j$ に属する場合 $1$、そうでなければ $0$($\sum_{j=1}^{M} x^i_j = 1$)
  • $\boldsymbol{p}$:$\left( p_1, \ldots, p_M \right)$:確率ベクトル(パラメータ)
    • $p_j$:カテゴリ $j$ の確率。$p_j \ge 0$、$\sum_{j=1}^{M} p_j = 1$ を満たす

観測値は独立に同一の分布に従うと仮定します。

多項分布との違いに注意してください。多項分布は「$N$ 回の試行で各カテゴリが何回出たか」$(N_1,\dots,N_M)$ を 1 つの観測値とし、確率質量関数に多項係数 $\frac{N!}{N_1!\cdots N_M!}$ が付きます。ここでは個別の one-hot ベクトル $N$ 個を観測値とするため、この係数はありません(係数は $\boldsymbol{p}$ に依存しないので、$\boldsymbol{p}$ についての最大化には影響しません)。

尤度関数

カテゴリカル分布の確率質量関数は $p(\boldsymbol{x};\boldsymbol{\theta}) = \prod_{j=1}^{M} p_j^{x_j}$ です。

この節ではパラメータ $\boldsymbol{\theta}$ を $\boldsymbol{p}$ と書きます。これは確率ベクトルそのものが未知のパラメータである場合の読み替えです。LLM のように、確率ベクトルが重み $\theta$ と文脈から計算される場合は $\theta\neq\boldsymbol{p}$ です。

$N$ 個の観測値が同時に発生する同時確率を求めます。独立同分布の仮定により、すべてのデータの確率質量関数を掛け合わせます。

\[\begin{aligned} L(\boldsymbol{p}) &= \prod_{i=1}^{N} p(\boldsymbol{x}^i;\boldsymbol{p}) \\ &= \prod_{i=1}^{N}\prod_{j=1}^{M} p_j^{x^i_j} \end{aligned}\]

$\prod_{j=1}^{M} p_j^{x^i_j}$ は $i$ 番目の観測値について計算しています。 $x^i_j$ は $i$ 番目の観測値がカテゴリ $j$ に属する場合 $1$、そうでなければ $0$ です。

具体例

  • $M=6$、$\boldsymbol{p}$:$\left( p_1, p_2, p_3, p_4, p_5, p_6 \right)$
  • $\boldsymbol{x}^1 = \left(0, 0, 1, 0, 0, 0 \right) $:3 番目のカテゴリ($j=3$)に属する場合
\[\begin{aligned} \prod_{j=1}^{M} p_j^{x^1_j} &= p_{1}^0 \times p_{2}^0 \times p_{3}^1 \times p_{4}^0 \times p_{5}^0 \times p_{6}^0 \\ &= 1 \times 1 \times p_3 \times 1 \times 1 \times 1 \\ &= p_3 \end{aligned}\]

対数尤度関数

積(総乗 $\prod$)だと微分が複雑になるため、全体の自然対数($\log$)を取って和(総和 $\sum$)の形に変換します。積の対数は対数の和、冪の対数は係数になります。

\[\begin{aligned} \log L(\boldsymbol{p}) &= \log \left( \prod_{i=1}^{N} \prod_{j=1}^{M} p_j^{x^i_j} \right) \\ &= \sum_{i=1}^{N} \sum_{j=1}^{M} \log p_j^{x^i_j} \\ &= \sum_{i=1}^{N} \sum_{j=1}^{M} x^i_j \log p_j \end{aligned}\]

ここで、$\sum_{i=1}^{N} x^i_j$ に注目します。
これは $N$ 回の試行のうち、$j$ 番目の選択肢が選ばれた合計回数を表しています。
これを $N_j$ と置き換えて式を整理します($\sum_{j=1}^{M} N_j = N$ です)。

\[\log L(\boldsymbol{p}) = \sum_{j=1}^{M} N_j \log p_j\]

負の対数尤度 $-\sum_{j=1}^{M} N_j \log p_j$ は、多クラス分類の交差エントロピー損失に対応します。分類器では確率が入力ごとに変わり(softmax の出力 $\boldsymbol{\pi}^i$)、$-\sum_{i=1}^{N}\sum_{j=1}^{M} x^i_j \log \pi^i_j$ の形になります。

$N_j$ の導入(和の順序の入れ替え)

$\sum_{i=1}^{N} x^i_j$ を作る過程を補足します。

ステップ 1. 和の順序を入れ替える:

\[\sum_{i=1}^{N} \sum_{j=1}^{M} x^i_j \log p_j = \sum_{j=1}^{M} \sum_{i=1}^{N} x^i_j \log p_j\]

$i$ と $j$ の和は有限個の項の合計なので、どちらを先に足しても結果は変わりません($i=1,\dots,N$ と $j=1,\dots,M$ のすべての組み合わせについて $x^i_j \log p_j$ を足し合わせているだけなので、ループの順序を入れ替えても総和は同じです)。

ステップ 2. $i$ に依存しない項を内側の和の外に出す:

$\log p_j$ は $j$ だけで決まり、$i$ には依存しないので、$\sum_{i=1}^{N}$ の中では定数として扱えます。

\[\begin{aligned} \sum_{i=1}^{N} x^i_j \log p_j &= \left( \sum_{i=1}^{N} x^i_j \right) \log p_j \\ \sum_{j=1}^{M} \sum_{i=1}^{N} x^i_j \log p_j &= \sum_{j=1}^{M} \left( \sum_{i=1}^{N} x^i_j \right) \log p_j \end{aligned}\]

最尤推定法(Maximum Likelihood Estimation)

最尤推定は、尤度関数を最大化するパラメータを推定値とする方法です。対数は単調増加なので、対数尤度を最大化しても同じ結果になります。

\[\hat{\theta} = \underset{\theta}{\arg\max}\; L(\theta) = \underset{\theta}{\arg\max}\; \log L(\theta)\]

$\arg\max$ は一般には集合で、最大点が複数ある場合もあります。

観測値の関数として見た $\hat{\theta}$ を最尤推定量、実際の観測値を代入して得られた値を最尤推定値と呼びます。
最尤推定法の詳細は 最尤推定法 を参照してください。