본문 바로가기

딥러닝 & 머신러닝/[2020-2] 머신러닝 수업

머신러닝 과제 (데이터셋 조사, NLLLoss & Cross Entropy Loss)

# 데이터셋 조사

MNIST

MNIST 데이터셋:  0 ~ 9까지의 손글씨 이미지로 구성되어 있으며 크기는 28x28이다. 각각의 픽셀값은 0~255의 정수로 이루어졌고, 회색조 이미지다. 데이터의 레이블은 0 ~ 9의 정수로 이루어져 있다. 학습용 데이터는 60,000개고, 테스트 데이터는 10,000개다. 가장 기본적인 이미지 분류가 이 데이터셋의 목적이다.

 

Fashion-MNIST

Fashion-MNIST 데이터셋: 의류, 가방, 신발 등 총 10종류의 패션 이미지들로 구성되어 있으며 크기는 28x28이다. 각각의 픽셀값은 0~255의 정수로 이루어졌고, 회색조 이미지다. 학습용 데이터는 60,000개고, 테스트 데이터는 10,000개다. MNIST 데이터셋과 마찬가지로, 가장 기본적인 이미지 분류가 이 데이터셋의 목적이다.

 

CIFAR-10

CIFAR:  CIFAR-10에는 비행기, 차, 새 등 총 10종류의 사물 및 동물 이미지들로 구성되어 있으며, 크기는 32x32이다. 각 클래스마다 6,000장씩 총 60,000장의 컬러 이미지가 있다. CIFAR-100은 100개의 클래스와 각 클래스별 600장씩 총 60,000장의 이미지로 구성된다. 좀 더 복잡한 이미지 분류 문제에 사용하기 위함이 이 데이터셋의 목적이다.

 

# NLLLoss vs. Cross Entropy Loss

 

NLLLoss: Negative Log Likelihood Loss. 분류 문제에 유용하다. 신경망에서 로그 확률값을 얻으려면 마지막 레이어에 LogSoftmax 레이어를 추가해주어야 한다. 그러나 마지막 레이어에 LogSoftmax를 추가하는 대신 그냥 CrossEntropyLoss를 사용하면 LogSoftmax레이어를 추가할 필요가 없다.

 

CrossEntropyLoss: LogSoftmax와 NLLLoss의 기능이 하나의 class에 합쳐져 있는 것이다. 즉, Log 처리와 softmax 처리, NLLLoss연산을 한번에 하므로 NLLLoss와 LogSoftmax를 같이 사용하는 것보다 수식이 간소화되어 더 안정적으로 역전파가 이루어진다.