交差エントロピーの例と微分の計算

2つの確率分布 $P$、$Q$ に対して、
$-\displaystyle\sum_{x}P(x)\log Q(x)$
を交差エントロピー(クロスエントロピー)と言う。

・$P$ も $Q$ も二値変数(ベルヌーイ分布)の場合
つまり、
$P(x_1)=p$、$P(x_2)=1-p$
$Q(x_1)=q$、$Q(x_2)=1-q$
のとき、

交差エントロピーは、
$-p\log q-(1-p)\log(1-q)$
となります。

いろいろな $p$ と $q$ に対して交差エントロピーを計算してみました(後で使います):

交差エントロピーの例

・$P$ も $Q$ も多値変数の場合
つまり、
$P(x_i)=p_i\:(i=1,\dots, n)$
$Q(x_i)=q_i\:(i=1,\dots, n)$
のとき、

交差エントロピーは、
$-\displaystyle\sum_{i=1}^np_i\log q_i$
となります。

ニューラルネットワークの誤差関数

交差エントロピーは、ニューラルネットワークの誤差関数(損失関数)として使われることがあります。特に、シグモイド関数との相性がよいので、以下のようなニューラルネットワークを考えてみましょう:

交差エントロピーとニューラルネットワーク

入力:$x$
重み:$w$
途中の値:$y=\sum x_iw_i$
活性化関数:$q(y)=\dfrac{1}{1+e^{-y}}$(シグモイド関数とします)
目標となる出力:$p$
実際の出力:$q=q(y)$
交差エントロピー誤差関数:$E=-p\log q-(1-p)\log (1-q)$

さきほど見たように、$p\fallingdotseq q\fallingdotseq 0$ のときと、$p\fallingdotseq q\fallingdotseq 1$ のときは $E\fallingdotseq 0$ となり、それ以外のときはより大きい値になるので、2クラス分類問題に使えそうですね。

交差エントロピーの微分

ニューラルネットワークの学習を勾配法を使って行う場合には、パラメータによる偏微分が必要になります。そこで、誤差関数のパラメータ $w_i$ による偏微分 $\dfrac{\partial E}{\partial w_i}$ を計算してみます。

合成関数の微分公式を使うと
$\dfrac{\partial E}{\partial w_i}=\dfrac{\partial y}{\partial w_i}\cdot\dfrac{\partial q}{\partial y}\cdot\dfrac{\partial E}{\partial q}$

となります。3つの部分をそれぞれ計算すると、

・ただの一次式の微分:
$\dfrac{\partial y}{\partial w_i}=x_i$

・シグモイド関数の微分:
$\dfrac{\partial q}{\partial y}=(1-q)q$

・交差エントロピーの微分:
$\dfrac{\partial E}{\partial q}=-\dfrac{p}{q}+\dfrac{1-p}{1-q}$
となります。

これらをかけ合わせて整理すると、
$\dfrac{\partial E}{\partial w_i}=x_i\{-p(1-q)+(1-p)q\}
\\=x_i(q-p)$
となり、シンプルな式になりました!

次:ヒンジ関数の意味、損失関数として使えることの大雑把な説明
前:変動係数の計算方法と意味

スポンサーリンク

スポンサーリンク

誤植がございましたら @mathwordsnet までご連絡をお願いいたします。
ページ上部へ戻る