[python] 파이썬 PyTorch에서 이진 분류를 위한 손실 함수는 무엇인가?

이진 분류를 위한 손실 함수는 크로스 엔트로피 손실 함수 (Cross Entropy Loss) 또는 이진 교차 엔트로피 손실 함수 (Binary Cross Entropy Loss)를 사용할 수 있습니다. 이 함수들은 주로 이진 분류 문제에서 모델의 출력과 실제 레이블 간의 오차를 측정하고, 모델의 학습을 돕기 위해 사용됩니다.

PyTorch에서는 이진 분류를 위한 손실 함수를 아래와 같이 사용할 수 있습니다:

import torch
import torch.nn as nn

# 모델 출력과 실제 레이블 생성
output = torch.tensor([0.2, 0.7])  # 모델의 출력
target = torch.tensor([0, 1])  # 실제 레이블

# 이진 교차 엔트로피 손실 함수
loss_fn = nn.BCELoss()

# 손실 값 계산
loss = loss_fn(torch.sigmoid(output), target.float())
print(loss)

위의 코드에서 torch.sigmoid() 함수를 사용하여 모델의 출력을 시그모이드 함수를 통해 0과 1 사이의 확률 값으로 변환한 후, loss_fn을 사용하여 손실 값을 계산합니다. torch.tensor는 예시를 위한 임의의 값으로 실제 데이터에서는 모델의 예측 결과와 실제 레이블을 사용하면 됩니다.

참고로, 크로스 엔트로피 손실 함수는 이진 교차 엔트로피 손실 함수의 일반화 버전이며, 소프트맥스 함수를 통해 다중 클래스 분류 문제에도 사용할 수 있습니다.

더 자세한 내용은 PyTorch 공식 문서를 참고하시기 바랍니다.