パブリック クラスSigmoidCrossEntropyWithLogits
パブリックコンストラクター
パブリックメソッド
static <T extends TNumber >オペランド<T> | sigmoidCrossEntropyWithLogits (スコープスコープ、オペランド<T> ラベル、オペランド<T> ロジット) logits を指定してシグモイドクロスエントロピーを計算します。 |
継承されたメソッド
パブリックコンストラクター
public SigmoidCrossEntropyWithLogits ()
パブリックメソッド
public static Operand <T> sigmoidCrossEntropyWithLogits (スコープスコープ、オペランド<T>ラベル、オペランド<T>ロジット)
logits
を指定してシグモイドクロスエントロピーを計算します。
各クラスが独立しており、相互排他的ではない離散分類タスクの確率誤差を測定します。たとえば、写真に象と犬の両方が同時に含まれる可能性がある場合、マルチラベル分類を実行できます。
簡潔にするために、 x = logits
、 z = labels
とします。擬似コードのロジスティック損失は次のとおりです。
z * -log(sigmoid(x)) + (1 - z) * -log(1 - sigmoid(x)) = z * -log(1 / (1 + exp(-x))) + (1 - z) * -log(exp(-x) / (1 + exp(-x))) = z * log(1 + exp(-x)) + (1 - z) * (-log(exp(-x)) + log(1 + exp(-x))) = z * log(1 + exp(-x)) + (1 - z) * (x + log(1 + exp(-x)) = (1 - z) * x + log(1 + exp(-x)) = x - x * z + log(1 + exp(-x))
x < 0
の場合、 exp(-x)
でのオーバーフローを避けるために、上記を再定式化します。
x - x * z + log(1 + exp(-x)) = log(exp(x)) - x * z + log(1 + exp(-x)) = - x * z + log(1 + exp(x))
したがって、安定性を確保し、オーバーフローを回避するために、実装では次の同等の定式化が使用されます。
max(x, 0) - x * z + log(1 + exp(-abs(x)))
ロジットとlabels
同じタイプと形状でなければなりません。
パラメータ
範囲 | TensorFlow スコープ |
---|---|
ラベル | ラベル |
ロジット | float32 または float64 型のロジット |
返品
- コンポーネントごとの物流損失。
投げる
IllegalArgumentException | ロジットとラベルが同じ形状でない場合 |
---|