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


12

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

C=−1n∑x∑j(yjln⁡ajL+(1−yj)ln⁡(1−ajL))

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

C=−1n∑x∑j(yjln⁡ajL)(上記と同じ記号を使用する場合)

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

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


回答:


18

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

1)Tensorflow導入、

C=−1n∑x∑j(yjln⁡aj).

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

C=−1n∑x(y1ln⁡a1+y2ln⁡a2)
∑jaj=1∑jyj=1
C=−1n∑x(y1ln⁡a1+(1−y1)ln⁡(1−a1))

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

Cx=−∑j(yjln⁡aj)=−(0+0+...+ykln⁡ak)=−ln⁡ak.

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

Cx=−ln⁡(ak)=−ln⁡(efk∑jefj).

0

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

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

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

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