##はじめに
深層学習を勉強していると、分類タスクにおいてはCrossEntropyを使うのだということを知る。とにかく深層学習を動かせればよく、単純な理解で良いという人は、モデルの出力をラベルに近づけるためだという程度で、なぜそれを使っているのかについての詳しい理由についてはすっ飛ばしてしまう。そこで、簡単にまとめてみた。
##CrossEntropyとは
CrossEntropy(CE)とは、二つの確率分布$p$と$q$に対して以下のように定義される。
$$CE(p,q)\overset{def}{=}-\sum_{i=1}^{N}p_i\log{q_i}$$
分類タスクにおいては、$p$がラベルとして、正解クラスのインデックスを$c$とすると、$p_i=0\left(i\neq c\right)$なので、次のように書ける。
$$CE(p,q)=-\log{q_c}$$
##Kullback–Leibler divergence
CrossEntropyが使われる理由を知るために、Kullback–Leibler divergence(KLDiv)を知る必要がある。これもCrossEntropyと似たようなもので二つの確率分布$p$と$q$に対して以下のように定義される。
\begin{align}
KLDiv(p,q)&=\sum_{i=1}^{N}p_{i}\log{\frac{p_i}{q_i}}\tag{1}
\end{align}
KLDivは、二つの確率分布が似ているほど小さくなる性質がある。完全に一致していれば0となる。詳しい説明がこちらに書かれている。
##KLDivとCEとの関係
(1)を展開すると次のように書ける。
\begin{align}
KLDiv(p,q)&=\sum_{i=1}^{N}p_{i}\log{p_i}-\sum_{i=1}^{N}p_{i}\log{q_i}\\
&=\sum_{i=1}^{N}p_{i}\log{p_i}+CE(p,q)
\end{align}
分類タスクにおいて、ラベルの確率分布$p$とモデルの出力$q$に対して$CE$を最小化させるので、一項目は定数となる。すると$p,q$に関して$CE$を最小化させることはKLDivを最小化させることと等しくなる!
従って$CE$を最小化させることは二つの分布$p,q$を近づけることを意味する。