캐글 spooky 문제에 도전하다가 레이블을 원 핫 인코딩 하지 않고 진행했을 때 CategoricalCrossEntropy를 사용했더니 오류가 발생해서 GPT에게 물어보았다.
계산 방법...수식...은 잘 모르겠지만 언제 어디에 사용해야 하는지는 확실히 알았다.
Cross Entropy 개요
크로스 엔트로피(Cross Entropy)는 분류 문제에서 예측값과 실제값의 차이를 측정하는 손실 함수예요. 이진 분류와 다중 클래스 분류 문제에서 사용돼요. 크로스 엔트로피의 주요 종류는 다음과 같아요:
- Binary Cross Entropy (이진 크로스 엔트로피)
- 이진 분류 문제에 사용돼요.
- 예를 들어, 고양이인지 아닌지를 예측하는 문제에서 사용해요.
- tf.keras.losses.BinaryCrossentropy를 사용해요.
- 레이블이 0 또는 1로 주어져요.
- 공식:
- Categorical Cross Entropy (카테고리컬 크로스 엔트로피)
- 다중 클래스 분류 문제에 사용돼요.
- 예를 들어, 고양이, 개, 새 중 하나를 예측하는 문제에서 사용해요.
- tf.keras.losses.CategoricalCrossentropy를 사용해요.
- 레이블이 원핫 인코딩(One-Hot Encoding) 형태로 주어져요.
- 공식:
- Sparse Categorical Cross Entropy (스파스 카테고리컬 크로스 엔트로피)
- 다중 클래스 분류 문제에 사용돼요.
- tf.keras.losses.SparseCategoricalCrossentropy를 사용해요.
- 레이블이 정수형으로 주어져요.
- 예를 들어, 레이블이 0, 1, 2로 주어질 때 사용해요.
- 공식:
사용 사례
Binary Cross Entropy: 이진 분류 (예: 스팸 이메일 분류)
- Categorical Cross Entropy: 다중 클래스 분류 (예: 글자 인식)
- Sparse Categorical Cross Entropy: 다중 클래스 분류, 레이블이 정수형일 때 (예: 자연어 처리에서 토큰 분류)
왜 Sparse Categorical Cross Entropy를 사용할까요?
Categorical Cross Entropy와 Sparse Categorical Cross Entropy는 같은 목표를 가지지만, 레이블 형식이 다르기 때문에 사용해요:
- Categorical Cross Entropy: 레이블이 원핫 인코딩된 경우 사용해요.
- 예: 클래스가 3개인 경우, 레이블 [1, 0, 0], [0, 1, 0], [0, 0, 1]
- Sparse Categorical Cross Entropy: 레이블이 정수형인 경우 사용해요.
- 예: 클래스가 3개인 경우, 레이블 0, 1, 2
역시 내 최고의 스승님이다.
이런 귀여운 모습까지...
'python > MLDL' 카테고리의 다른 글
kaggle Spooky Author Identification 상위99% (2) | 2024.06.07 |
---|---|
Spooky Author Identification (클러스터링, PCA) (0) | 2024.06.04 |
GPT에게 배우는 클러스터링의 종류, 장단점과 사용처 (0) | 2024.05.27 |
GPT에게 자연어처리 배우기(문자열 전처리) (0) | 2024.05.24 |
GPT에게 자연어처리 배우기(모델 구현) (0) | 2024.05.24 |