Machine Learning/Basics

sparse_categorical_crossentropy와 categorical_crossentropy 비교

JG Ahn 2020. 7. 11. 17:03

categorical 문제를 풀기 위해 loss설정을 할 때 sparse_categorical_crossentropy와 categorical_crossentropy 중에서 고민이 될 수 있습니다. 본 게시글에서는 두 loss function이 어떤 차이점과 공통점을 가지는지 알아보겠습니다.

 

Sparse_Categorical과 Categorical의 코드상 비교

[좌] Sparse Categorical, [우] Categorical

두 코드를 보면 y_true의 입력이 다르다는 것을 알 수 있습니다.

Sparse Categorical에서 y_true는 일반 정수가 입력인 반면, Categorical에서 y_true는 one-hot vector인 것을 알 수 있습니다.

 

Loss 계산 결과를 보면 매우 유사한 것을 알 수 있습니다.

실제로 계산 수식에 차이가 없기 때문에 정확도에 영향을 끼치지 않습니다.

 

Sparse_Categorical_Crossentropy는 각 샘플이 오직 하나의 class에 속할 때 사용하고

Categorical_Crossentropy는 각 샘플이 여러개의 class에 속할 수 있거나 label이 soft probablities 일 때 사용하는 것이 좋습니다. (e.g. [0.5, 0.3, 0.2)]

Ref