KATUBLO
2018年11月02日

【Deeplearning】交差エントロピーとは?

 

今回記事を書いた理由

交差エントロピーを理解する為

 

交差エントロピーとは?

「交差エントロピーやクロスエントロピー(英: cross entropy)とは、情報理論において2つの確率分布の間に定義される尺度である。符号化方式が、真の確率分布  p ではなく、ある所定の確率分布  q に基づいている場合に、とりうる複数の事象の中からひとつの事象を特定するために必要となるビット数の平均値を示すもの。」

 

といわれてもわけがわからないと思うので、用語用語1つずつ理解しながら全体の意味を理解してきましょう。

 

「2つの確率分布」

 

確率密度

確率分布とはなんでしょうか?「確率変数が取る値」と「確率変数が取る値に対応する確率の値」を「確率密度」といいます。確率変数というのは例をあげて説明すると、コインを投げた時、表なら、[math] X = 1 [/math]、裏なら、[math] X = 0 [/math] といったあらかじめある事象に対して紐付けられた値で表されます。表の時の確率は[math] P(1) = 1/2 [/math]です。

 

確率変数の個数が多くなると(連続的)、以下のグラフのような形状をとるようになるものもあります。任意のA、Bの2つの確率密度をグラフとして描いてみました。

確率分布関数

確率分布というのは確率変数Xがとる値がa(aは実数)以下である確率のことを指します。先ほどのサイコロの例を出して挙げると、確率変数Xがとる値が3以下である(サイコロの目が1、2、3のどれかである確率)は[math] 1/2[/math]となる。確率分布関数は一般的に確率変数がとる値が大きくなるにつれて、値が増加する性質がある。これは確率変数が大きくなるとより多くの事象を含むからである。サンプルがてら以下にサイコロを振ったときの確率分布の図を示します。

 

 

 

 

 「符号化方式」

あまり馴染みのない用語かもしれません。符号化方式というのは

 

「デジタル処理・伝送・記録のための、情報のデジタルデータへの変換方式のことである。変換されたデータを符号と呼び、符号から元の情報へ戻すことを復号と呼ぶ。」

出典: フリー百科事典『ウィキペディア(Wikipedia)』

 

「ある情報をデジタルに変換するときに用いられる手法」である。具体例をあげると、「あ」という文字をデジタルで表現しようとするとき、どのように表記するでしょうか?デジタルは「0」「1」の値しか持たないでのこの2つの値を組み合わせて、表現することになります。この変換方式を符号化方式といいます。

 

 

「符号化方式が、真の確率分布  p ではなく、ある所定の確率分布  q に基づいている場合」

符号化方式は一旦置いといて、先ほど、使った画像を利用して、[math]X = μ[/math]  確率分布p(図ではA)、確率分布q(図ではB)に基づいている場合の確率の差見てみましょう。

図からわかるように、基づく確率分布が変わると確率に差(GAP)が生まれる。これと同様なことが符号化方式の場合でも起きるということである。

 

「とりうる複数の事象の中からひとつの事象を特定する」

事象というのは抽象的なのでサイコロを例に出して具体例を挙げると

 

サイコロの目が1の事象

サイコロの目が6の事象

 

これらのパターンの中から1つのパターンを特定するということと意味的には同値です。

 

 

さらに具体例

 

エントロピーとは?

 

↑のサイトの解説を参考とし、部分部分掻い摘んで解説する。(省略する部分も多いので照らし合わせながら読んでください)

 

各国の天気の確率分布

 

 

 

各天気のエンコード方法

 

 

 

 

 

メモリの容量が1KB(8000bit)だとすると、

 

[math]\frac{8000[bit]}{2[bit]} =4000[日][/math]

 

のデータを保存できる。

 

 

 

しかし、このエンコード方法は無駄がある。なぜなら、B国では晴れの日が50%である為、エンコードした際に使うbit数を1にすると、容量を節約することができ、同じ8000bitのメモリで4500日以上分のデータを保存できる。

 

 

 

[math]H(P_b) = E_{P_b} [log_{2}(\frac1{P_{b}(\omega)})]  \\ =  0.5log_{2}(\frac1{0.5})+0.25log_{2}(\frac1{0.25}) \\ +0.125log_{2}(\frac1{0.125})+0.125log_{2}(\frac1{0.125}) = 1.75[/math]

 

 

最適なコードの割り当て方法は数学的証明により、求められており

 

[math]確率P(\omega)[/math]で起こる事象には長さ[math]log_2(\frac1{P(\omega)})[/math]のコードを割り当てるのが最適とされている。

 

また、期待値(1回の試行の結果を伝えるのに要する平均ビット数)をエントロピー(平均情報量)とよびます

 

 

交差エントロピーとは?

 

それぞれの国の最適エントロピーは、上のように数学的に求められます。

ここで、ある国の最適なエンロピーの求め方で、他の国のエンロトピーを求めてみよう。

 

[例]

B国の最適エントロピーの求め方で、A国のエントロピーを求める。

 

[math]E_b [log_{2}(\frac1{P_{b}(\omega)})]  \\ =  0.25log_{2}(\frac1{0.5})+0.25log_{2}(\frac1{0.25}) \\ +0.25log_{2}(\frac1{0.125})+0.25log_{2}(\frac1{0.125}) = 2.25[/math]

 

 

A国の最適エントロピーの求め方をしていないので、0.25[bit]分無駄が生じている。

 

 

このように、ある確率分布に最適化された方式で別の確率分布をエンコードした時の平均ビット長を「交差エントロピー」と呼ぶ。

定義式としてまとめると

 

 

[math]H(P.Q) = E_p [log_{2}(\frac1{Q(\omega)})]  \\ =  \sum_{\omega\subseteqq Ω} P(\omega)log(\frac1{Q(\omega)})[/math]

 

 

Qのエントロピー最適化法でPのエントロピーを求めたときの式である。

 

 

 

 

感想・気づき

交差エントロピーが表すことの全体像は掴めた気がする。次の記事ではもっと機械学習の現場で実践的にで使われているものを紹介しようと思います。

最後まで読んで頂き
ありがとうございました。
SNS等でのシェアが頂ければ幸いです。

プロフィール

@KATUO

現在都内私立大学に通う大学3年生。大学では電気電子工学を専攻。大学2年の夏頃に、プログラマーの長期インターン募集の広告が目に止まり、独学でプログラミングの学習をスタート。この時期からプログラミングにどハマりし、現在までに「AIスタートアップ」「Webマーケティング会社」でエンジニアとしての業務に没頭してきた。

過去の投稿