CSPNet : CNN의 학습능력을 향상 시킬 수 있는 새로운 Backbone

calico·2026년 1월 2일

Artificial Intelligence

목록 보기
148/186

https://keyog.tistory.com/30

속도와 학습 효율이 연결되는 하나의 이야기

CNN 기본
 → 왜 느려지는가 (연산·메모리·gradient 중복)
   → Backbone 진화 (VGG → ResNet → DenseNet)
     → Darknet: 실시간 중심 설계
       → CSPNet: gradient 중복 제거
         → YOLO 계열 실질적 속도 향상
           → CNN feature의 RNN/Seq 응용

Image

Image

Image

Image

1. CNN의 본질: 왜 Convolution인가


CNN은 이미지처럼 공간 구조를 가진 데이터를 다루기 위해 설계되었다.

핵심 특성은 세 가지다.

  • 국소 수용 영역 (Local Receptive Field)

    • 전체를 한 번에 보지 않고, 작은 영역에서 패턴을 학습
  • 가중치 공유 (Weight Sharing)

    • 같은 패턴을 어디서든 동일하게 인식
  • 공간 구조 보존

    • 위치 정보가 유지된 feature map 생성

이로 인해 CNN은 edge, corner, texture 같은 위치 불변 패턴을 매우 효율적으로 추출한다.

하지만 CNN이 느려지는 이유는 단순히 “깊어서”가 아니다.

Conv 연산 + Feature map이 깊어질수록 기하급수적으로 누적되기 때문



2. CNN이 깊어지며 발생한 세 가지 문제


1) Gradient 문제

  • Vanishing / Exploding

  • 해결: Residual Connection

2) 연산량 폭증

  • Channel 증가

  • Feature map 재사용 증가

3) Gradient 정보 중복 (핵심)

  • 같은 정보가 여러 경로로 반복 학습

  • DenseNet에서 가장 심각

“학습 효율 vs 연산 비용” 문제가 본격화된다.



3. Backbone의 진화: 무엇을 해결하려 했는가


VGG


  • 구조 단순

  • 깊어질수록 연산량 폭발


ResNet


  • Skip connection으로 gradient 흐름 개선

  • 정보 중복은 여전히 존재


DenseNet


  • 모든 이전 feature를 연결

  • 파라미터 효율은 좋음

  • Gradient 중복 최악

성능은 좋아졌지만 연산·메모리·학습 효율이 한계에 도달



4. Darknet: “연구보다 실전”


Darknet


Darknet은 YOLO를 위해 설계된 실시간 중심 프레임워크다.

설계 철학은 명확하다.

  • GPU/CPU에서 실시간

  • 연산 예측 가능

  • 구조 단순

Darknet-53의 특징

  • ResNet 계열

  • BatchNorm + LeakyReLU

  • 불필요한 구조 제거

하지만 한계는 남아 있었다.

Gradient 중복 + Feature 중복 문제는 여전히 존재



5. CSPNet: 속도가 빨라진 “진짜 이유”


CSPNet

CSPNet은 “경량화 트릭”이 아니다.

학습 구조 자체를 바꾼 모델이다.

핵심 아이디어

Feature map을 둘로 나누고
한쪽만 깊은 연산을 수행한 뒤
마지막에 다시 합친다

Input
 ├─ Part A (shortcut)
 └─ Part B (Conv Block)
        ↓
     Transition
        ↓
Concat



이것이 만든 효과


  • Gradient 경로 분리

  • 중복 gradient 학습 제거

  • 연산량 감소

  • 메모리 사용 감소

  • 학습 안정성 증가

CSPNet은 성능을 유지하면서 “불필요한 학습”만 제거한다.



6. Darknet + CSPNet = CSPDarknet


YOLOv4


YOLOv4의 backbone은 CSPDarknet53이다.

결과

  • FLOPs ↓ 10~20%

  • FPS ↑

  • 메모리 ↓

속도가 빨라진 이유는 명확하다.

GPU가 좋아서가 아니라 학습해야 할 정보 자체가 줄었기 때문



7. CNN Feature는 어디로 가는가 → RNN/Seq 모델


여기서 시야를 확장한다.

CNN의 역할


  • 공간 정보 → 의미 있는 feature 표현

  • 이미지, 프레임, 스펙트로그램


RNN / Seq 모델의 역할


  • 시간·순서·맥락 처리



8. CNN + RNN 구조의 전형


Image / Frame
 → CNN (feature extractor)
   → Feature Sequence
     → RNN / LSTM / GRU
       → Prediction

대표 사례

  • Video classification

  • Image captioning

  • OCR

  • Speech recognition

즉,

  • CNN = Backbone

  • RNN = Temporal Head



9. CSPNet이 RNN 계열에도 중요한 이유


  1. Feature 품질

    • Gradient 중복 제거

    • 더 다양한 표현

  2. Latency

    • RNN은 순차적

    • CNN이 느리면 전체 파이프라인 붕괴

  3. Edge / Real-time

    • Jetson, Mobile 환경

    • CNN + RNN 구조는 병목에 매우 취약

CSPNet은 “RNN이 먹는 입력을 더 싸게, 더 좋게” 만든다

  • CNN은 공간을 이해한다

  • Darknet은 현실적인 속도를 선택했다

  • CSPNet은 중복 학습을 제거했다

  • YOLO의 속도 향상은 구조 혁신의 결과

  • RNN/Seq 모델은 이 결과를 시간 축으로 확장한다

CSPNet은 YOLO만 빠르게 만든 게 아니라,
CNN이 만드는 ‘표현의 질과 비용 구조’를 바꿨다.

profile
All views expressed here are solely my own and do not represent those of any affiliated organization.

0개의 댓글