Post

CNN 이미지 분류 기본 패턴

이미지 분류를 CNN 패턴으로 풀어내는 최소 가이드와 적용 조건 정리

CNN 이미지 분류 기본 패턴

이 프로젝트는 CNN을 특정 모델 구조가 아니라
이미지 문제를 푸는 방식으로 정리하기 위한 기준점이다.

CIFAR-10은 목적이 아니라 패턴을 드러내는 최소 단위의 예제다.


CNN이 필요한 문제의 조건

언제 CNN을 써야 하는가

  • 입력 데이터가 공간적 구조(위치·이웃 관계)를 가진다
  • 픽셀 하나하나보다 국소 패턴의 조합이 의미를 만든다
  • 특징을 사람이 정의하기 어렵다

대표 신호:

  • 이미지
  • 영상 프레임
  • 공간 격자 데이터

언제는 과한가

  • 입력이 이미 잘 정리된 수치 벡터일 때
  • 데이터 양이 극히 적을 때
  • 위치 정보가 의미 없을 때

👉 “이 데이터에 위치 개념이 중요한가?”
이 질문에 예면 CNN이다.


Conv / Pooling / FC의 역할 요약

각 레이어의 존재 이유

레이어역할존재 이유
Convolution국소 패턴 추출공간 구조 보존
Pooling정보 압축위치 변화에 둔감
Fully Connected결정패턴 종합

직관적 비유

  • Conv: 작은 창으로 이미지를 훑으며 특징 메모
  • Pooling: 중요한 메모만 남기고 요약
  • FC: 요약된 메모를 보고 최종 판단

👉 CNN은 “보면서 → 요약하고 → 결정하는 파이프라인”이다.


CIFAR-10 데이터 특성

해상도

  • 32 × 32 픽셀
  • 디테일 부족, 전체 윤곽 위주

클래스 특성

  • 10개 클래스
  • 서로 시각적으로 겹치는 범주 다수 (truck vs automobile 등)

모델 설계에 미치는 영향

  • 너무 깊은 모델은 이득 없음
  • 초기 Conv에서 정보 손실에 특히 민감
  • 단순하지만 반복 가능한 구조가 적합

👉 CIFAR-10은 “CNN 기본기를 시험하는 데이터”다.


데이터 증강을 쓰는 이유

데이터 관점 설명

  • 실제 세계에서는 물체의 위치·각도·방향이 고정되지 않는다
  • 원본 데이터만 쓰면 모델은 “정자세 이미지”만 기억한다

증강의 역할

  • 데이터 수 증가가 목적이 아니다
  • 같은 대상의 다양한 관측 사례를 강제로 보여주는 것

👉 증강은 성능 트릭이 아니라
“이 데이터는 이렇게도 보일 수 있다”는 세계관 주입이다.


학습 결과 해석 시 확인할 지점

accuracy 외에 볼 것

관점확인 이유
학습 vs 검증 곡선과적합 신호
클래스별 성능 편차데이터 불균형
오분류 패턴모델이 헷갈리는 지점

핵심 질문

  • 어떤 클래스를 지속적으로 틀리는가?
  • 그 오차가 데이터 한계인지 모델 한계인지?

👉 CNN 결과 해석은
“얼마나 맞췄나”보다 “왜 틀렸나”다.


CNN 기본 구조 의사코드

1
2
3
4
5
6
7
8
input_image
→ conv_block
→ pooling
→ conv_block
→ pooling
→ flatten
→ fully_connected
→ class_prediction

하이퍼파라미터는 중요하지 않다.
흐름 자체가 CNN 이미지 분류의 최소 패턴이다.


This post is licensed under CC BY 4.0 by the author.