期待値
期待値表記 $\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 の操作そのもの