CNN: 개요

Ohback·2025년 3월 23일

1. 자연어 + 이미지 멀티모달이란?

멀티모달 학습은 서로 다른 유형의 데이터를 결합하여 AI 모델이 더 깊은 이해를 할 수 있도록 만드는 방법

1-1. 대표적인 멀티모달 조합

모달리티 (Modalities)설명예제
자연어 (NLP) + 이미지 (CV)텍스트와 이미지를 함께 이해ChatGPT+Vision, DALL·E, CLIP
자연어 (NLP) + 음성 (ASR)텍스트와 음성을 함께 분석음성 비서(Alexa, Siri)
이미지 (CV) + 영상 (Video)이미지와 영상을 함께 처리자율 주행 시스템
텍스트 + 코드자연어와 코드 분석GitHub Copilot

2. 합성곱 신경망 (Convolutional Neural Network, CNN)

CNN은 이미지 데이터에서 특징을 추출하는 대표적인 딥러닝 모델로, 이미지 내의 특징(Feature)을 추출하고 이를 활용하여 객체 인식, 이미지 분류, 이미지-텍스트 매칭 등의 작업을 수행할 수 있다.

2-1. CNN의 핵심 구조

구성 요소설명예제
Convolution Layer이미지에서 특징(Feature) 추출모서리, 질감, 색상 감지
Pooling Layer특징을 축소하여 계산량 감소Max Pooling, Average Pooling
Fully Connected Layer특징을 학습하여 최종 예측 수행개 vs 고양이 분류
Activation Function비선형성을 추가하여 복잡한 패턴 학습ReLU, Softmax

2-2. Filter & Feature Map

필터(Filter)는 CNN에서 이미지의 특징을 추출하는 핵심 요소로 이미지 위를 슬라이딩하면서 특정한 패턴을 감지하고, 이를 바탕으로 특징맵(Feature Map)을 생성한다. 또, 여러 개의 필터를 사용하여 서로 다른 특징을 감지할 수 있다.

  • 필터의 주요 특징
    (1) 작은 크기의 행렬(예: 3×3, 5×5)
    (2) 이미지의 특정 패턴(모서리, 질감, 윤곽선 등)을 감지
    (3) 입력 이미지의 모든 위치에서 적용됨 (슬라이딩 윈도우 방식)

  • 필터 적용 과정
    (1) 입력 이미지(픽셀 행렬) 위에 필터를 놓음
    (2) 필터와 이미지 부분의 값을 곱한 후 합산(Convolution 연산)
    (3) 이 과정을 반복하여 새로운 특징맵(Feature Map) 생성

  • 특징맵 생성 과정
    (1) 입력 이미지에 필터 적용
    (2) 필터와 겹치는 부분의 값을 곱하고 더한 값으로 새로운 행렬(Feature Map) 생성
    (3) 여러 개의 필터를 사용하여 다양한 특징맵 생성

2-3. Padding & Stride

패딩(Padding)은 입력 이미지의 가장자리에 0을 추가하여 크기를 늘리는 기법으로 합성곱 연산 후에도 원래 크기를 유지할 수 있고, 경계 부분의 정보 손실을 막을 수 있다.
스트라이드(Stride)는 필터가 이동하는 간격을 의미하며 값이 클수록 특징맵 크기가 작아지고, 계산량이 줄어든다.

  • 패딩이 필요한 이유
    (1) 이미지 크기 유지 → 합성곱을 적용하면 이미지 크기가 줄어드는데, 패딩을 하면 크기를 유지할 수 있음
    (2) 가장자리 정보 유지 → 패딩을 하지 않으면 가장자리 픽셀은 합성곱 연산을 적게 적용받아 정보가 손실될 수 있음
    (3) 특징맵 크기 조절 가능 → 모델 설계 시 원하는 크기를 유지하면서 특징 추출 가능

  • 패딩 방식
    Valid Padding ("No Padding"): 패딩을 하지 않음
    Same Padding (Zero Padding): 0을 추가하여 입력과 동일한 크기의 출력 유지

  • 스트라이드의 역할
    (1) 특징맵 크기 조절 → 스트라이드를 크게 하면 출력 크기가 작아짐
    (2) 연산량 감소 → 스트라이드가 1보다 크면 계산량이 줄어들어 더 빠르게 학습 가능
    (3) 특징을 더 간결하게 추출 → 스트라이드가 클수록 작은 특징을 무시하고 더 큰 특징을 강조

image

2-4. Pooling

풀링(Pooling)은 특징맵의 크기를 줄이고, 중요한 정보만 남기는 과정으로 CNN이 더 적은 계산량으로도 유용한 특징을 학습할 수 있도록 도와준다.

  • 풀링의 주요 기능
    (1) 특징맵의 크기를 줄여 계산량 감소
    (2) 이미지의 위치 변화에도 강인한 특성 유지
    (3) 노이즈를 제거하고 중요한 특징만 남김

  • 풀링의 종류
    Max Pooling (최대 풀링): 특정 영역에서 가장 큰 값을 선택 (모서리 및 중요한 특징 유지)
    Average Pooling (평균 풀링): 특정 영역의 평균 값을 계산 (전체적인 정보 보존에 유용하지만 두드러진 특징이 약해짐)
    Global Pooling (글로벌 풀링): 전체 특징 맵에서 가장 큰 값을 반환하는 글로벌 최대 풀링(Global Max Pooling), 전체 값의 평균을 반환하는 글로벌 평균 풀링(Global Average Pooling)이 있으며 주로 CNN 마지막 단계에서 특징을 요약하는 데 사용

2-5. CNN에서 경계 정보가 손실되는 이유

  • 필터가 이미지 중앙보다 경계 부분을 덜 학습하기 때문
  • 합성곱 연산 후 출력 크기가 줄어들면서 경계 정보가 사라지기 때문
  • 경계 픽셀은 주변 정보가 부족해서 학습할 데이터가 적기 때문
  • 패딩 없이 스트라이드를 크게 하면 경계 정보가 연산되지 않기 때문
# 예시

입력 이미지 (5×5)
1  2  3  4  5  
6  7  8  9  10  
11 12 13 14 15  
16 17 18 19 20  
21 22 23 24 25  

필터(3×3)를 적용하면 중앙 픽셀(13)은 여러 번 연산됨
반면, 가장자리 픽셀(1, 5, 21, 25)은 한두 번만 연산됨

따라서, 패딩(Padding), 적절한 스트라이드(Stride), Dilated Convolution 등을 활용하면 경계 정보를 보존하면서 CNN을 최적화할 수 있음

2-6. CNN의 구조와 동작

image (1) 입력 이미지 → 패딩 & 스트라이드 적용 (크기 조정)

  • 입력 이미지의 크기를 유지하거나 조정하기 위해 패딩(Padding) 적용
  • 필터(커널)가 일정 간격(Stride)으로 이동하며 합성곱 연산 수행

✔ 패딩 역할: 이미지의 경계 정보를 보존하기 위해 가장자리에 0을 추가
✔ 스트라이드 역할: 필터의 이동 간격을 조절하여 출력 크기를 조정

(2) 합성곱 연산 (Convolution) → 특징 추출

  • CNN의 핵심 과정!
  • 작은 크기의 필터(커널)를 사용하여 이미지의 특정 패턴(모서리, 색상 변화 등) 감지
  • 필터가 겹치는 부분의 픽셀 값을 곱하고 더해서 새로운 행렬(Feature Map) 생성

✔ 합성곱 역할: 이미지에서 특정 패턴을 감지하고, 이를 수치화하여 특징맵(Feature Map) 생성

(3) 활성화 함수(ReLU) → 비선형성 추가

  • CNN은 단순한 선형 연산만으로는 복잡한 패턴을 학습할 수 없음
  • ReLU 활성화 함수를 적용하여 비선형성을 추가하여 복잡한 패턴을 학습 가능하게 만듦

✔ ReLU 역할: 음수 값을 0으로 변환하여 모델의 표현력을 높이고, 학습 속도를 향상

(4) 풀링(Pooling) → 크기 축소 및 정보 압축

  • 특징맵(Feature Map)의 크기를 줄여 계산량을 줄이고, 중요한 정보만 유지
  • Max Pooling(최대값) 또는 Average Pooling(평균값) 사용

✔ 풀링 역할: 이미지 크기를 줄이면서도 가장 중요한 특징 유지

(5) Fully Connected Layer (완전 연결층) → 최종 유사도 기반 예측

  • 최종적으로 추출된 특징을 1D 벡터로 변환하여 신경망(Dense Layer)에 전달
  • Softmax 또는 Sigmoid 활성화 함수를 사용하여 최종 클래스를 예측

✔ Fully Connected Layer 역할: CNN이 추출한 특징을 기반으로 최종적인 예측 수행 (예: "고양이 vs 개" 분류 시, "고양이"일 확률 0.9, "개"일 확률 0.1)

참고 자료: https://ardino.tistory.com/40
이미지1 출처: https://excelsior-cjh.tistory.com/79
이미지2 출처: https://taewan2002.medium.com/

profile
기록은 기억을 지배한다.

0개의 댓글