반응형

케라스 loss 함수 종류

 

출처: https://crazyj.tistory.com/153 [크레이지J의 탐구생활]

 

1. categorical_crossentropy

 

다중 분류 손실함수이며 원핫 인코딩 방식이다. 예를 들어 샘플 값이 다음과 같다고 하자(배치 크기 3).

 

[[0, 0, 1],

 [0, 1, 0],

 [1, 0, 0]] 

 

네트웍 레이어 구성시 마지막 층에 Dense(3, activation='softmax') 방식을 사용하면, 3개 분류(클래스)의 각 확률 값이 나온다(전체 합은 1).

 

[0.2, 0.3, 0.5]     <--- 20%, 30%, 50%

 

모델 컴파일 단계에서 샘플 값과 출력값 오차 계산에 'categorical_entropy'를 사용한 예는 다음과 같다.

 

model.compile(optimizer='sgd', loss='categorical_entropy')


 

2. sparse_categorical_crossentropy 

 

'categorical_entropy'처럼 다중 분류 손실함수이지만, 샘플 값은 정수형 자료이다. 예를 들어, 샘플 값이 아래와 같은 형태일 수 있다. (배치 사이즈 3개)

 

[0, 1, 2] 

 

즉, 샘플 값을 입력하는 부분에서 별도 원핫 인코딩을 하지 않고 정수값 그대로 줄 수 있다. 이런 자료를 사용할 때, 컴파일 단계에서 손실 함수만  'sparse_categorical_crossentropy'로 바꿔주면 된다.

 

model.compile(optimizer='sgd', loss='sparse_categorical_entropy')

 

 

이외에도 다양한 활성 함수가 제공되는데 아래 링크를 방문하기 바랍니다.

 

Probabilistic loss

 

Keras documentation: Probabilistic losses

Probabilistic losses BinaryCrossentropy class tf.keras.losses.BinaryCrossentropy( from_logits=False, label_smoothing=0, reduction="auto", name="binary_crossentropy" ) Computes the cross-entropy loss between true labels and predicted labels. Use this cross-

keras.io

 

반응형

+ Recent posts