これらすべてのクロスエントロピー損失の違いは何ですか?
ケラスは話している
TensorFlowには
それらの間の違いと関係は何ですか?それらの典型的なアプリケーションは何ですか?数学的背景は何ですか?知っておくべき他のクロスエントロピータイプはありますか?ロジットのないクロスエントロピータイプはありますか?
次のように定義されるクロス(シャノン)エントロピーは1つだけです。
_H(P||Q) = - SUM_i P(X=i) log Q(X=i)
_
機械学習の使用法では、P
は実際の(グラウンドトゥルース)分布であり、Q
は予測された分布です。リストしたすべての関数はヘルパー関数であり、P
とQ
を表すさまざまな方法を受け入れます。
基本的に考慮すべき3つの主なことがあります:
2つの可能な結果(二項分類)以上のいずれかがあります。結果が2つしかない場合は、Q(X=1) = 1 - Q(X=0)
であるため、(0,1)の単一のfloatが分布全体を識別します。これが、バイナリ分類のニューラルネットワークが単一の出力を持つ理由です(ロジスティック回帰も同様です)。 K> 2の可能な結果がある場合、K個の出力を定義する必要があります(Q(X=...)
ごとに1つ)
1つは適切な確率を生成します(つまり、Q(X=i)>=0
およびSUM_i Q(X=i) =1
を生成するか、または単に「スコア」を生成し、スコアを確率に変換する固定メソッドを持ちます。たとえば、単一の実数は次のようになります。シグモイドを取ることで「確率に変換」され、ソフトマックスなどを取ることで実数のセットを変換できます。
P(X=j)=1
(「真のクラス」が1つあり、ターゲットは「この画像は猫を表す」のように「ハード」)または「ソフトターゲット」(のように)のようなj
があります。 「これは猫だと60%確信していますが、40%は実際には犬です」)。
これらの3つの側面に応じて、異なるヘルパー関数を使用する必要があります。
_ outcomes what is in Q targets in P
-------------------------------------------------------------------------------
binary CE 2 probability any
categorical CE >2 probability soft
sparse categorical CE >2 probability hard
sigmoid CE with logits 2 score any
softmax CE with logits >2 score soft
sparse softmax CE with logits >2 score hard
_
結局、これが数学的に定義される方法であるため、「カテゴリクロスエントロピー」を使用することもできますが、ハードターゲットやバイナリ分類などが非常に人気があるため、最新のMLライブラリは、これらの追加のヘルパー関数を提供して、物事を簡単にします。特に、「スタッキング」シグモイドとクロスエントロピーは数値的に不安定な場合がありますが、これら2つの操作が一緒に適用されることがわかっている場合は、数値的に安定したバージョンが組み合わされています(TFで実装されます)。
間違ったヘルパー関数を適用した場合、コードは通常は実行されますが、結果は間違っていることに注意することが重要です。たとえば、1つの出力でバイナリ分類にsoftmax_ *ヘルパーを適用すると、ネットワークは常に出力で「True」を生成すると見なされます。
最後の注意として、この回答は分類を考慮しますが、マルチラベルケース(単一のポイントが複数のラベルを持つことができる場合)を考慮すると、わずかに異なります。合計を1にすると、複数の出力ユニットがあるにもかかわらず、sigmoid_cross_entropy_with_logitsを使用する必要があります。
この目的のために、「ロジット」はモデルの非アクティブ化出力と見なすことができます。
「ロジット付き」の損失は、内部的にアクティベーションを適用します。一部の関数では、logits=True
またはlogits=False
を選択できます。これにより、アクティベーションを「適用」するか「適用しない」かが関数に指示されます。
(batch, ..., >=1)
"sigmoid"
(batch, ..., >=2)
"softmax"