尤度関数 | 確率・統計
この記事では、観測値が離散的な場合を扱います(連続の場合は確率質量関数を確率密度関数に読み替えます)。
観測値 $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$)に属する場合
対数尤度関数
積(総乗 $\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$ です)。
負の対数尤度 $-\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}$ を最尤推定量、実際の観測値を代入して得られた値を最尤推定値と呼びます。
最尤推定法の詳細は 最尤推定法 を参照してください。