CIFAR 데이터셋

IT 위키
인공무능 (토론 | 기여)님의 2025년 10월 9일 (목) 01:38 판 (새 문서: '''CIFAR 데이터셋'''은 이미지 인식 및 머신러닝 연구에서 널리 사용되는 소형 컬러 이미지 데이터셋이다. 대표적으로 '''CIFAR-10'''과 '''CIFAR-100'''이 존재하며, 각기 다른 분류 수준을 제공한다. ==개요== CIFAR는 "Canadian Institute for Advanced Research"의 약자로, 원래는 MIT의 Tiny Images 프로젝트에서 파생된 데이터셋이다. 이 데이터셋들은 32×32 픽셀 크기의 컬러 이미지로 구성되...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

CIFAR 데이터셋은 이미지 인식 및 머신러닝 연구에서 널리 사용되는 소형 컬러 이미지 데이터셋이다. 대표적으로 CIFAR-10CIFAR-100이 존재하며, 각기 다른 분류 수준을 제공한다.

개요[편집 | 원본 편집]

CIFAR는 "Canadian Institute for Advanced Research"의 약자로, 원래는 MIT의 Tiny Images 프로젝트에서 파생된 데이터셋이다. 이 데이터셋들은 32×32 픽셀 크기의 컬러 이미지로 구성되어 있으며, 각 이미지에는 사전에 정의된 클래스 레이블이 부여되어 있다. 모델 개발과 벤치마킹에 널리 사용된다.

CIFAR-10[편집 | 원본 편집]

  • 클래스 수: 10개
    • 비행기, 자동차, 새, 고양이, 사슴, 개, 개구리, 말, 배, 트럭
  • 데이터 크기: 총 60,000장
    • 훈련 이미지 50,000장, 테스트 이미지 10,000장
  • 이미지 크기: 32×32 RGB
  • 용도: 경량 이미지 분류, 기본 CNN 구조 실험, 데이터 증강 연구 등

CIFAR-100[편집 | 원본 편집]

  • 클래스 수: 100개 (20개의 상위 클래스, 100개의 하위 클래스)
  • 데이터 크기: 총 60,000장
    • 클래스당 600장 (500장 훈련, 100장 테스트)
  • 이미지 크기: 32×32 RGB
  • 용도: 정밀 분류, 계층적 분류 실험, 다중 레이블 학습 등

특징[편집 | 원본 편집]

  • 모든 이미지는 정사각형이며, 크기가 작고 균일하다
  • 클래스 간 이미지 수가 균등하게 분포되어 있다
  • 복잡하지 않은 구조로 인해 저사양 환경에서도 실험 가능
  • 이미지에 배경이 포함되어 있고, 일부는 클래스 간 시각적 구분이 어렵다

장단점[편집 | 원본 편집]

장점[편집 | 원본 편집]

  • 경량화된 데이터: 학습 속도가 빠르고 실험 반복에 적합하다
  • 표준화된 구조: 다양한 모델 간 성능 비교가 용이하다
  • 커뮤니티 확산: 다양한 라이브러리와 튜토리얼에서 지원

단점[편집 | 원본 편집]

  • 낮은 해상도: 복잡한 패턴이나 세밀한 특징 인식에는 한계가 있다
  • 일반화 한계: 실제 환경의 고해상도 이미지와 차이가 있어 모델 성능이 과대평가될 수 있다
  • 중복 이미지 존재: 훈련 및 테스트 이미지 간 유사 이미지가 존재함이 보고된 바 있다

활용 예시[편집 | 원본 편집]

  • 기본적인 CNN 실험 (예: LeNet, AlexNet, VGG 등)
  • 전이 학습 테스트 및 fine-tuning
  • 데이터 증강 기법 비교
  • 반지도학습, 자가 지도 학습 실험
  • 벤치마크 비교 논문에서 성능 비교 기준선

PyTorch 사용 예시[편집 | 원본 편집]

import torchvision
import torchvision.transforms as transforms
from torch.utils.data import DataLoader

# 훈련 및 테스트용 데이터 전처리
transform_train = transforms.Compose([
    transforms.RandomCrop(32, padding=4),
    transforms.RandomHorizontalFlip(),
    transforms.ToTensor(),
])

transform_test = transforms.Compose([
    transforms.ToTensor(),
])

# CIFAR-10 데이터셋 로딩
trainset = torchvision.datasets.CIFAR10(root='./data',
                                        train=True,
                                        download=True,
                                        transform=transform_train)
trainloader = DataLoader(trainset, batch_size=128, shuffle=True)

testset = torchvision.datasets.CIFAR10(root='./data',
                                       train=False,
                                       download=True,
                                       transform=transform_test)
testloader = DataLoader(testset, batch_size=100, shuffle=False)

같이 보기[편집 | 원본 편집]

참고 문헌[편집 | 원본 편집]

각주[편집 | 원본 편집]