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)とすれば, データを得ることによる自己情報量の変化は−logQ(x)−(−logP(x))=logQ(x)P(x)
後はxについて(事後分布の)期待値をとれば, ∑xP(x)logQ(x)P(x)としてKL(P∣∣Q)が導出される.
参考
Discussion