공개 클래스 SigmoidCrossEntropyWithLogits
공공 생성자
공개 방법
static <T는 Tnumber를 확장합니다. > 피연산자 <T> | sigmoidCrossEntropyWithLogits (범위 범위 , 피연산자 <T> 레이블, 피연산자 <T> 로지트) logits 주어지면 시그모이드 교차 엔트로피를 계산합니다. |
상속된 메서드
공공 생성자
공개 SigmoidCrossEntropyWithLogits ()
공개 방법
공개 정적 피연산자 <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 | 로지트'와 라벨'의 모양이 동일하지 않은 경우 |
---|