Skip to content

CIFAR 이미지 데이터셋을 활용하여 CNN 모델의 구조적 차이(Residual Connection), 전이 학습(Transfer Learning)의 파라미터 튜닝 효과, 그리고 현업에서 빈번한 데이터 불균형(Data Imbalance) 문제를 해결하는 딥러닝 기법을 실험하고 분석하는 것을 목표로 합니다.

Notifications You must be signed in to change notification settings

PaleBlueNote/ML_cifar-resnet-imbalanced-learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🖼️ CIFAR Classification & Imbalanced Learning (ResNet & Mixup)

PyTorch Python ResNet

📖 Project Overview

이 프로젝트는 CIFAR-100CIFAR-10 데이터셋을 활용하여 CNN 모델 구조 비교와 데이터 불균형 문제를 해결하는 딥러닝 연구 프로젝트입니다. ResNet20을 직접 구현하여 PlainNet과의 성능 차이를 분석하고, 전이 학습(Transfer Learning) 실험을 수행했습니다. 또한, 클래스 불균형 상황에서 Balanced Mixup 기법을 제안하여 베이스라인 대비 성능을 대폭 향상시켰습니다.

💡 Key Objective: ResNet의 Residual Block 효과를 검증하고, Long-tailed Dataset(불균형 데이터)에서 일반화 성능을 높이는 것.


📂 Repository Structure

본 프로젝트는 실험 보고서와 구현 코드를 체계적으로 관리하기 위해 다음과 같이 구성되었습니다.

cifar-resnet-imbalanced-learning/
│
├── 📂 docs/                  # 프로젝트 실험 보고서 (PDF)
├── 📂 notebooks/             # 모델 구현 및 학습 코드 (.ipynb)
├── .gitignore             # Git 추적 제외 설정
├── README.md              # 프로젝트 메인 문서
└── requirements.txt       # 의존성 라이브러리 목록

📑 Project Report

모델 구조에 대한 이론적 배경, 실험 설계, 그리고 실험별 Loss/Accuracy 그래프는 PDF 보고서에 상세히 기술되어 있습니다.


🛠️ Methodology & Experiments

1. Model Architecture Comparison (PlainNet vs ResNet)

  • 실험: 동일한 깊이(20 layers)와 파라미터 수를 가진 PlainNet과 ResNet을 구현하여 비교.
  • 결과: **Skip Connection(Residual Block)**이 기울기 소실(Vanishing Gradient) 문제를 해결하여, ResNet이 PlainNet보다 학습 수렴 속도가 빠르고 Test Accuracy가 약 10%p 이상 높음을 확인했습니다.

2. Transfer Learning Strategy

  • 실험: ImageNet으로 사전 학습된(Pretrained) ResNet을 CIFAR-100에 맞게 미세 조정(Fine-tuning).
  • 결과: 마지막 FC Layer만 학습하는 것보다, **전체 모델을 미세 조정(Full Fine-tuning)**했을 때 성능이 월등히 우수함을 입증했습니다.

3. Handling Imbalanced Dataset (Long-tailed)

  • 문제: 특정 클래스의 데이터가 부족한 불균형 상황(Imbalanced CIFAR-10)에서 소수 클래스 예측 성능이 저하됨.
  • 해결책 (Proposed Method):
    • Balanced Mixup: 다수 클래스와 소수 클래스 데이터를 섞어(Mix) 샘플링하는 기법 적용.
    • Balanced Softmax Loss: 클래스 빈도에 따라 Loss 계산 시 마진(Margin)을 조정.
  • 성과: 베이스라인(Standard CE Loss) 대비 F1 Score가 5%p 이상 향상되었습니다.

📈 Performance Summary (Imbalanced Task)

Model Technique F1 Score Improvement
Baseline Standard CrossEntropy 0.7457 -
Proposed Balanced Mixup 0.79xx +5.0%p 🏆

🚀 Getting Started

Prerequisites

pip install -r requirements.txt

Run Experiments

# Jupyter Notebook 실행
jupyter notebook notebooks/cifar_classification_resnet.ipynb

👤 Author

Github: @PaleBlueNote Email: yoonseokchan0731@gmail.com


This project was conducted to study Deep Learning architectures and Imbalanced Learning strategies.

About

CIFAR 이미지 데이터셋을 활용하여 CNN 모델의 구조적 차이(Residual Connection), 전이 학습(Transfer Learning)의 파라미터 튜닝 효과, 그리고 현업에서 빈번한 데이터 불균형(Data Imbalance) 문제를 해결하는 딥러닝 기법을 실험하고 분석하는 것을 목표로 합니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published