💡

【直観】KL forwardとKL reverseの違い

2023/07/19に公開

KL divergenceについての感覚的なところを備忘用にまとめておく.

KL forwardとKL reverseの違い

KL(P||Q)は「PからQへのdivergence」と読む.
変分推論など,Pが真の分布(ex. 観測値,データ,複雑),Qが近似分布(ex. 予測値,モデル,比較的シンプル)というような設定が多い.
KL(P||Q)の場合,Pで重み付けてQとの違いを見に行き,上記設定では特にKL forwardと呼ぶ.
KL(Q||P)の場合はその逆で,KL reverseと呼ぶ.
Pが複雑でQが比較的シンプルだとすると,KL forwardでは,QがPをカバーする(ある種ブロードな)分布であるほどdivergenceは小さくなる(スコア的に似る).
逆にKL reverseでは,QがPの特徴的な部分を捉えているほどdivergenceは小さくなる.
そのためKL reverseを指標とした方が近似分布Qの分散が小さくなるため,KL reverseの方がモデリングでは使われる傾向にある.


KL divergenceの覚え方

個人的にはベイズ的な解釈が覚えやすい.
KL(P||Q):「確率変数XについてPを事後分布, Qを事前分布として, データを得ることでXの自己情報量がどれだけ変化するか」と捉える.
Xの実現値がxとなるときの確率をQ(x), P(x)とすれば, データを得ることによる自己情報量の変化は-\log Q(x) - (-\log P(x)) = \log \frac{P(x)}{Q(x)}
後はxについて(事後分布の)期待値をとれば, \sum_{x} P(x) \log \frac{P(x)}{Q(x)}としてKL(P||Q)が導出される.


参考

Discussion