モデル分布関数がデータの理論的/真の分布とどれだけ異なるかということから、KL発散の背後にある直感について学びました。私が読んでいるソースは、これらの2つの分布間の「距離」の直感的な理解が役立つと言い続けていますが、2つの分布とではKL発散はと対称ではないため、文字通り解釈すべきではありません。
私は最後の声明を理解する方法がわかりません、またはこれは「距離」の直感が壊れるところですか?
シンプルだが洞察に満ちた例に感謝します。
モデル分布関数がデータの理論的/真の分布とどれだけ異なるかということから、KL発散の背後にある直感について学びました。私が読んでいるソースは、これらの2つの分布間の「距離」の直感的な理解が役立つと言い続けていますが、2つの分布とではKL発散はと対称ではないため、文字通り解釈すべきではありません。
私は最後の声明を理解する方法がわかりません、またはこれは「距離」の直感が壊れるところですか?
シンプルだが洞察に満ちた例に感謝します。
回答:
他の優れた答えに加えて、さらに直感を追加できる別の視点を持つ答えが求められました。
カルバック・ライブラー情報量がある どの分布がデータ X、 Pおよび Qを生成しているかに関する2つの仮説がある場合、 p (x )
特定の例でこれを見てみましょう。ましょうであるT ν -distribution及びQ(以下数値exampeにおける標準正規分布ν = 1)。発散を定義する積分は複雑に見えるので、Rで数値積分を使用します。
> lLR_1 <- function(x) {dt(x, 1, log=TRUE)-dnorm(x, log=TRUE)}
> integrate(function(x) dt(x, 1)*lLR_1(x), lower=-Inf, upper=Inf)
Error in integrate(function(x) dt(x, 1) * lLR_1(x), lower = -Inf, upper = Inf) :
the integral is probably divergent
> lLR_2 <- function(x) {-dt(x, 1, log=TRUE)+dnorm(x, log=TRUE)}
> integrate(function(x) dnorm(x)*lLR_2(x), lower=-Inf, upper=Inf)
0.2592445 with absolute error < 1e-07
最初のケースでは積分は、発散を示すこともある小さな、要約第二の場合に、非常に大きいまたは無限である数値発散するように思われる:
!役割を切り替えるのではなく、違いは主に外れ値の役割から生じます。
これはここでの私の答えに関連しています: なぜ通常のエラーの代わりにtエラーを使用する必要があるのですか?
この例を意図的に紹介しました。コインを100回投げていると想像してみましょう。このコインに偏りがない限り、投げる結果を0〜1ビットのシーケンス(1頭、0尾)でエンコードするだけです。頭の確率が尾の確率と同じで0.5に等しいような状況では、これは非常に効果的なエンコードです。現在、バイアスのかかったコインがいくつかあるため、ヘッドとテールのグループをマージし、kテールのシーケンスより長いコードでkヘッドのシーケンスを表すなど、より短いコードでより可能性の高い結果をエンコードします(より可能性が高い)。そして、ここでカルバック・ライブラー発散発生します。Pが結果の真の分布を表し、QがPの近似のみである場合、 は、実際にP distribからの結果をQ向けのエンコードでエンコードするときに支払うペナルティを示します(使用する必要がある追加ビットの意味でのペナルティ)。
単にメトリックが必要な場合は、Bhattacharyya距離を使用します(もちろん、修正バージョン)
私はここであなたの質問に純粋に直感的な答えをしたいと思います。言い換えると、KL発散は、ヒルベルト空間の2つのデータセット間の距離を計算するために、2つの分布間の距離を測定する方法ですが、注意が必要です。
どうして?KLの発散は、たとえばノルムなど、通常使用できる距離ではありません。確かに、2つの分布が等しい場合にのみ正であり、ゼロに等しくなります(距離を定義するための公理のように)。ただし、前述のとおり、対称ではありません。これを回避する方法はありますが、対称的でないことは理にかなっています。
確かに、KLダイバージェンスは、モデル分布間の距離を定義(あなたが実際に知っている)と、理論上1の、それは違った扱いすることは理にかなっていることなどの(「理論上」の距離する仮定をモデル)および(データ想定したからへの「経験的」距離)は、まったく異なる尺度を意味するためです。
教科書の「情報理論の要素」に例を示します。
たとえば、確率変数の真の分布pがわかっている場合、平均記述長H(p)のコードを作成できます。代わりに、分布qのコードを使用した場合、ランダム変数を記述するために平均でH(p)+ D(p || q)ビットが必要になります。
上記のステートメントを言い換えると、情報分布を(qからpに)変更する場合、新しい分布をコーディングするために平均でD(p || q)余分なビットが必要であると言えます。
これを自然言語処理での1つのアプリケーションを使用して説明します。
Bラベルされた人々の大規模なグループは、メディエーターであることを考慮して、それらのそれぞれは以下から名詞を選択するタスクを割り当てられturkey
、animal
そしてbook
与えるために、それらのそれぞれに電子メールを送信することが男の名前AがあるとCに送信しますそれらにいくつかのヒント。グループの誰もメールを受け取らなかった場合、眉を上げて、Cが何を必要としているかをしばらくの間ためらうかもしれません。また、各オプションが選択される確率は1/3です。全体的に均一な分布(そうでない場合、それは彼ら自身の好みに関連する可能性があり、そのような場合は無視します)。
しかし、のような動詞が与えられた場合baste
、3/4が選択しturkey
、3/16が選択されanimal
、1/16が選択されますbook
。それでは、動詞を知った後、各メディエーターが平均してどれくらいの情報をビット単位で取得しましたか?それは:
しかし、与えられた動詞がどうしたらread
?それらのすべてがbook
ためらうことなく選択すると想像するかもしれません。その場合、動詞からの各メディエーターの平均情報ゲインread
は次のとおりです。
read
が調停者により多くの情報を与えることができることがわかります。そして、それが相対エントロピーが測定できるものです。
話を続けましょう。Aが調停者に間違った動詞を送ることで間違いを犯したかもしれないとAが言ったので、Cが名詞が間違っている可能性があると疑う場合。それでは、このような悪いニュースはCにどの程度の情報を与えることができますか?
1)Aで与えられる動詞であった場合baste
:
2)しかし、もし動詞がread
どうだったとしたら?
Cは他の2つの名詞が何であるかを決して知らないので、語彙のどの単語も可能です。
KLの発散が非対称であることがわかります。
私が正しいことを願っています。そうでない場合は、コメントして修正してください。前もって感謝します。