Artificial Intelligence

[Deep Learning] Deep Learning Dataset

도돔 2023. 3. 18. 17:42

딥러닝 학습을 위해 사용하는 유명한 데이터셋들을 모아보았다.


Image Classification (이미지 분류)에 사용되는 데이터셋

 

1. MNIST (http://yann.lecun.com/exdb/mnist/)

  MNIST는 Modified National Institute of Standards and Technology database의 줄임말로, 0부터 9까지 28X28 픽셀을 가진 손글씨 사진들을 모은 데이터셋이다. 머신러닝에서의 Hello world와 같은 기초가 iris data라면, 딥러닝에서는 MNIST가 이와 같은 위치라고 할 수 있다.

  이 데이터 셋에는 60,000개의 train data와 10,000개의 test data가 들어있다. 60,000개의 train data는 그 안에 5,000개의 validation data도 포함하고 있다. 각 데이터셋은 글자이미지를 저장한 데이터인 image와 그 이미지가 어떤 숫자인지 나타내는 label로 구성되어 있다.

 

+ Yann LeCun이 손으로 적힌 우편번호를 효율적으로 확인하기 위해 CNN 모델을 고안하였는데, 이 모델이 LeNet-5이다. 이후 다양한 회사들이 각자 손글씨 우편번호를 분류하는 모델을 개발하였고, 이를 평가하기 위한 데이터를 확보하는 과정에서 만들어진 것이 MNIST 데이터셋이다. LeNet-5는 CNN의 기본 구조를 정립하는데 많은 영향을 끼친 모델이기도 하여서, 해당 모델의 구조를 따로 더 자세하게 살펴보면 좋을 듯! 

 

MNIST와 유사한 다른 데이터셋은 다음과 같다. 

 

1.1 Fashion-MNIST (https://github.com/zalandoresearch/fashion-mnist)

  MNIST과 비슷하게 10개의 카테고리로 구분되는 28X28 픽셀을 가진 이미지 70,000개로 이루어져 있다. 60,000개의 train data와 10,000개의 test data로 나누어져 있다.

Fashion MNIST의 10가지 클래스

1.2 not MNIST

이 데이터셋은 A-J 까지의 알파벳의 다양한 폰트를 모아둔 데이터 셋이다. A~J까지의 10개의 클래스로 이루어져 있고, 각 클래스는 0~9까지의 숫자로 표기된다. 일반적인 MNIST 데이터셋을 사용한 좋은 모델은 98% 이상의 정확도를 보여주는 경우가 많지만, not MNIST 데이터를 사용하면 93~94%의 정확도를 보인다. 따라서 보다 성능이 좋은 모델을 만들고 싶을 때 not MNIST 데이터셋이 활용되기도 한다. 해당 데이터셋은 500,000개의 데이터를 보유하고 있어 일반적인 MNIST 데이터 말고 더 큰 데이터를 사용하여 모델링을 진행해보고 싶을 때 사용된다.

 

 

2. CIFAR-10,100 (https://www.cs.toronto.edu/~kriz/cifar.html)

  CIFAR-10은 10개의 클래스로 구분된 32X32 픽셀을 가진 60,000개의 사물 사진들을 모은 데이터셋이다. 

CIFAR-10의 10가지 클래스와 각 클래스의 이미지 예시

  CIFAR-100은 100개의 클래스로 구분된 60,000장의 사물 이미지를 가진 데이터셋이다. 100개의 클래스는 20개의 상위 클래스로 묶을 수 있다. 

CIFAR-100의 상위, 하위 클래스 목록. 편리성을 위해 버섯과 곰을 실제와는 다른 클래스에도 분류했다고 한다 :P

  두 데이터셋 모두 각각 50,000개의 train data와 10,000개의 test data로 구분된다. 머신러닝/딥러닝에서 이미지 분류를 진행할 때 마찬가지로 자주 사용되는 데이터셋이다. 단순 MNIST 데이터 셋보다 다루는데 더 난도가 높다고 볼 수도 있다.

 

 

3. ImageNet (https://www.image-net.org/)

ImageNet은 WordNet에서 아이디어를 얻어 만들어진 이미지 분류 데이터셋이다. WordNet에 대한 간단한 설명은 더보기!

더보기

WordNet (https://wordnet.princeton.edu/)

WordNet은 다양한 영어 단어들을 모아놓은 일종의 사전과 같은 데이터베이스이다. 대신 각 단어들의 뜻을 중점적으로 보는 것이 아닌, 한 단어가 있을 때 의미가 비슷한 다른 단어들과 연결 짓는 방식으로 단어를 기록해 두었다. 워드넷 속에서는 단어는 명사, 동사, 형용사, 부사로 구분 짓고 각 구분 안에서 비슷한 의미를 가진 단어를 모아 "synset"이라는 "동의어의 집합"으로 정리하였다. WordNet에 정리된 단어들은 Computational Linguistics(인간의 언어학과 컴퓨터 과학의 연결)과 Natural Language Processing (자연어처리)에서 활용되고 있다.

ImageNet이 처음 등장하게 된 계기는, 다양한 사진 데이터들을 수집하여 컴퓨터 비전과 딥러닝 분야에서 활용될 수 있도록 하기 위해서이다. 전체 데이터셋에 약 1000만 개의 데이터를 보유하고 있고 1000개의 클래스로 구분한다. train data는 약 120만, validation data는 약 5만 개 정도 사용된다. 이 데이터 셋은 ILSVRC (ImageNet Large Scale Visual Recognition Challenge)라고 불리는 국제 대회에서 사용되는 데이터셋이다. 해당 대회는 2010년부터 2017까지 매년 개최되었으며, ImageNet의 데이터 셋을 사용하여 Object Detection과 Image Classification에 사용되는 알고리즘을 평가하였다.  특히 ILSVRC 2012 데이터셋은 다양한 논문에서 다른 ILSVRC 데이터셋보다 가장 빈번하게 다루고 있다.

ImageNet를 사용한 모델의 정확도를 올리는데 기여한 모델은 AlexNet, VGGNet 등이 있다. 위에서 언급한 CIFAR 데이터 셋이 AlexNet을 만든 Alex krizhevsky가 수집하여 만든 데이터 셋이라고 한다!!

 

 

 


Object Detection(객체 탐지)에 사용되는 데이터 셋

 

1. Pascal Visual Object Classes Dataset (http://host.robots.ox.ac.uk/pascal/VOC/)

Pascal VOC 데이터셋은 Object class recognition, 객체의 클래스 분류에 활용되는 데이터 셋이다. 이 데이터 셋은 20개의 class를 갖고, 실제 데이터는 총 5개의 하위 폴더로 구성되어 있으며 각 폴더의 구성은 아래와 같다.

  • Annotations  : JPEGImages에 담겨있는 이미지 oject detection의 정답 데이터가 들어있는 xml 파일. (class 명, 이미지 크기, bounding box의 크기 등등)
  • ImageSets : 특정 클래스가 어떤 이미지에 있는지 등에 대한 정보를 포함하는 폴더.
  • JPEGImages : object dectection의 입력 데이터인 jpg 형식의 이미지 파일.
  • SegmentationClass : Semantic segmentation을 학습하기 위한 label 이미지 파일.
  • SegmentationObject : Instance segmentation을 학습하기 위한 label 이미지 파일.

이 데이터 셋을 활용한 Pascal Visual Object Challenge가 2005년부터 2012년까지 매년 개최되기도 하였다.

 

 

2. COCO Dataset (https://cocodataset.org/#home)

COCO 데이터셋은 object detection, segmentation and captioning에 활용되는 대용량 데이터 셋이다. 객체 탐지를 위한 다양한 데이터셋은 이미 많았지만, 그 속에 있던 여러 문제점들을 보완하여 만들어진 데이터 셋으로 보아도 괜찮다. 기존 데이터 셋은 이미지 안의 Obejct가 크고, 이미지의 중앙에 위치하고, 한 이미지 안에 들어있는 Object의 종류도 적다. 이 부분들을 보완하게 위해 COCO 데이터셋 안의 이미지는 Object의 크기 및 위치가 다양하게 포함하고 있다. 또한 Non-iconic image로 구성되어 있는데 이는 한 사진 안에 iconic한 object 즉 특정 카테고리의 객체만 포함되어 있는 것이 아닌, 다양한 객체가 포함되어 있어 한 가지 object를 대표하지 않는 이미지이다. 이 데이터 셋은 80개의 클래스로 이루어져 있다. 아래 두 사진은 COCO Dataset의 공식 홈페이지의 COCO Explorer에서 직접 캡처하였다.

COCO Explorer에 나와있는 80개의 class들. 아기자기한 클래스 별 아이콘이 귀엽다 : )
데이터 셋 내의 이미지 예시. 위쪽 아이콘을 통해 어떤 객체들이 포함되어있는지 나타나 있고, 이미지 내의 객체의 범위를 한눈에 볼 수 있다.

 


다양한 데이터셋을 살펴보았는데,  각 데이터셋의 특징에 따라 알맞게 활용하면 딥러닝 및 컴퓨터 비전 공부를 할 때 많은 도움이 될 듯하다.

728x90
반응형