離散確率分布(または離散確率変数)の期待値

離散確率分布 $p(X=x)$ の期待値は以下のとおりです。

\[E[X] = \sum xp(X=x)\]

連続確率分布(または連続確率変数)の期待値

連続確率分布 $f(x)$ の期待値は以下のとおりです。

\[E[X] = \int_{-\infty}^\infty xf(x)dx\]

$\mathbb{E}_{(x,y)\sim p(x,y)}$ 表記

分布 $p(x, y)$ に従って生成される $(x, y)$ について、$-\log_2 p(x,y)$ の値を計算したときの平均値を例に期待値表記 $\mathbb{E}_{(x,y)\sim p(x,y)}$ を考えます。

\[\mathbb{E}_{(x,y)\sim p(x,y)}[-\log_2 p(x,y)]\]
  • $\mathbb{E}$: Expectation(期待値)を表す記号です
  • ${(x,y)\sim p(x,y)}$:サンプル $(x, y)$ は、確率分布 $p(x, y)$ に従う(従う $\sim$ )という意味です
  • $[-\log_2 p(x,y)]$:期待値を計算したい対象の関数(例:自己情報量)です

$-\sum_{x,y} p(x,y)\log_2 p(x,y)$ と一致します。

$\mathbb{E}_{(x,y)\sim p(x,y)}$ 表記のメリット

総和表記 $\sum$ だけでなく、期待値表記 $\mathbb{E}$ が多用される理由とメリットは以下の3点です。

1. 離散型と連続型を統一して扱える

総和 $\sum$ は離散型でしか使えず、連続型になると二重積分 $\iint dxdy$ に書き直す必要があります。 $\mathbb{E}_{(x,y)\sim p(x,y)}[\dots]$ は、データが離散か連続かに関わらず同じ 1 つの式で記述できます。

2. モンテカルロ近似(サンプル平均)のコードにそのまま落とし込める

機械学習の実装では、確率分布の全パターンを $\sum$ で足し合わせるのが不可能なほど状態数が巨大(画像データなど)なことがほとんどです。

その場合、実際にデータセットからいくつかサンプル(ミニバッチ)を取り出して平均をとるモンテカルロ近似を行いますが、この期待値表記は実装コード( PyTorch など)と直感的に 1 対 1 対応します。

# E(x,y)~p(x,y)[-log2 p(x,y)] のコード表現(ミニバッチ処理)
# p_xy: サンプルの発生確率 tensor
losses = -torch.log2(p_xy)
# サンプルの平均をとる=期待値 E の操作そのもの
joint_entropy = losses.mean()