Skip to content

KONGTAEHO/2025_OSS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

1 Commit
ย 
ย 
ย 
ย 

Repository files navigation

์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜ ๋จธ์‹ ๋Ÿฌ๋‹ ํ”„๋กœ์ ํŠธ

CIFAR-10 ๋ฐ์ดํ„ฐ์…‹์„ ํ™œ์šฉํ•œ CNN ๊ธฐ๋ฐ˜ ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜

์ด ํ”„๋กœ์ ํŠธ๋Š” ํ•ฉ์„ฑ๊ณฑ ์‹ ๊ฒฝ๋ง(CNN)์„ ์‚ฌ์šฉํ•˜์—ฌ CIFAR-10 ๋ฐ์ดํ„ฐ์…‹์˜ ์ด๋ฏธ์ง€๋ฅผ 10๊ฐœ ํด๋ž˜์Šค๋กœ ๋ถ„๋ฅ˜ํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.


๐Ÿ“‹ ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

  • ๋ฐ์ดํ„ฐ์…‹: CIFAR-10 (50,000๊ฐœ ํ›ˆ๋ จ ์ด๋ฏธ์ง€, 10,000๊ฐœ ํ…Œ์ŠคํŠธ ์ด๋ฏธ์ง€)
  • ์ด๋ฏธ์ง€ ํฌ๊ธฐ: 32x32 ํ”ฝ์…€ (์ปฌ๋Ÿฌ)
  • ํด๋ž˜์Šค: 10๊ฐœ (๋น„ํ–‰๊ธฐ, ์ž๋™์ฐจ, ์ƒˆ, ๊ณ ์–‘์ด, ์‚ฌ์Šด, ๊ฐœ, ๊ฐœ๊ตฌ๋ฆฌ, ๋ง, ๋ฐฐ, ํŠธ๋Ÿญ)
  • ๋ชจ๋ธ: Convolutional Neural Network (CNN)
  • ํ”„๋ ˆ์ž„์›Œํฌ: TensorFlow 2.20.0 / Keras 3.12.0

๐ŸŽฏ ์ฃผ์š” ํŠน์ง•

๋ชจ๋ธ ์•„ํ‚คํ…์ฒ˜

  • 3๊ฐœ์˜ ํ•ฉ์„ฑ๊ณฑ ๋ธ”๋ก: ๊ฐ ๋ธ”๋ก๋งˆ๋‹ค Conv2D, BatchNormalization, MaxPooling, Dropout ๋ ˆ์ด์–ด ํฌํ•จ
  • ์™„์ „ ์—ฐ๊ฒฐ ๋ ˆ์ด์–ด: Dense + Dropout์œผ๋กœ ๊ณผ์ ํ•ฉ ๋ฐฉ์ง€
  • ์ถœ๋ ฅ ๋ ˆ์ด์–ด: 10๊ฐœ ํด๋ž˜์Šค์— ๋Œ€ํ•œ Softmax ํ™œ์„ฑํ™” ํ•จ์ˆ˜

์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ธฐ๋ฒ•

  1. Batch Normalization: ํ•™์Šต ์•ˆ์ •ํ™” ๋ฐ ์ˆ˜๋ ด ๊ฐ€์†ํ™”
  2. Dropout: ๊ณผ์ ํ•ฉ ๋ฐฉ์ง€ (0.25, 0.5)
  3. Data Augmentation: ์ด๋ฏธ์ง€ ํšŒ์ „, ์ด๋™, ๋’ค์ง‘๊ธฐ, ํ™•๋Œ€/์ถ•์†Œ
  4. Early Stopping: ๊ฒ€์ฆ ์†์‹ค ๊ธฐ๋ฐ˜ ์กฐ๊ธฐ ์ข…๋ฃŒ
  5. Learning Rate Scheduling: ๋™์  ํ•™์Šต๋ฅ  ์กฐ์ •

๐Ÿš€ ์‹œ์ž‘ํ•˜๊ธฐ

ํ•„์ˆ˜ ์š”๊ตฌ์‚ฌํ•ญ

Python 3.10+
TensorFlow 2.20.0
Keras 3.12.0
NumPy
Matplotlib
Seaborn
Scikit-learn
Pandas
OpenCV (์„ ํƒ)

์„ค์น˜ ๋ฐฉ๋ฒ•

  1. ์ €์žฅ์†Œ ํด๋ก 
git clone <repository-url>
cd project_oss2025
  1. ๊ฐ€์ƒ ํ™˜๊ฒฝ ์ƒ์„ฑ ๋ฐ ํ™œ์„ฑํ™”
python -m venv .venv
.venv\Scripts\activate  # Windows
  1. ํŒจํ‚ค์ง€ ์„ค์น˜
pip install --upgrade pip
pip install tensorflow matplotlib seaborn scikit-learn pandas numpy opencv-python

ํ”„๋กœ์ ํŠธ ์‹คํ–‰

Jupyter Notebook ์‹คํ–‰:

jupyter notebook project.ipynb

๋˜๋Š” VS Code์—์„œ ์ง์ ‘ ๋…ธํŠธ๋ถ ์—ด๊ธฐ


๐Ÿ“Š ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

project_oss2025/
โ”‚
โ”œโ”€โ”€ project.ipynb           # ๋ฉ”์ธ ๋…ธํŠธ๋ถ (์ „์ฒด ํ”„๋กœ์ ํŠธ)
โ”œโ”€โ”€ best_model.keras        # ์ตœ๊ณ  ์„ฑ๋Šฅ ๋ชจ๋ธ ์ฒดํฌํฌ์ธํŠธ
โ”œโ”€โ”€ cifar10_cnn_model.keras # ์ตœ์ข… ํ•™์Šต ๋ชจ๋ธ
โ”œโ”€โ”€ README.md               # ํ”„๋กœ์ ํŠธ ๋ฌธ์„œ
โ””โ”€โ”€ .venv/                  # ๊ฐ€์ƒ ํ™˜๊ฒฝ (์„ ํƒ)

๐Ÿ“– ๋…ธํŠธ๋ถ ๊ตฌ์„ฑ

1. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž„ํฌํŠธ ๋ฐ ํ™˜๊ฒฝ ์„ค์ •

  • ํ•„์ˆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋กœ๋“œ
  • ํ•œ๊ธ€ ํฐํŠธ ์„ค์ • (Windows: ๋ง‘์€ ๊ณ ๋”•)
  • ๋žœ๋ค ์‹œ๋“œ ๊ณ ์ • (์žฌํ˜„์„ฑ)

2. ๋ฐ์ดํ„ฐ์…‹ ๋กœ๋“œ ๋ฐ ์ „์ฒ˜๋ฆฌ

  • CIFAR-10 ๋ฐ์ดํ„ฐ ๋กœ๋“œ
  • ์ •๊ทœํ™” (0255 โ†’ 01)
  • ์›-ํ•ซ ์ธ์ฝ”๋”ฉ

3. ๋ฐ์ดํ„ฐ ํƒ์ƒ‰ ๋ฐ ์‹œ๊ฐํ™”

  • ์ƒ˜ํ”Œ ์ด๋ฏธ์ง€ ํ™•์ธ
  • ํด๋ž˜์Šค ๋ถ„ํฌ ๋ถ„์„

4. CNN ๋ชจ๋ธ ์„ค๊ณ„ ๋ฐ ๊ตฌ์ถ•

  • ๋ชจ๋ธ ์•„ํ‚คํ…์ฒ˜ ์ •์˜
  • ๋ ˆ์ด์–ด๋ณ„ ์„ค์ •

5. ๋ชจ๋ธ ํ•™์Šต

  • ๋ฐ์ดํ„ฐ ์ฆ๊ฐ• ์„ค์ •
  • ์ฝœ๋ฐฑ ํ•จ์ˆ˜ ์„ค์ •
  • ๋ชจ๋ธ ํ•™์Šต (์ตœ๋Œ€ 50 ์—ํฌํฌ)

6. ํ•™์Šต ๊ฒฐ๊ณผ ์‹œ๊ฐํ™”

  • ์ •ํ™•๋„/์†์‹ค ๊ทธ๋ž˜ํ”„
  • ํ•™์Šต ๊ณก์„  ๋ถ„์„

7. ๋ชจ๋ธ ํ‰๊ฐ€

  • ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ ์„ฑ๋Šฅ ํ‰๊ฐ€
  • ๋ถ„๋ฅ˜ ๋ฆฌํฌํŠธ
  • ํ˜ผ๋™ ํ–‰๋ ฌ (Confusion Matrix)
  • ํด๋ž˜์Šค๋ณ„ ์ •ํ™•๋„

8. ์˜ˆ์ธก ๊ฒฐ๊ณผ ์‹œ๊ฐํ™”

  • ์ •ํ™•ํ•œ ์˜ˆ์ธก ์ƒ˜ํ”Œ
  • ์ž˜๋ชป๋œ ์˜ˆ์ธก ์ƒ˜ํ”Œ

9. ์˜ˆ์ธก ์‹ ๋ขฐ๋„ ๋ถ„์„

  • ์˜ˆ์ธก ํ™•๋ฅ  ๋ถ„ํฌ
  • ์ •ํ™•/์˜ค๋‹ต ์‹ ๋ขฐ๋„ ๋น„๊ต

10. ๋ชจ๋ธ ์ €์žฅ

  • ํ•™์Šต๋œ ๋ชจ๋ธ ์ €์žฅ

11. ๋‹จ๊ณ„๋ณ„ ์‹ค์Šต ๊ฐ€์ด๋“œ

  • ๊ธฐ์ดˆ: MNIST, Fashion-MNIST
  • ์ค‘๊ธ‰: ์ „์ด ํ•™์Šต, ์˜๋ฃŒ ์˜์ƒ ๋ถ„๋ฅ˜
  • ๊ณ ๊ธ‰: ์‹ค์‹œ๊ฐ„ ๋ถ„๋ฅ˜, ์•™์ƒ๋ธ” ํ•™์Šต

๐Ÿ“ˆ ์„ฑ๋Šฅ ์ง€ํ‘œ

๋ชฉํ‘œ ์„ฑ๋Šฅ

  • ํ…Œ์ŠคํŠธ ์ •ํ™•๋„: 75~85%
  • ํ›ˆ๋ จ ์‹œ๊ฐ„: ์•ฝ 30๋ถ„ (CPU), ์•ฝ 10๋ถ„ (GPU)

ํ‰๊ฐ€ ์ง€ํ‘œ

  • Accuracy: ์ „์ฒด ์ •ํ™•๋„
  • Precision: ์ •๋ฐ€๋„
  • Recall: ์žฌํ˜„์œจ
  • F1-Score: ์ •๋ฐ€๋„์™€ ์žฌํ˜„์œจ์˜ ์กฐํ™” ํ‰๊ท 
  • Confusion Matrix: ํด๋ž˜์Šค๋ณ„ ์˜ˆ์ธก ๊ฒฐ๊ณผ

๐Ÿ”ง ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ

# ๋ชจ๋ธ ๊ตฌ์กฐ
input_shape = (32, 32, 3)
conv_filters = [32, 32, 64, 64, 128, 128]
dense_units = [256, 128]
dropout_rates = [0.25, 0.25, 0.25, 0.5, 0.5]

# ํ•™์Šต ์„ค์ •
batch_size = 64
epochs = 50
optimizer = 'adam'
loss = 'categorical_crossentropy'

# ๋ฐ์ดํ„ฐ ์ฆ๊ฐ•
rotation_range = 15
width_shift_range = 0.1
height_shift_range = 0.1
horizontal_flip = True
zoom_range = 0.1

๐ŸŽ“ ํ•™์Šต ๋กœ๋“œ๋งต

๊ธฐ์ดˆ ๋‹จ๊ณ„ (Beginner)

  1. MNIST: ์†๊ธ€์”จ ์ˆซ์ž ๋ถ„๋ฅ˜ (โญโ˜†โ˜†โ˜†โ˜†)
  2. Fashion-MNIST: ํŒจ์…˜ ์•„์ดํ…œ ๋ถ„๋ฅ˜ (โญโญโ˜†โ˜†โ˜†)

์ค‘๊ธ‰ ๋‹จ๊ณ„ (Intermediate)

  1. CIFAR-10: ์ปฌ๋Ÿฌ ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜ (โญโญโญโ˜†โ˜†)
  2. ์ „์ด ํ•™์Šต: VGG16, ResNet50 ํ™œ์šฉ (โญโญโญโญโ˜†)

๊ณ ๊ธ‰ ๋‹จ๊ณ„ (Advanced)

  1. ์‹ค์‹œ๊ฐ„ ๋ถ„๋ฅ˜: ์›น์บ  ๊ธฐ๋ฐ˜ ๋ถ„๋ฅ˜ (โญโญโญโญโญ)
  2. ์•™์ƒ๋ธ” ํ•™์Šต: ์—ฌ๋Ÿฌ ๋ชจ๋ธ ๊ฒฐํ•ฉ (โญโญโญโญโ˜†)

๐Ÿ’ก ์ถ”๊ฐ€ ๊ฐœ์„  ๋ฐฉ์•ˆ

์„ฑ๋Šฅ ํ–ฅ์ƒ

  1. ์ „์ด ํ•™์Šต: ResNet, EfficientNet ๋“ฑ ์‚ฌ์ „ ํ•™์Šต ๋ชจ๋ธ ํ™œ์šฉ
  2. ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹: Grid Search, Random Search
  3. ์•™์ƒ๋ธ”: ์—ฌ๋Ÿฌ ๋ชจ๋ธ์˜ ์˜ˆ์ธก ๊ฒฐํ•ฉ
  4. ๊ณ ๊ธ‰ ์ฆ๊ฐ•: Mixup, CutMix, AutoAugment

๋ฐฐํฌ

  1. ๋ชจ๋ธ ๊ฒฝ๋Ÿ‰ํ™”: Quantization, Pruning
  2. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜: Flask/FastAPI
  3. ๋ชจ๋ฐ”์ผ ๋ฐฐํฌ: TensorFlow Lite
  4. ํด๋ผ์šฐ๋“œ ๋ฐฐํฌ: AWS, GCP, Azure

๐Ÿ“š ์ฐธ๊ณ  ์ž๋ฃŒ

๋ฐ์ดํ„ฐ์…‹

ํ•™์Šต ์ž๋ฃŒ

๊ฒฝ์ง„๋Œ€ํšŒ


๐Ÿค ๊ธฐ์—ฌํ•˜๊ธฐ

์ด ํ”„๋กœ์ ํŠธ๋Š” ๊ต์œก ๋ชฉ์ ์œผ๋กœ ์ œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ์„  ์‚ฌํ•ญ์ด๋‚˜ ๋ฒ„๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ•˜์‹œ๋ฉด ์ด์Šˆ๋ฅผ ๋“ฑ๋กํ•ด์ฃผ์„ธ์š”.


๐Ÿ“ ๋ผ์ด์„ ์Šค

์ด ํ”„๋กœ์ ํŠธ๋Š” ๊ต์œก ๋ชฉ์ ์œผ๋กœ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ‘จโ€๐Ÿ’ป ๊ฐœ๋ฐœ์ž

  • ํ”„๋กœ์ ํŠธ: CIFAR-10 ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜
  • ํ”„๋ ˆ์ž„์›Œํฌ: TensorFlow/Keras
  • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ: VS Code + Jupyter Notebook
  • ๋‚ ์งœ: 2025๋…„ 12์›”

โญ ํ”„๋กœ์ ํŠธ ํ•˜์ด๋ผ์ดํŠธ

  • โœ… ์ฒด๊ณ„์ ์ธ CNN ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„
  • โœ… ๋ฐ์ดํ„ฐ ์ฆ๊ฐ•์œผ๋กœ ์ผ๋ฐ˜ํ™” ์„ฑ๋Šฅ ํ–ฅ์ƒ
  • โœ… ๋‹ค์–‘ํ•œ ์‹œ๊ฐํ™” ๋ฐ ๋ถ„์„
  • โœ… ์‹ค๋ฌด ์ ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ ๊ตฌ์กฐ
  • โœ… ๋‹จ๊ณ„๋ณ„ ํ•™์Šต ๊ฐ€์ด๋“œ ํฌํ•จ
  • โœ… ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published