본문 바로가기
ML or DL

[Loss 함수] loss 함수의 종류 및 비교, 사용

by chaloalto 2021. 9. 14.

출처 : https://needjarvis.tistory.com/567

Binary Crossentropy

실제 레이블과 예측 레이블 간의 교차 엔트로피 손실을 계산한다. 2개의 레이블 클래스(0, 1로 가정)가 있을 때 Binary Crossentropy를 사용하면 좋다. 

BinaryCrossentropy class

tf.keras.losses.BinaryCrossentropy(
    from_logits=False, label_smoothing=0, reduction="auto", name="binary_crossentropy"
)

2. Categorical Crossentropy

레이블 클래스가 2개 이상일 경우 사용된다.

One -hot -encoding 형태로 제공 될 때 사용가능 

보통 softmax 다음에 연계되어 나온다고 하여 softmax 활성화 함수 다음에 나온다고 하여 softmax loss 라고도 불린다.

CategoricalCrossentropy class

tf.keras.losses.CategoricalCrossentropy(
    from_logits=False,
    label_smoothing=0,
    reduction="auto",
    name="categorical_crossentropy",
)

 

3. sparse_categorical_crossentropy (출처 : https://didu-story.tistory.com/27)

tf.keras.losses.sparse_categorical_crossentropy(y_true, y_pred, from_logits=False, axis=-1)
  • 범주형 교차 엔트로피와 동일하게 멀티 클래스 분류에 사용
  • one-hot encoding 된 상태일 필요 없이 정수 인코딩 된 상태에서 수행 가능
  • 라벨이 (1,2,3,4) 이런식으로 정수형태일때 사용! 

4. 평균 제곱 오차 손실 (means squared error, MSE)

  • 신경망의 출력(^y)과 타겟(y)이 연속값인 회귀 문제에서 널리 사용하는 손실함수
    • 회귀문제에 사용될 수 있는 다른 손실 함수
      • 평균 절댓값 오차 (Mean absolute error, MAE)
      • 평균 제곱근 오차 (Root mean squared error, RMSE)
  • 연속형 데이터를 사용할 때 주로 사용 (주식 가격 예측 등)