CNN(Convolutional Neural NEtwork) 기본 구성 요소

Lam Lee·2025년 4월 27일

Deep Learning w/ PyTorch

목록 보기
3/4

CNN 기본 구성요소

CNN은 Conv로 특징 추출 → ReLU로 복잡성 추가 → Pooling으로 요약 → FC로 최종 판단하는 구조

  1. 입력(input)
    예-32 * 32 RGB 이미지

  2. Convolution Layer (Conv Layer)
    → 필터를 적용해서 특징 뽑기 = 특징(엣지, 모양) 추출

  3. Activation Function (ReLU)
    → 비선형성 추가 (복잡한 패턴 학습 가능하게)

  4. Pooling Layer (MaxPool / AvgPool / GAP)
    → 크기 축소 + 특징 요약(=중요한 특징만 남기기)
    Pooling이란 특징을 축소/요약하는 연산이다. 피처맵의 크기를 줄이고 중요한 정보만 남기기 위한 작업이다.

왜 pooling을 쓸까?

  • 연산량 줄이기 - feature map 크기를 줄이면 계산량이 줄어듦
  • 과적합 방지 - 너무 세세한 정보까지 기억하지 않게함
  • 특징 강조 - 중요한 특징만 남겨서 학습 효율화

Max Pooling은 CNN에서 가장 흔하게 쓰인다. GAP(Global Average Pooling)은 최근 모델에서 모델 경량화용으로써 FC Layer대신 많이 사용한다.

MaxPool은 강한 특징만 뽑고, AvgPool은 부드럽게 평균내고, GAP는 feature map 전체를 요약해서 최종 분류를 쉽게 만든다.

1) [ MaxPool ] → 가장 큰 값만 남김, 가장 많이 사용됨

"작은 영역(예: 2x2) 안에서 가장 큰 값을 뽑아내는 pooling"

  • 입력 feature map에서
  • 2x2, 3x3 같은 작은 창(window)을 움직이면서
  • 그 안에서 가장 큰 값만 선택

목적:

  • 가장 강한 특징을 남긴다.
  • 예) 엣지(edge)나 중요한 패턴은 강하게 표현됨

2) [ AvgPool ] → 부드럽게 평균 요약, 예전 CNN에서 주로 사용

"작은 영역(예: 2x2) 안의 값들을 평균 내는 pooling"

  • 2x2, 3x3 같은 작은 창(window) 안의
  • 모든 평균을 계산해서 하나의 값으로 요약

목적:

  • 전체적인 패턴을 부드럽게 요약
  • 강한 특징만 뽑는게 아니라, 전체적인 정보를 살짝 희석해서 남김.

3) [ GAP ] → feature map 전체를 1개 숫자로 요약, 최신 CNN에서 많이 사용

"Feature map 전체를 평균내서 1개의 값으로 요약하는 pooling"

  • feature map (예: 7x7) 전체를 하나의 수로 요약한다.
  • 결과적으로 512개 feature map이면 512개 수치만 남게 됨.

목적:

  • flatten 없이 바로 분류로 넘어갈 수 있음 (FC 거의 안써도 됨)
  • 연산량 엄청 줄임, 모델 경량화 가능

최신 모델(MobileNet, EfficientNet) 에서 많이 사용

  1. 반복
    → Conv → ReLU → Pooling을 여러 번 반복

  2. Flatten Layer
    → 2D feature map을 1D 벡터로 변환 (FC로 연결하기 위해)

  3. Fully Connected Layer (FC Layer)
    → 최종 분류기 역할 = 클래스 판단 (ex: 고양이 vs 개)

  4. Output Layer
    → 다진분류인 경우, softmax 함수로 클래스 별 확률 출력

References
https://nafizshahriar.medium.com/what-is-convolutional-neural-network-cnn-deep-learning-b3921bdd82d5

https://www.analytixlabs.co.in/blog/convolutional-neural-network/

https://zilliz.com/glossary/convolutional-neural-network

profile
Transitioning from UX to data science, I explore the intersection of service & data to unlock hidden value and make meaningful predictions.

0개의 댓글