交差エントロピー誤差

交差エントロピー誤差とは、クラス分類ニューラルネットワークの損失関数として利用する以下の式のことです。

交差エントロピー誤差

多クラス分類であれば、t_[i]]は出力層の正解の出力、y_[i]]は出力層の出力、nは出力層の出力数(分類数)となります。

例えば、3クラス分類の出力層の正解の出力がt_[0]]=0, t_[1]]=1, t_[2]]=0であれば、交差エントロピー誤差は、ーflog_[e]] y_[1]]になります。グラフにすると以下です。

y_[1]]は正解の1に近いほど交差エントロピー誤差が0に近づき、正解の1から離れるほど交差エントロピー誤差が急激に大きくなります。

2クラス分類の交差エントロピー誤差

2クラス分類は、一般的に出力層の出力数が1なので、交差エントロピー誤差として以下の式を利用します。やっていることは、冒頭の式と同じです。

ーt flog_[e]] y-(1-t) flog_[e]](1-y)

tは出力層の正解の出力、yは出力層の出力です。

t=0の場合

t=0の場合、交差エントロピー誤差Eは、ーflog_[e]](1-y)になります。グラフにすると以下です。

yは正解の0から離れるほど交差エントロピー誤差が急激に大きくなります。

t=1の場合

t=1の場合、交差エントロピー誤差Eは、ーflog_[e]] yになります。グラフにすると以下です。

yは正解の1から離れるほど交差エントロピー誤差が急激に大きくなります。

交差エントロピー誤差のメリット

交差エントロピー誤差は、上記で示したグラフから分かるように、正解から離れるほど、誤差が急激に大きくなります。

よって、勾配法によるニューラルネットワークの学習を行う際に、学習の速度が上がります。

2乗和誤差との比較

2クラス分類において、損失関数に2乗和誤差を用いると、誤差Eのグラフがどうなるか確認してみます。

例えば、出力層の出力yの正解が1だった場合、2乗和誤差Eのグラフは以下になります。

グラフから分かるように、交差エントロピー誤差の方が正解から離れた際の誤差が大きいです。よって、交差エントロピー誤差の方が学習の速度が速いです。

交差エントロピー誤差の微分

誤差逆伝播法のために、交差エントロピー誤差ーflog_[e]] yを微分すると、1/yになります。もしくは、ーflog_[e]] (1-y)を微分すると、になります。

ちなみに、対数の底がネイピア数である理由は、上記のように導関数がシンプルになるためです。誤差逆伝播を行う際に無駄な計算を省けます。もし、対数の底をaにした場合、ーflog_[a]] yを微分すると、になります。