딥러닝 기반 컴퓨터 비전에서 가장 널리 활용되는 모델 중 하나가 CNN(Convolutional Neural Network)입니다.
CNN은 작은 필터를 이미지 위로 이동시키며 특징을 추출하고, 계층적으로 저수준 특징에서 고수준 특징으로 학습을 확장합니다.

1. 합성곱 층 (Convolutional Layer)

CNN의 핵심 특징 추출 레이어입니다.

작동 방식

  • 학습 가능한 필터(커널)가 입력을 슬라이딩하며 합성곱 연산 수행
  • 필터는 에지, 텍스처, 색상 변화 같은 패턴을 학습
  • RGB 입력은 채널별 연산 후 합산되어 특성 맵(feature map) 생성

비선형성

합성곱은 선형 연산이므로, 일반적으로 ReLU 같은 활성화 함수를 이어 붙여 비선형 표현력을 확보합니다.

주요 하이퍼파라미터

  • 커널 크기(kernel_size): 보통 3x3, 5x5
  • 스트라이드(stride): 이동 간격
  • 패딩(padding): 경계 정보 보존 및 출력 크기 제어

2. 풀링 층 (Pooling Layer)

특성 맵을 다운샘플링하는 단계입니다.

목적

  • 연산량 감소
  • 과적합 완화
  • 위치 변화에 대한 불변성 강화

방식

  • Max Pooling: 지역 최대값으로 강한 특징 강조
  • Average Pooling: 지역 평균으로 완만한 요약

최근에는 일부 구조에서 풀링 대신 Strided Convolution을 사용하기도 합니다.

3. 플래튼 층 (Flatten Layer)

다차원 특성 맵을 1차원 벡터로 바꿔 분류기와 연결합니다.

  • 역할: 특징 추출부(Conv/Pooling)와 분류부(FC)를 잇는 브릿지

4. 완전 연결층 (Fully Connected Layer)

추출된 특징을 종합해 최종 예측을 수행합니다.

특징

  • MLP처럼 모든 뉴런이 전결합
  • 지역 특징을 전역 정보로 통합

유의점

  • 파라미터 수가 커져 과적합 위험 증가
  • 완화 기법: Dropout, 정규화, BatchNorm 등

정리: CNN의 계층적 학습 구조

CNN은 다음과 같은 흐름으로 특징을 학습합니다.

  1. 합성곱 층: 저수준 특징(에지/패턴) 추출
  2. 풀링 층: 차원 축소 + 불변성 강화
  3. 플래튼 층: 벡터화
  4. 완전 연결층: 고수준 통합 및 최종 예측

즉, CNN은 지역 정보에서 전역 의미로 확장되는 계층적 학습 구조를 기반으로 이미지 분류, 객체 탐지, 세그멘테이션, 의료 영상 등 다양한 분야에 활용됩니다.