머신러닝, 딥러닝 ML, DL/Tensorflow, Keras

[Keras] "categorical_crossentropy", "sparse_categorical_crossentropy" 차이

킹남지 2022. 11. 26. 17:27
반응형

Keras에서 사용 가능한 loss function 중 "categorical_crossentropy"와 "sparse_categorical_crossentropy" 의 차이가 궁금해서 찾아봤다. (처음에는 후자의 경우, function 자체가 sparse한 데이터에 초점이 맞춰져 있나 궁금했다...)

 

이런식으로 사용할 수 있다.

 

찾아보니, 차이는 다음과 같다. (성능에는 영향을 끼치지 않는다고 한다.)

"categorical_crossentropy"는 데이터의 라벨이 원-핫 인코딩 된 형태의 경우 사용,

 "sparse_categorical_crossentropy"는 데이터의 라벨이 Int형 일 때 사용한다.

 

 

예로 클래스가 5개인 데이터가 있다고 하자,

라벨의 형태가 [[0, 0, 1, 0, 0], [0, 0, 0, 0, 1], [1, 0, 0, 0, 0], ...] 과 같다면 "categorical_crossentropy"를,

[2, 4, 0, ...] 과 같다면  "sparse_categorical_crossentropy"를 사용하면 된다.

 

 

 

 

 

[참고자료]

[1] https://datascience.stackexchange.com/questions/41921/sparse-categorical-crossentropy-vs-categorical-crossentropy-keras-accuracy

 

Sparse_categorical_crossentropy vs categorical_crossentropy (keras, accuracy)

Which is better for accuracy or are they the same? Of course, if you use categorical_crossentropy you use one hot encoding, and if you use sparse_categorical_crossentropy you encode as normal integ...

datascience.stackexchange.com

 

 

 

반응형