머신러닝 & 딥러닝

합성곱(Convolution)과 풀링(Pooling) 개

도갱도갱 2025. 2. 23. 21:36

합성곱(Convolution)과 풀링(Pooling) 설명 및 예시

합성곱(Convolution)과 풀링(Pooling)은 합성곱 신경망(CNN, Convolutional Neural Network) 에서 가장 중요한 핵심 연산입니다.

이들은 이미지 처리 및 컴퓨터 비전에서 중요한 역할을 하며, 데이터를 효율적으로 줄이면서 특징을 추출하는 데 사용됩니다.


1. 합성곱(Convolution)

📌 개념

  • 합성곱은 입력 데이터(이미지 등)에서 특징(Feature)을 추출하는 과정입니다.
  • 작은 크기의 필터(Filter, 커널)를 사용하여 지역적인 패턴(엣지, 윤곽선, 색 변화 등)을 학습합니다.

📌 합성곱 연산 과정

  1. 입력 데이터(이미지)와 필터(커널)를 곱하고 더하는 연산 수행
    • 예를 들어, 3×3 필터가 5×5 이미지에서 움직이며 특정 패턴을 감지합니다.5×55 \times 5
    • 3×33 \times 3
  2. 출력 데이터(Feature Map) 생성
    • 필터가 모든 위치를 이동하면서 연산한 결과를 특징 맵(Feature Map) 으로 저장합니다.

📌 예제

예제 1: 3×3 필터 적용


입력 이미지 (5×5)
1  2  3  0  1
4  5  6  1  2
7  8  9  2  3
0  1  2  3  4
1  2  3  4  5

3×3 필터
1  0 -1
1  0 -1
1  0 -1

필터를 적용하면 엣지(Edge) 감지 효과가 나타납니다.

예제 2: CNN에서 합성곱 연산 활용

  • 필터를 여러 개 사용하면 엣지 감지, 텍스처 검출, 패턴 인식 등이 가능해집니다.
  • 이미지 분류 모델(예: ResNet, VGG)은 수십 개의 필터를 쌓아서 복잡한 특징을 학습합니다.

2. 풀링(Pooling)

📌 개념

  • 풀링은 특징 맵의 크기를 줄이는 연산으로, 데이터 크기를 줄이면서 중요한 정보만 남깁니다.
  • 주로 최대 풀링(Max Pooling)평균 풀링(Average Pooling) 이 사용됩니다.

📌 풀링 종류

  1. 최대 풀링(Max Pooling)
    • 특정 영역에서 가장 큰 값을 선택 (엣지와 같은 강한 특징 유지)
    • 예: 2×2 영역에서 최댓값 선택
    • 2×22 \times 2
  2. 평균 풀링(Average Pooling)
    • 특정 영역에서 평균값을 선택 (노이즈 제거 효과)

📌 예제

예제 1: 2×2 최대 풀링


입력 데이터 (4×4)
1  3  2  1
4  6  5  2
7  9  8  3
0  2  1  4

2×2 최대 풀링 적용 결과
6  5
9  8

예제 2: 2×2 평균 풀링


평균 풀링 결과
(1+3+4+6)/4 = 3.5  ,  (2+1+5+2)/4 = 2.5
(7+9+0+2)/4 = 4.5  ,  (8+3+1+4)/4 = 4.0

3. 합성곱과 풀링의 역할 비교

연산 역할 효과

합성곱(Convolution) 특징 추출 엣지 감지, 패턴 인식
풀링(Pooling) 데이터 축소 모델 경량화, 중요한 정보 유지

4. 합성곱과 풀링의 활용 예시

📌 이미지 분류 (CNN)

  • 예: ResNet, VGG, AlexNet
  • 합성곱을 통해 특징을 추출하고, 풀링을 사용하여 데이터 크기를 줄여 학습 속도를 증가

📌 객체 탐지(Object Detection)

  • 예: YOLO, Faster R-CNN
  • CNN을 활용하여 특정 물체를 인식하고 위치를 예측

📌 스타일 변환(Style Transfer)

  • 예: Neural Style Transfer
  • 합성곱을 활용하여 예술 작품 스타일을 이미지에 적용

5. 결론

합성곱은 패턴을 학습하고, ✅ 풀링은 크기를 줄이며 중요한 정보를 유지하는 역할을 합니다.