尤度関数 | 確率・統計
観測値 $x_1,\dots,x_n$ が得られたときの尤度関数は、観測値が得られる同時確率のことです。
尤度関数の式は同時確率の式と同じになります。同時確率の変数は確率変数の実現値(観測値)ですが、尤度関数では観測値を固定し、代わりに確率分布(またはそれを指定するパラメータ)を変数とみなします。尤度関数の変数を特にパラメータと呼ぶことがあります。
\[L(p) := p(x_1,\dots,x_n)\]同時確率は、確率の公理から導かれる連鎖律(chain rule)によって以下の形に分解できます。
\[p(x_1,\dots,x_n) = p(x_1)\,p(x_2\vert x_1)\,p(x_3\vert x_1,x_2)\cdots p(x_n\vert x_1,\dots,x_{n-1}) = \prod_{i=1}^{n} p(x_i\vert x_{<i})\]i.i.d. を仮定しない定義
推定対象は単一の $p$ ではなく、実質的に $n$ の分布の族 $p_1,\dots,p_n$(または、それらすべてを生成する共通パラメータ $\theta$)です。なので i.i. d を仮定しない厳密な定義は以下になります。
\[L(p_1,\dots,p_n) := \prod_{i=1}^n p_i(x_i\vert x_{<i})\]具体例:自己回帰言語モデル(LLM)の 予測分布 $q_{t}(x_{t}\vert x_{
i.i.d. を前提にした定義(特殊ケース)
$x_1,\dots,x_n$ が独立に同一の分布 $p$ から生成されたと仮定すると、連鎖律が単一の関数 $p$ の積に単純化されて定義は以下になります。
\[L(p) = \prod_{i=1}^{n} p(x_i) \quad p(x_i\vert x_{<i}) = p(x_i)\]ベルヌーイ分布・カテゴリカル分布の尤度関数は、i.i.d. 前提のケースにあたります
対数尤度
積だと微分が煩雑なので対数を取り、和の形に変換します。
\[\log L = \sum_{i=1}^{n} \log p(x_i\vert x_{<i}) \quad \text{(一般形)}\] \[\log L(p) = \sum_{i=1}^{n} \log p(x_i) \quad \text{(i.i.d.の場合)}\]ベルヌーイ分布
ベルヌーイ試行の観測値を ${x_1, x_2, .. x_n}$ とします。
二項分布の( 1 回の)試行ではなくべルーイ試行の n 個の観測値です。
尤度関数
\[L(p) = \prod_{i=1}^{n} p^{x_i}(1-p)^{1-x_i}\]対数尤度関数
積(総乗 $\prod$)のままだと微分が複雑になるため、全体の自然対数($\log$)を取って、計算しやすい和(総和 $\sum$)に変換します。
\[\begin{aligned} \log L(p) &= \sum_{i=1}^{n} \log p^{x_i}(1-p)^{1-x_i} \\ &= \sum_{i=1}^{n} \left( x_i \log p + (1-x_i)\log(1-p) \right) \end{aligned}\]上記を尤度関数" class="autolink-keyword">負の対数尤度関数に変換すると 2 クラス分類のニューラルネットワークの損失関数の形( 2 クラスの場合の交差エントロピー)です($-\sum_{i=1}^{n} \left( x_i \log p + (1-x_i)\log(1-p) \right)$)。
カテゴリカル分布
カテゴリカル分布の確率質量関数から、最も尤もらしいパラメータ $\boldsymbol{p}$ を導出します。
前提条件
- N:観測値の数(データ数)
- M:確率変数の次元数
- $\boldsymbol{x^i}$:i 番目の観測値。one-hot ベクトル $\left(x^i_1, \ldots, x^i_M \right)$
- $x^i_j$ : $i$ 番目の観測値がカテゴリ $j$ に属する場合 $1$、そうでなければ$0$
- $\boldsymbol{p}$:$\left( p_1, \ldots, p_{j} \right)$:確率分布
- $p_j$ : 各要素 $j$ の確率
尤度関数
$N$ 個の観測値がこのパターンで同時に発生する同時確率を求めます。 各試行は独立(無関係)に起きると仮定するため、単純にすべてのデータの確率質量関数を掛け合わせます。
\[\begin{aligned} L(\boldsymbol{p}) &= \prod_{i=1}^{N} P(\boldsymbol{x}^i\vert{}\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$ です。
具体例
- $\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 番目のカテゴリ($k=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} x^i_j \log p_j \end{aligned}\]ここで、$\sum_{i=1}^{N} x^i_j$ に注目します。
これは $N$ 回の試行のうち、 $j$ 番目の選択肢が選ばれた合計回数を表しています。
これを $N_j$ と置き換えて式を整理します。
$\sum_{i=1}^{N} x^i_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}\]