私は私のpythonコードでKL発散を使用するつもりで、このチュートリアルを手に入れました。
そのチュートリアルでは、KLの発散を実装するのは非常に簡単です。
kl = (model * np.log(model/actual)).sum()
私が理解したように、確率分布model
とは、actual
<= 1でなければなりません。
私の質問は、kの最大限界/最大可能値は何ですか?私のコードの上限については、kl距離の可能な最大値を知る必要があります。
私は私のpythonコードでKL発散を使用するつもりで、このチュートリアルを手に入れました。
そのチュートリアルでは、KLの発散を実装するのは非常に簡単です。
kl = (model * np.log(model/actual)).sum()
私が理解したように、確率分布model
とは、actual
<= 1でなければなりません。
私の質問は、kの最大限界/最大可能値は何ですか?私のコードの上限については、kl距離の可能な最大値を知る必要があります。
回答:
または、同じサポートでも、あるディストリビューションが他のディストリビューションよりもはるかに太いテールを持つ場合。取る とき then および ような制限されたままで他の距離が存在しますP (X )= コーシー密度⏞ 1
同じサポートを持たないディストリビューションの場合、KLの発散は制限されません。定義を見てください:
PとQが同じサポートを持たない場合、およびである点が存在し、KLが無限大になります。これは、離散分布にも当てはまります。 p (x ′)≠ 0 q (x ′)= 0
編集:たぶん、確率分布間の発散を測定するためのより良い選択は、いわゆるWasserstein距離でしょう。これは、メトリックであり、KL発散よりも優れた特性を持っています。ディープラーニングへの応用により非常に人気があります(WGANネットワークを参照)
CarlosとXi'anによる優れた答えに追加するために、KL発散が有限になるための十分な条件は、両方のランダム変数が同じコンパクトなサポートを持ち、参照密度が制限されることであることに注意することも興味深い。この結果は、KL発散の最大値の暗黙的な境界も確立します(以下の定理と証明を参照)。
定理:密度とが同じコンパクトなサポート持ち、密度がそのサポートに制限されている(つまり、有限の上限がある)場合、。
証明:はコンパクトなサポート持っているので、これはいくつかの正の無限値があることを意味します。
同様に、はコンパクトなサポート持っているため、これはいくつかの正の上限値があることを意味します。
今、せる後者の上限であることを、我々は明らかに持っていようそれ:0⩽ L _ <∞
これにより、必要な上限が確立され、定理が証明されます。