質問:
カルバック・ライブラー発散が、二乗誤差よりも2つの確率分布間の距離を測定するための優れたメトリックであるのはなぜですか?
Kadaj13
2019-06-01 13:24:52 UTC
view on stackexchange narkive permalink

KL発散は、確率が形成する数値間の距離を測定する場合に適したメトリックであることを知っています。ただし、確率数間の二乗誤差ではなく、KLダイバージェンスを使用する利点は何であるかまだ混乱しています。

誰かがこれを簡単な言葉で説明できれば幸いです。

https://stats.stackexchange.com/questions/188903/intuition-on-the-kullback-leibler-kl-divergence/189758#189758も参照してください
1 回答:
Skander H.
2019-06-01 16:05:00 UTC
view on stackexchange narkive permalink

概要:

  • KL-発散はシャノンエントロピーに由来します。
  • シャノンエントロピーは、分布が $ \ mathrm {P}(X)$ span>の信号Xに含まれる情報の量です。
  • クロスエントロピーは、信号Xを真ではなく、推定分布 $ \ mathrm {Q}(X)$ span>でエンコードしたときに信号Xに含まれる情報です。分布 $ \ mathrm {P}(X)$ span>。
  • KL-Divergenceは、「真の」シャノンエントロピーと「エンコードされた」クロスエントロピーの間の情報の違いです。
  • KL-Divergenceは非対称です。これは、 $ \ mathrm {P}(X)$ span>をを使用してエンコードすることで情報を取得すると、 span class = "math-container"> $ \ mathrm {Q}(X)$ span>の場合、逆の場合、 $ \ mathrm {Q}(X)$ span>は、 $ \ mathrm {P}(X)$ span>を使用します。高解像度のBMP画像を低解像度のJPEGにエンコードすると、情報が失われます。低解像度のJPEGを高解像度のBMPに変換すると、情報が得られます。 $ \ mathrm {Q}を使用して確率分布 $ \ mathrm {P}(X)$ span>をエンコードする場合も同様です。 (X)$ span>、またはその逆を行います。したがって、プロパティ: $$ D_ \ text {KL}(\ mathrm {P} \ parallel \ mathrm {Q})\ neq D_ \ text {KL}(\ mathrm {Q} \ parallel \ mathrm {P})$$ span> KL-Divergenceを類似性の尺度として使用すると、情報が一方の方法で失われ、もう一方の方法で取得されるという事実を表すため、実際には望ましいです。
  • 一方、二乗誤差は対称的です。 $$ SSE(P、Q)= SSE(Q、P)$$ span> そのため、類似性の尺度として $ SSE $ span>を使用すると、情報が一方の方向で失われ、もう一方の方向で取得されるという直感的な概念が適切に表現されません。

詳細:

KL発散を理解するには、まずシャノンエントロピーの概念を理解する必要があります。

$$ I(X)=-\ sum_ {i = 1} ^ n {\ mathrm {P}(x_i)\ log \ mathrm {P}(x_i)} $$ span>

シャノンエントロピー $ I(X)$ span>は、信号に含まれる情報量の尺度です $ X \ in \ {x_1、x_2、...、x_n \} $ span>は、分布 $ \ mathrm P(x_i)$ span>によって特徴付けられます。

つまり、 $ X $ span>の確率分布が $ \ mathrm P(x_i)$ 実験を行った後、結果が $ X = x_i $ span>であることがわかった場合、どのくらいの情報を学習または取得しますか。

これを確認するには、 $ \ mathrm P(x_i)= 1 $ span>が $ x_i $ 、その他すべての場合は0。したがって、イベント $ X = x_i $ span>は常に予期されていました(これは特定のイベントです)。実験の実行からは何も学習しません。したがって、この場合は $ X $ span>には情報がありません。計算を行うと、この場合は $ I(X)= 0 $ span>であることがわかります。

一方、すべてのiに対して $ \ mathrm P(x_i)= \ frac {1} {n} $ span>の場合、つまり、均一分布と $ X = x_i $ span>の任意の値も同様に可能性が高く、 $ I(X)の可能な最大値があります。 )$ span>、セット $ X $ span>が与えられます。

次に、クロスエントロピーを定義しましょう。これは、 $をモデル化した場合に、 $ X $ span>に含まれる情報の量です。 X $ span>は、実際の分布 $の代わりに、シミュレートされた分布 $ \ mathrm {Q}(x_i)$ span>を使用します。 \ mathrm {P}(x_i)$ span>:

$$ H(P、Q)=-\ sum_ {i = 1} ^ n {\ mathrm {P}(x_i)\ log \ mathrm {Q}(x_i )} $$ span>

簡単にするために、 $ I(X)$ spanの代わりに $ I(P)$ span>と記述します。 >、セット $ X $ span>は変更されないため。これで、KLダイバージェンスを確認できます。これは、真の分布 $ \ mathrm {P}(x_i)$ span>を使用した場合の情報の違いです。信号とシミュレートされた分布を表します $ \ mathrm {Q}(x_i)$ span>:

$$ D_ \ text {KL}(\ mathrm {P} \ parallel \ mathrm {Q})= H(P、Q)-I(P)$$

それでは、用語を入力しましょう:

$$ D_ \ text {KL}(\ mathrm {P} \ parallel \ mathrm {Q})=-\ sum_ {i = 1} ^ n {\ mathrm { P}(x_i)\ log \ mathrm {Q}(x_i)} + \ sum_ {i = 1} ^ n {\ mathrm {P}(x_i)\ log \ mathrm {P}(x_i)} $$ スパン>

そして単純化する:

$$ D_ \ text {KL}(\ mathrm {P} \ parallel \ mathrm {Q})=-\ sum_ {i = 1} ^ n {\ mathrm { P}(x_i)(\ log \ mathrm {Q}(x_i)}-\ log \ mathrm {P}(x_i))$$ span>

これは次のことにつながります:

$$ D_ \ text {KL}(\ mathrm {P} \ parallel \ mathrm {Q})=-\ sum_ {i = 1} ^ n \ mathrm {P }(x_i)\ log \ left(\ frac {\ mathrm {Q}(x_i)} {\ mathrm {P}(x_i)} \ right)$$ span>

これは二乗誤差を使用する場合とどう違うのですか? $ \ mathrm {Qを使用して $ \ mathrm {P}(x_i)$ span>を推定するときに発生する二乗誤差を考慮してください。 }(x_i)$ span>:

$$ SSE(P、Q)= \ sum_ {i = 1} ^ n(\ mathrm {P}(x_i)-\ mathrm {Q}(x_i)) ^ 2 $$ span>

この量は対称的です:

$$ SSE(P、Q)= SSE(Q、P)$$ span>

KL-Divergenceは対称的ではありません:

$$ D_ \ text {KL}(\ mathrm {P} \ parallel \ mathrm {Q})\ neq D_ \ text {KL}(\ mathrm {Q} \並列\ mathrm {P})$$ span>


Rの数値例:

  library(LaplacesDemon)#このライブラリをKLD関数に使用します
n = 10
p = 1/2
x = 0:10
P = dbinom(x、size = n、prob = p)
plot(x、P、type = "h"、xlim = c(-1,11)、ylim = c(0,0.5)、lwd = 2、col = "blue"、ylab = "P(X)")
points(x、P、pch = 16、cex = 2、col = "dark red")
 

enter image description here

  Q = dunif(x、min = 0、max = 10、log = FALSE)
    plot(x、Q、type = "h"、xlim = c(-1,11)、ylim = c(0,0.5)、lwd = 2、col = "blue"、ylab = "Q(X)")
    points(x、Q、pch = 16、cex = 2、col = "dark red")
 

enter image description here

  > P
 [1] 0.0009765625 0.0097656250 0.0439453125 0.1171875000 0.2050781250
 [6] 0.2460937500 0.2050781250 0.1171875000 0.0439453125 0.0097656250
 [11] 0.0009765625
 > Q
 [1] 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1
 > KLD(P、Q)
 ..。
  $ sum.KLD.px.py#これはKL-D(P || Q)です
 [1] 0.5219417
 $  span> sum.KLD.py.px
 [1] 1.077474#これはKL-D(Q || P)です
 
どうもありがとうございました。私は部分的に理解しています。しかし、これら2つの方法の違いをどういうわけかより深く理解できるように、数字を使用した簡単な例を教えてください。ありがとう
@Kadaj13編集を参照
どうもありがとうございました


このQ&Aは英語から自動的に翻訳されました。オリジナルのコンテンツはstackexchangeで入手できます。これは、配布されているcc by-sa 4.0ライセンスに感謝します。
Loading...