クロスエントロピー損失関数のさまざまな定義


12

私は、neuralnetworksanddeeplearning dot comチュートリアルでニューラルネットワークについて学び始めました。特に第3章には、クロスエントロピー関数に関するセクションがあり、クロスエントロピー損失を次のように定義しています。

C=1nxj(yjlnajL+(1yj)ln(1ajL))

ただし、Tensorflowの概要を読むと、クロスエントロピー損失は次のように定義されます。

C=1nxj(yjlnajL)(上記と同じ記号を使用する場合)

次に、何が起こっているのかを探すために周りを検索すると、クロスエントロピー損失の完全に異なる定義を使用する別のメモセット(https://cs231n.github.io/linear-classify/#softmax-classifier)が見つかりました。ニューラルネットワークではなく、ソフトマックス分類器の時間。

誰かが私にここで何が起こっているのか説明できますか?なぜ矛盾があるのですか?クロスエントロピー損失はどのように定義されますか?いくつかの包括的な原則はありますか?


回答:


18

これら3つの定義は基本的に同じです。

1)Tensorflow導入

C=1nxj(yjlnaj).

2)バイナリ分類場合、 、制約および、それはとして書き換えられ 、第3章と同じです。。j=2

C=1nx(y1lna1+y2lna2)
jaj=1jyj=1
C=1nx(y1lna1+(1y1)ln(1a1))

3)さらに、がワンホットベクトル(分類ラベルの場合によくある)であり、が唯一の非ゼロ要素である場合、対応するサンプルのクロスエントロピー損失は yyk

Cx=j(yjlnaj)=(0+0+...+yklnak)=lnak.

cs231ノート、一つのサンプルの交差エントロピー損失は次のようにソフトマックス正規と共に与えられる

Cx=ln(ak)=ln(efkjefj).

0

第三章、式(63)は、複数のシグモイドに適用クロスエントロピー(すなわち、1に合計なくてもよい)でありながらイントロTensoflowクロスエントロピソフトマックス出力層で計算されます。

dontlooで説明されているように、2つのクラスの両方の式は基本的に同等ですが、3つ以上のクラスが考慮される場合はそうではありません。Softmaxは、排他的なクラスを持つマルチクラス(つまり、サンプルごとにラベルが1つしかない場合に、ラベルのワンホットエンコーディングを可能にする)に意味がありますいくつかのクラス)。

この他のdontlooの回答も参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.