CNN(합성곱 신경망)의 구조와 원리: 이미지 인식의 핵심 아키텍처
딥러닝 기반 컴퓨터 비전에서 가장 널리 활용되는 모델 중 하나가 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은 다음과 같은 흐름으로 특징을 학습합니다.
- 합성곱 층: 저수준 특징(에지/패턴) 추출
- 풀링 층: 차원 축소 + 불변성 강화
- 플래튼 층: 벡터화
- 완전 연결층: 고수준 통합 및 최종 예측
즉, CNN은 지역 정보에서 전역 의미로 확장되는 계층적 학습 구조를 기반으로 이미지 분류, 객체 탐지, 세그멘테이션, 의료 영상 등 다양한 분야에 활용됩니다.