본문 바로가기

AI/이론

Cross entropy의 이해, 사용 방법(Categorical, Binary, Focal loss)

이 글에서는 여러 가지 클래스를 분류하는 Classification 문제에서,

Cross entropy를 사용하는 방법와 원리를 알아봅니다.

 

1. Tasks

우선, 두가지 문제를 봅시다.

1-1) Multi-Class Classfication

각 샘플(이미지)은 클래스 C 중 하나로 분류될 수 있습니다.

해는 0번, 즉 [1 0 0] (원핫인코딩),

달은 1번, [0 1 0],

구름은 2번, [0 0 1]

으로 분류될 수 있다는 말입니다.

CNN은 s(scores) 벡터를 출력하고, one hot 벡터인 타겟(ground truth) 벡터 t와 매칭이 되어 loss값을 계산할 것입니다.

 

즉, Multi-Class Classification은 여러 샘플(이미지)에서 C개의 클래스 중 하나의 클래스로 분류하는 문제로 생각할 수 있습니다.

 

1-2) Multi-Label Classficiation

위의 그림 중 오른쪽 그림을 참고하시면 됩니다.

각 샘플은 여러 개의 클래스 객체(object)를 가질 수 있습니다.

타겟 벡터 t는 하나 이상의 positive클래스를 가질 수 있고 [1 0 1] 처럼 인코딩 될 수 있습니다.

즉, Multi-label Classification은 여러 샘플(이미지)에서 각 샘플 마다 있는 클래스 들을 여러 클래스로 레이블하는 문제입니다.

 

그럼 Multi-Class와 Multi-label 분류에 사용되는 활성화 함수(activation function)와 손실함수(loss function)를 알아보겠습니다. 아, 그 전에 간단한 활성화 함수를 알아보도록 하죠.

 

2. 활성화 함수(Activation Function)

Sigmoid

CNN 마지막 층에서 나온 값을 (0, 1) 사이 값으로 압축하여 줍니다.

각 요소 Si에서 각각 적용될 수 있습니다. logistic function이라고 불리기도 합니다.

Softmax

클래스의 스코어를 나타내는 벡터 각각의 요소는 (0, 1) 범위가 되며, 모든 합이 1이 되도록 만들어줍니다.

sjsj는 각 스코어 이고 모든 i에 대한 소프트맥스값을 더하면 1이 나옵니다.

3. Loss

3.1) Cross-Entropy Loss

드디어 크로스 엔트로피가 나왔습니다. CE loss는 다음과 같이 정의될 수 있습니다.

ti는 ground truth (정답), Si는 각 클래스 i에 대한 CNN 마지막 층의 아웃풋인 score 벡터의 i번째 요소입니다.

(0, 1) 사이 계산 범위를 맞추기 위하여 스코어는 위에서 설명한 sigmoid activation function과 종종 같이 붙어서 CE loss와 계산됩니다.

특별히 binary classfication 문제에서는 (즉, C' = 2), 식을 전개해보면 다음과 같이 나옴을 알 수 있습니다.

 

 

https://wordbe.tistory.com/entry/ML-Cross-entropyCategorical-Binary%EC%9D%98-%EC%9D%B4%ED%95%B4

 

[Classification] Cross entropy의 이해, 사용 방법(Categorical, Binary, Focal loss)

이 글에서는 여러 가지 클래스를 분류하는 Classification 문제에서, Cross entropy를 사용하는 방법와 원리를 알아봅니다. 1. Tasks 우선, 두가지 문제를 봅시다. 1-1) Multi-Class Classfication 각 샘플(이미..

wordbe.tistory.com

 

'AI > 이론' 카테고리의 다른 글

[ML] Regression 종류  (0) 2021.02.04
[ML] dropout  (0) 2021.02.04
ImageNet  (0) 2020.12.28
[CNN] Batch Normalization  (0) 2020.08.18
[ML] 오차(error)와 잔차(residual)의 차이  (0) 2020.08.18