交差エントロピー誤差とは、クラス分類ニューラルネットワークの損失関数として利用する以下の式のことです。
交差エントロピー誤差
多クラス分類であれば、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クラス分類は、一般的に出力層の出力数が1なので、交差エントロピー誤差として以下の式を利用します。やっていることは、冒頭の式と同じです。
ーt flog_[e]] y-(1-t) flog_[e]](1-y)
tは出力層の正解の出力、yは出力層の出力です。
t=0の場合、交差エントロピー誤差Eは、ーflog_[e]](1-y)になります。グラフにすると以下です。
yは正解の0から離れるほど交差エントロピー誤差が急激に大きくなります。
t=1の場合、交差エントロピー誤差Eは、ーflog_[e]] yになります。グラフにすると以下です。
yは正解の1から離れるほど交差エントロピー誤差が急激に大きくなります。
交差エントロピー誤差は、上記で示したグラフから分かるように、正解から離れるほど、誤差が急激に大きくなります。
よって、勾配法によるニューラルネットワークの学習を行う際に、学習の速度が上がります。
2クラス分類において、損失関数に2乗和誤差を用いると、誤差Eのグラフがどうなるか確認してみます。
例えば、出力層の出力yの正解が1だった場合、2乗和誤差Eのグラフは以下になります。
グラフから分かるように、交差エントロピー誤差の方が正解から離れた際の誤差が大きいです。よって、交差エントロピー誤差の方が学習の速度が速いです。
誤差逆伝播法のために、交差エントロピー誤差ーflog_[e]] yを微分すると、ー1/yになります。もしくは、ーflog_[e]] (1-y)を微分すると、になります。
ちなみに、対数の底がネイピア数である理由は、上記のように導関数がシンプルになるためです。誤差逆伝播を行う際に無駄な計算を省けます。もし、対数の底をaにした場合、ーflog_[a]] yを微分すると、になります。