케라스 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')
이외에도 다양한 활성 함수가 제공되는데 아래 링크를 방문하기 바랍니다.
'AI 머신러닝' 카테고리의 다른 글
케라스 Activation 활성 함수 (0) | 2021.05.21 |
---|---|
Keras API reference 케라스 API 레퍼런스 (0) | 2021.05.21 |
케라스 옵티마이저 종류 Keras optimizers (0) | 2021.05.21 |
Accuracy 정확도, Precision 정밀도, Recall 재현율 (0) | 2021.05.21 |
텐서플로우 분류 예제 프로젝트 (0) | 2021.05.20 |