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

結合エントロピーなどの数式で用いられる期待値表記 $\mathbb{E}_{(x,y)\sim p(x,y)}[-\log_2 p(x,y)]$ についてのまとめです。

1. 記号の読み方と意味

\[\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)]$(中身):期待値を計算したい「対象の関数(ここでは自己情報量)」です。

つまり、言葉でそのまま翻訳すると:

「分布 $p(x, y)$ に従って生成される $(x, y)$ について、$-\log_2 p(x,y)$ の値を計算したときの平均値」

という意味になり、計算手順としては完全に $-\sum_{x,y} p(x,y)\log_2 p(x,y)$ と一致します。


2. なぜ総和($\sum$)ではなくこの表記を使うのか?

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

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

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

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

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

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

```python

\mathbb{E}_{(x,y) ~ p(x,y)} [ -log2 p(x,y) ] のコード表現(ミニバッチ処理)

p_xy: サンプルの発生確率 tensor

losses = -torch.log2(p_xy) joint_entropy = losses.mean() # サンプルの平均をとる=期待値 E の操作そのもの