$$ \sum_i^C -t_i\log(S_i) $$
$t_i$ : ground truth
$S_i$ : class i에 대한 score softmax값
$C$ : class 수
C에 2를 넣으면 BCE 식이 된다( Binary Cross Entropy )
segmentation에서 pixel-wisely 로 성능을 측정하는 보편적인 loss function으로, 이후의 distribution based loss들은 cross entropy의 변형이라고 볼 수 있음

BCELoss $\sum_i^{C=2} -t_i\log(S_i) = -t_1(log(S_1)) - (1-t_1)\log(1-S_i)$
또한 class가 두개이면 sigmoid=softmax가 되어
이진분류일때 sigmoid-BCE Loss와 softmax-CELoss는 같게됩니다
이 식과 torch.nn.CrossEntropyLoss의 동작은 조금 다르다
CrossEntropyLoss - PyTorch 1.10.1 documentation
pytorch doc을 살펴보면

여기서 $-\log(\frac{exp(x[class])}{\sum_j exp(x[j])})$ 를 보면 익숙한 모양이 보인다.
softmax에 -log를 취한 모습. LogSoftmax이다.
따라서 softmax 레이어를 따로 추가하거나 함수처리 해 줄 필요가 없다.