반응형
케라스 categorical_crossentropy, sparse_categorical_crossentropy
출처: 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 머신러닝' 카테고리의 다른 글
케라스, numpy 랜덤 기능으로 임시 자료 생성하기 (0) | 2020.01.17 |
---|---|
심층 신경망(deep neural networks) API, "케라스" 기사 정리 (0) | 2020.01.16 |
케라스, MNIST 예제에서 숫자 샘플 이미지 출력하기 (0) | 2020.01.15 |
케라스, MNIST 손글씨 딥러닝 예제 분석 (0) | 2020.01.15 |
케라스, 학습 모델을 파일에 저장하기, 읽어오기 (0) | 2020.01.14 |