$$ - \sum_n^i (y^{i} \ast log(p^{i})+(1-y^{i}) \ast log(1-p^{i})) $$
위 식은 Binary Cross Entropy 식이다.
Multiclass classification은 위에서 $$1-p^{i}$$ 값이 다른 P 결과로 대체한 식으로 유도된다.
$$- \sum_n^i (y^{i}_{0} \ast log(p^{i}_{0}) + y^{i}_{1} \ast log(p^{i}_{1})...) $$
근데, 어차피 1개의 class만 1이고 나머지는 0이기 때문에 아래와 같이 정리해볼 수 있다.
$$- \sum_n^i (log(p^{i}_{j}) ) $$
직접 구현해본 결과, torch에서 제공해주는 CrossEntropy는 Softmax를 따로 해주지않아도 자동으로 해주는 결과를 보이는 것을 확인했다. (https://pytorch.org/docs/stable/generated/torch.nn.CrossEntropyLoss.html)
공식문서를 확인해봐도 softmax가 함수에 내포되어있는 것을 확인!
'인공지능 > Deep Learning' 카테고리의 다른 글
Conv2d Layer의 weight와 bias의 shape은? (0) | 2023.03.04 |
---|---|
Dropout 실습 (0) | 2023.03.04 |
분류경계선이 선형으로 나오는 모델은 선형분류만 가능 (0) | 2023.03.02 |
BinaryClassification 직접 구현 (0) | 2023.03.01 |
Pytorch의 weight는 왜 T(transpose)할까? (0) | 2023.03.01 |