ディープラーニングE資格

【基礎から理解しよう】KLダイバージェンスの意味

今回は機械学習で登場するKLダイバージェンス(カルバック・ライブラー情報量)の意味について解説してみたいと思います。先に結論だけ書いておくと、KLダイバージェンスは次のような数式で記述されます。

$D_{KL}(P||Q) = \int_{-\infty}^{\infty}p(x) \log \frac{p(x)}{q(x)}dx$

機械学習ではある程度の数学の理解が必須ですが、このKLダイバージェンスはその中でも分かりづらい概念だと思います。なぜなら、微積分・確率・線形代数などは基礎を高校数学で勉強するためとっつき易い一方で、KLダイバージェンスが登場する情報理論は馴染みがないことが多いからです。私自身も初めて見た時はよく意味が分からず苦労したので、ここでは少しでも概念的に分かりやすくなるよう説明したいと思います!!

まずは「情報量」の理解をしよう

KLダイバージェンスの話に入る前に、まずは「情報量」というものを理解していきます。

情報量というのは、言葉で言えば「ある情報を知った時にどのくらいインパクトがあるか」を表す指標です。意味としては以上なのですが、これを何とか数式を用いて表現してみたいと思います。

例えば、合格率10%の試験があるとします。この試験で「A君が合格した」という情報と「A君が落第した」という情報のどちらがインパクトが大きいと感じますか?直感的に前者の方が情報としてインパクトがありそうですよね。なぜなら、合格率10%の試験においては合格する方が稀なので、合格の方がレア情報になるからです。ここから言えることは、確率の小さい事象の方が情報量は大きくなるということです。つまり、数式で言えば情報量は確率の逆数を含むのが妥当そうですね。

また別の例として、「A君が倍率1000倍の抽選に当たった」という情報を得たとしましょう。これは「A君が試験に合格した」という情報とは全く独立なので、これら2つの情報から得られる情報量は足し算になると考えるのが妥当そうです。一方で、先ほど「確率」を持ち出しましたが、確率においては独立な2つの事象が起きた時の確率はそれぞれの事象の確率の掛け算になります。つまり、掛け算であったものを足し算で表現する必要があるということになるので、対数を使って表すのがよさそうです。

ここまでで述べたことを数式にしてみましょう。確率変数$X$(例えばサイコロの目など)が$x$である確率を$p(x)$とすれば、情報量は次のように表すことができます。

情報量 $\equiv\log_2\frac{1}{p(x)} (=-\log_2{p(x)}$)

例えば、上記の試験で言うと、合格率は10%なので、「A君が合格した」の情報量は$log_2{10}$となります。一方で、「A君が落第した」は$log_2\frac{10}{9}$なので、前者の方が確かに大きいですね。また、もう1つの例である 「A君が倍率1000倍の抽選に当たった」 と「A君が合格した」は独立の事象なので、同時に起こる確率は、それぞれの確率の積で計算可能です。それを情報量に当てはめてみると・・・

情報量$=-\log_2{(\frac{1}{10}\times\frac{1}{1000})}=-1\times(\log_2{\frac{1}{10}}+\log_2{\frac{1}{1000}})$

という計算になるので、情報量においては独立な事象は和として扱われることがご理解いただけるかと思います。

ちなみに、情報量を表す際には単位はbitを使用します。

さて、ここまででKLダイバージェンスの前提になる「情報量」を定義しましたので、次は一歩進んで「シャノンエントロピー」について説明しようと思います。

確率変数そのものの情報量を表すシャノンエントロピー

さて、先ほどは試験に合格した場合の情報量は○○、試験に落第した場合の情報量は△△というような計算を行ないました。それでは、そもそも「(結果に依らず)試験を受ける」という行為の情報量はどう考えられるでしょうか?

これに答えるのがシャノンエントロピーです。シャノンエントロピーは情報量の期待値として定義されるので、次のような数式で表現することができます。

シャノンエントロピー $=-\int p(x)\log_2{p(x)} dx$

期待値なので、確率と情報量を掛け合わせてxが取りうる値の全範囲に対して積分を行なうということですね。直感的には「確率事象(サイコロを振るなど)において平均的にどのくらいの情報量が得られるのか」を表す指標と思ってもらえばよいと思います。さらに理解を深めるために、次のような例でシャノンエントロピーを計算してみましょう。

おみくじ

p(大吉)=$\frac{1}{10}$, p(中吉)= $\frac{2}{5}$, p(小吉)= $\frac{2}{5}$, p(凶) = $\frac{1}{10}$

定義に従って情報量を計算すると次のようになります。

シャノンエントロピー $= -\frac{1}{10}\log_2{\frac{1}{10}}- \frac{2}{5}\log_2{\frac{2}{5}} -\frac{2}{5}\log_2{\frac{2}{5}}- \frac{1}{10}\log_2{\frac{1}{10}} \approx 1.7bit$

ここまでで、シャノンエントロピーの意味や計算はご理解いただけたと思います。ではもう一歩踏み込んで、なぜエントロピーと呼ばれるのかを考えてみましょう(シャノンは人名です)。

エントロピーとはもともと熱力学の用語で「乱雑さ」や「ランダム性」を表す指標です。異分野の話なので、ここでは詳細は割愛しますが、このエントロピーはよりランダムな分布(偏りがなく均一な分布)になっている方が大きくなるという性質を持っています。

それでは、果たしてシャノンエントロピーも同様なのでしょうか?先ほどのおみくじの例で全ての事象の確率を均一(つまり全て確率は$\frac{1}{4}$)にして、シャノンエントロピーを再計算してみましょう。

シャノンエントロピー $= -\frac{1}{4}\log_2{\frac{1}{4}}- \frac{1}{4}\log_2{\frac{1}{4}} -\frac{1}{4}\log_2{\frac{1}{4}}- \frac{1}{4}\log_2{\frac{1}{4}} = 2bit$

確率分布のランダム性を大きく(より均一に)したら、シャノンエントロピーも大きくなりましたね。つまり、熱力学のエントロピーと似たような性質を持っていることから、シャノンエントロピーと呼ばれているわけですね。

KLダイバージェンスの本質を掴もう

さて、ここまで確率変数としておみくじなど非常に単純な例を扱ってきましたが、実際の世界では必ずしも話はそう簡単ではありません。そのように確率分布$p(x)$が非常に複雑な場合には、$p(x)$をよく知っている分布$q(x)$(例えば正規分布など)で近似して考えよう、といったアプローチが取られます。ただ、その際には必然的に「$q(x)$はちゃんと$p(x)$を近似できているのか?」という疑問が湧いてくると思います。そんな疑問に答えてくれるのがこれから話すKLダイバージェンスなのです。

さて、先ほど学んだシャノンエントロピーの一部を$q(x)$で置き換えてみます。

-$\int p(x)\log_2{q(x)} dx$

これは交差エントロピーと呼ばれますが、これともともとの$p(x)$のエントロピーの差分を計算することで、「$p(x)$と$q(x)$がどれだけ近しいか?」を見ることができるのです。そしてこの差分を表す量こそがKLダイバージェンスなのです。

$D_{KL}(P||Q)$

$= -\int p(x)\log_2{q(x)} dx ~-~ ( -\int p(x)\log_2{p(x)} dx) $

$= \int p(x) \log \frac{p(x)}{q(x)}dx$

数式を見れば分かるように、仮に$p(x)$と$q(x)$が全く同じものであれば、(真数が$1$となるため)KLダイバージェンスはゼロになります。一方で、$p(x)$と$q(x)$が全く異なる分布であれば、KLダイバージェンスはどんどん大きくなっていきます。

以上のように、KLダイバージェンスは2つの確率分布の類似度合いを評価するための指標として利用価値があるのです。

KLダイバージェンスの活用事例

少し複雑な話になるかもしれませんが、最後にKLダイバージェンスの活用事例を紹介します。

近年流行りの画像生成技術としてオートエンコーダーと呼ばれるものがあります。その技術を使って、次のような手書き数字の画像を生成したいとします。

手書き文字のサンプル

手書き数字を生成するためには、既存の画像から潜在的な特徴(変数)を掴んで、その変数たちを活用して新たな画像を生成することになります。例えば、上記の画像はもともと28 x 28の画像ですが、仮にこれらの画像の潜在的な変数は$Z1$と$Z2$の2つであると分かったとしましょう。いろいろな数字の画像を自由に作り出すためには、「4であれば$Z1$と$Z2$はこのくらいの値の範囲に分布している。また5であれば $Z1$と$Z2$はこのくらいの値の範囲に分布している」のように、各数値を表すような$Z1$と$Z2$の分布を知る必要があります。

ただし、この厳密な分布を把握するのはほとんど不可能であるため、実際には正規分布で近似することを試みます。正規分布のパラメータ(平均値と標準偏差)をいろいろ変えながら、何とか現実の潜在変数と近い分布になるように合わせ込みを行なうのです。

この時に「どのくらい正規分布が真の潜在変数の分布に近しいか?」を評価するのにKLダイバージェンスが使われます。さらに言えば、KLダイバージェンスの値が小さくなるように、パラメータが調整されていくことになるのです。

まとめ

随分長くなってしまいましたが、KLダイバージェンスをご理解いただけたでしょうか?

最初にも述べたように、私も始めは馴染みが薄く苦労したのですが、徐々に慣れていくと思います。

本格的にデータサイエンスを学ぶならキカガク長期コース

本記事では、基礎的な内容について解説を行ないましたが、より本格的にデータサイエンスを学んでみたいという方にはキカガク長期コースの受講をお薦めします。

キカガク長期コースのメリット
  • 基礎理論からAI搭載のWEBアプリ開発まで幅広く学習可能
  • 将来追加されるものも含めて、プロによる全ての講義動画がずっと見放題
  • 質問し放題のチャットや定期的な個別メンタリングなどのサポート体制
  • IT専門のキャリアアドバイザーによる転職サポート
  • 中央省庁からの給付金対象であるため受講料が最大70%
  • ディープラーニングE資格の受験資格を獲得可能

興味はあるけど、いきなり受講を申し込むには抵抗があるという方は、キカガク長期コースの無料オンライン説明会も是非活用してみてください!

ABOUT ME
keikesu
電気機メーカーのエンジニア、オフィス・工場向けIOTシステムエンジニアを経て、現在は大手のコンサルティングファームに在籍し、様々な組織のDXを支援するITコンサルタントをしています。 JDLA G検定・E資格を取得しているので、このブログではディープラーニング(主に資格試験関連)の基礎的な内容を投稿しています。