klダイバージェンスの計算方法は?公式と求め方も!(カルバック・ライブラー情報量・相対エントロピー・確率分布・対数・連続分布・離散分布など)
機械学習や統計学を学んでいると、klダイバージェンスという言葉に出会う場面が多くあります。
正式にはカルバック・ライブラー情報量と呼ばれ、二つの確率分布がどれくらい異なっているかを数値化する指標です。
しかし、名前が難しいだけでなく、公式に対数や積分、総和が登場するため、最初は戸惑ってしまう方も多いのではないでしょうか。
特に連続分布と離散分布で計算方法が変わる点や、相対エントロピーという別名との関係性は、混乱しやすいポイントです。
この記事では、klダイバージェンスの基本的な考え方から公式の意味、実際の求め方までを順番に解説していきます。
数式だけを覚えるのではなく、なぜその式になるのかという背景も含めてお伝えしますので、最後まで読めば計算の流れがしっかりつかめるはずです。
確率分布の比較に興味がある方、機械学習モデルの評価指標を理解したい方は、ぜひ参考にしてみてください。
klダイバージェンスの計算方法の結論とは
それではまずklダイバージェンスの計算方法について、結論からお伝えしていきます。
klダイバージェンスとは、二つの確率分布PとQがどれくらい離れているかを表す指標です。
結論から言うと、klダイバージェンスは分布Pの確率と、分布Pに対する分布Qとの対数比を掛け合わせて総和または積分を取ることで求められます。
離散分布の場合は総和、連続分布の場合は積分を使うという違いはありますが、基本的な考え方は同じです。
離散分布の場合の公式は次の通りです。
KL(P||Q) = Σ P(x) log( P(x) / Q(x) )
連続分布の場合の公式は次の通りです。
KL(P||Q) = ∫ P(x) log( P(x) / Q(x) ) dx
この式が示しているのは、真の分布Pを基準にしたとき、近似分布Qがどれだけ情報量のズレを生んでいるかということです。
値が0に近いほど二つの分布は似ており、値が大きいほど分布同士の差が大きいと解釈できます。
なお、klダイバージェンスは常に0以上の値を取り、PとQが完全に一致する場合のみ0になります。
このあたりの性質については、後ほど詳しく確認していきます。
まずは総和もしくは積分の中身に、対数比という要素が入っているという点をしっかり押さえておきましょう。
この構造を理解しておくと、以降の解説がぐっと理解しやすくなるはずです。
カルバック・ライブラー情報量とはどんな概念か
続いてはカルバック・ライブラー情報量という概念そのものについて確認していきます。
klダイバージェンスは、統計学者のソロモン・カルバックとリチャード・ライブラーによって提案された指標です。
そのため正式名称はカルバック・ライブラー情報量と呼ばれ、英語ではKullback Leibler divergenceと表記されます。
この指標は、情報理論という分野の中で生まれた概念であり、もともとは通信や符号化の効率を測るために考案されました。
情報理論では、ある事象がどれだけ起こりにくいかを対数で表現し、それを情報量と呼びます。
klダイバージェンスは、この情報量の考え方を二つの確率分布の比較に応用したものと言えるでしょう。
相対エントロピーという呼び方について
klダイバージェンスは、相対エントロピーという別名でも呼ばれています。
エントロピーとは、ある確率分布の不確実性や乱雑さを表す指標のことです。
相対エントロピーという名前は、基準となる分布に対して、もう一方の分布がどれだけ余分な不確実性を持つかを示していることに由来します。
つまり、単なる分布の乱雑さではなく、二つの分布間の相対的な差を測る点がポイントです。
距離ではなく divergence と呼ばれる理由
klダイバージェンスは日本語で乖離度や発散度と訳されることもありますが、数学的には距離とは呼びません。
なぜなら、通常の距離が満たすべき対称性という性質を持っていないからです。
具体的には、KL(P||Q)とKL(Q||P)は一般的に異なる値になります。
この非対称性こそが、klダイバージェンスをdivergenceと呼ぶ理由であり、距離ではなく擬距離と表現されることもあります。
情報理論における位置づけ
klダイバージェンスは、情報理論におけるエントロピーや相互情報量と密接に関わっています。
エントロピーが一つの分布の不確実性を測るのに対し、klダイバージェンスは二つの分布の関係性を測るという違いがあります。
また、機械学習の分野では、モデルが出力する予測分布と、実際の正解分布とのズレを測る損失関数としても利用されています。
交差エントロピー損失の背後にklダイバージェンスの考え方が隠れていることも、覚えておくとよいでしょう。
離散分布におけるklダイバージェンスの求め方
続いては離散分布の場合のklダイバージェンスの求め方について確認していきます。
離散分布とは、サイコロの出目やコインの表裏のように、取りうる値が飛び飛びである確率分布のことです。
離散分布におけるklダイバージェンスの公式は、先ほど紹介した通り総和を用いた形になります。
KL(P||Q) = Σ P(x) log( P(x) / Q(x) )
ここでxは確率変数が取りうるすべての値を意味します。
計算の手順としては、まずすべての事象について確率P(x)とQ(x)を求める必要があります。
次に、それぞれの事象ごとにP(x)をQ(x)で割り、その結果に対数を取ります。
そして、その対数の値にP(x)を掛け合わせ、すべての事象について合計します。
この一連の流れが、離散分布におけるklダイバージェンスの求め方です。
具体的な計算例で確認する
言葉だけでは分かりにくいため、簡単な例を使って計算してみましょう。
| 事象x | P(x) | Q(x) |
|---|---|---|
| A | 0.5 | 0.3 |
| B | 0.3 | 0.4 |
| C | 0.2 | 0.3 |
KL(P||Q) = 0.5 log(0.5/0.3) + 0.3 log(0.3/0.4) + 0.2 log(0.2/0.3)
計算すると、およそ0.055となります。
この値が0に近いことから、分布Pと分布Qは比較的似た分布であると解釈できます。
もし分布Pと分布Qが完全に一致していれば、この値は0になっていたはずです。
対数の底に注意する
klダイバージェンスの計算では、対数の底を何にするかによって単位や値の大きさが変わります。
情報理論の分野では底を2とすることが多く、この場合の単位はビットと呼ばれます。
一方、機械学習の分野では自然対数、つまり底をeとすることが一般的で、この場合の単位はナットと呼ばれます。
どちらを使っても分布間の大小関係は変わりませんが、数値そのものを比較する際には底を統一しておく必要がある点に注意しましょう。
Q(x)が0になる場合の扱い
計算の際に気をつけたいのが、Q(x)が0になってしまうケースです。
この場合、P(x)/Q(x)が無限大になってしまい、klダイバージェンスが定義できなくなってしまいます。
そのため、klダイバージェンスを計算する際には、Qがゼロを取る事象に対してPもゼロである必要があるという条件が求められます。
これはklダイバージェンスの絶対連続性と呼ばれる性質に関わる話であり、実務上は注意深く分布を設計する必要があるでしょう。
連続分布におけるklダイバージェンスの求め方
続いては連続分布の場合のklダイバージェンスの求め方について確認していきます。
連続分布とは、身長や気温のように、取りうる値が連続的に変化する確率分布のことです。
連続分布の場合、確率質量関数の代わりに確率密度関数を用いるため、公式も積分の形になります。
KL(P||Q) = ∫ P(x) log( P(x) / Q(x) ) dx
積分区間は、確率変数xが取りうる全範囲です。
離散分布の総和が連続分布では積分に置き換わるだけで、対数比を用いるという基本的な発想は変わりません。
正規分布同士の場合の計算
連続分布の中でも特によく使われるのが正規分布です。
二つの正規分布のklダイバージェンスは、平均と分散が分かっていれば、積分計算を行わずとも解析的な公式で求めることができます。
平均μ1、分散σ1の2乗を持つ分布Pと、平均μ2、分散σ2の2乗を持つ分布Qについて、klダイバージェンスは次の式で表されます。
KL(P||Q) = log(σ2/σ1) + (σ1の2乗 + (μ1-μ2)の2乗) / (2σ2の2乗) – 1/2
この公式を覚えておくと、正規分布同士の比較を積分計算なしで行うことができ、実務でも非常に役立ちます。
この公式は、機械学習における変分オートエンコーダなどのモデルでも頻繁に登場するため、覚えておくと理解がスムーズになるでしょう。
積分計算が難しい場合の近似方法
連続分布の中には、積分を解析的に解くことが難しいものも存在します。
このような場合には、モンテカルロ法と呼ばれる手法を用いて、サンプルを大量に生成し、その平均値からklダイバージェンスを近似的に求める方法が取られます。
具体的には、分布Pからサンプルを多数取り出し、それぞれのサンプルについてlog(P(x)/Q(x))を計算し、その平均を取るという流れです。
サンプル数を増やすほど真の値に近づいていくため、計算資源とのバランスを考えながらサンプル数を調整することが重要になります。
数値積分を使う場合の注意点
解析的な公式が存在せず、モンテカルロ法も使いにくい場合には、数値積分によってklダイバージェンスを求める方法もあります。
台形則やシンプソン則といった数値積分の手法を用いることで、近似的な値を計算することが可能です。
ただし、積分区間を無限に取る必要がある分布の場合は、区間を適切に打ち切る工夫が必要になります。
打ち切り方が不適切だと、確率密度が小さい裾野の部分の影響を見落としてしまい、計算結果に誤差が生じることがあるため注意しましょう。
klダイバージェンスが持つ重要な性質
続いてはklダイバージェンスが持つ重要な性質について確認していきます。
計算方法を理解するだけでなく、性質を押さえておくことで、なぜこの指標が広く使われているのかが見えてくるはずです。
非負性という性質
klダイバージェンスの最も基本的な性質は、常に0以上の値を取るという非負性です。
これはギブスの不等式と呼ばれる数学的な定理によって証明されており、分布PとQがどのような形であっても、klダイバージェンスが負になることはありません。
また、KL(P||Q)が0になるのは、PとQがほぼすべての点で完全に一致する場合に限られます。
この性質があるからこそ、klダイバージェンスは分布間の乖離度を測る指標として信頼できるのです。
非対称性という性質
先ほども触れましたが、klダイバージェンスはKL(P||Q)とKL(Q||P)が一致しないという非対称性を持っています。
どちらの分布を基準に置くかによって値が変わるため、使用する際にはPとQのどちらが真の分布でどちらが近似分布なのかを明確にしておく必要があるでしょう。
この性質のために、klダイバージェンスをそのまま距離として扱うことはできません。
対称性が必要な場面では、JSダイバージェンスと呼ばれる別の指標が用いられることもあります。
三角不等式を満たさない性質
通常の距離であれば、三点間の距離について三角不等式が成立します。
しかし、klダイバージェンスはこの三角不等式を満たしません。
つまり、A、B、Cという三つの分布があった場合、KL(A||C)がKL(A||B)とKL(B||C)の和より大きくなることがあり得るということです。
この点も、klダイバージェンスが厳密な意味での距離ではなく、あくまで発散度を示す指標である理由の一つと言えます。
klダイバージェンスの活用場面と注意点
続いてはklダイバージェンスがどのような場面で活用されているのか、そして計算時の注意点について確認していきます。
klダイバージェンスは、理論だけでなく実際の機械学習モデルの中でも幅広く利用されている指標です。
| 活用場面 | 内容 |
|---|---|
| 機械学習の損失関数 | 予測分布と正解分布のズレを測る指標として利用 |
| 変分推論 | 近似分布と事後分布の乖離を最小化する目的で使用 |
| 自然言語処理 | 言語モデルの出力分布の評価に活用 |
| 強化学習 | 方策の更新幅を制御する指標として利用 |
特に変分オートエンコーダや強化学習の方策最適化アルゴリズムでは、klダイバージェンスが目的関数の一部として組み込まれることが多くあります。
これは、klダイバージェンスが分布同士の近さを定量的に表現できるという特性を活かしたものです。
ゼロ確率の扱いに関する注意
実務でklダイバージェンスを計算する際に最も注意すべきなのが、確率が0になる事象の扱いです。
先ほども触れましたが、Q(x)が0でP(x)が0でない場合、計算が破綻してしまいます。
これを避けるために、実際の計算ではラプラススムージングと呼ばれる手法を用いて、確率が0にならないよう微小な値を加える工夫がよく行われます。
サンプルサイズによる誤差の影響
実データから確率分布を推定してklダイバージェンスを計算する場合、サンプルサイズが小さいと推定誤差が大きくなってしまいます。
特に高次元のデータでは、サンプル数が十分でないと分布の推定自体が不安定になり、klダイバージェンスの値も信頼できないものになりがちです。
そのため、実務では十分なデータ量を確保するか、あるいはブートストラップ法などを用いて誤差の範囲を確認することが望ましいでしょう。
対称性が必要な場面での代替指標
klダイバージェンスの非対称性が問題になる場面では、JSダイバージェンスやワッサースタイン距離といった代替指標が使われることがあります。
JSダイバージェンスは、klダイバージェンスを対称化した指標であり、常に有限の値を取るという扱いやすさもメリットです。
用途に応じてどの指標を選ぶべきかを判断することが、正確な分析につながります。
まとめ
今回はklダイバージェンスの計算方法について、公式や求め方を中心に解説してきました。
klダイバージェンスは、カルバック・ライブラー情報量や相対エントロピーとも呼ばれ、二つの確率分布の乖離度を測る重要な指標です。
離散分布では総和、連続分布では積分を用いて計算し、正規分布同士であれば解析的な公式で簡単に求めることもできます。
また、非負性や非対称性といった性質を理解しておくことで、klダイバージェンスをより正確に使いこなせるようになるはずです。
機械学習や統計学の分野で頻繁に登場する概念ですので、公式の意味と計算の流れをしっかり押さえておきましょう。
ぜひ今回の内容を参考に、実際のデータや分布を使って計算に挑戦してみてください。