합성곱 신경망(CNN)의 기본 원리와 특징

by 송동훈 Hoon Song

딥 러닝에서 이미지 데이터를 처리하는 데 최적화된 합성곱 신경망(Convolutional Neural Network, CNN)은 컴퓨터 비전 분야에서 혁신적인 성과를 이루어냈다. CNN이 등장하기 전에는 복잡한 이미지 데이터를 효과적으로 처리하기 어려웠으나, CNN은 이러한 한계를 극복하는 독특한 구조를 가지고 있다.


기존 신경망(MLP)의 이미지 처리 한계

일반적인 다층 퍼셉트론(Multi-Layer Perceptron, MLP)으로 이미지를 처리할 때 발생하는 주요 문제점들은 다음과 같다:

Screenshot 2025-04-14 at 8.52.25 PM.png

1. 입력 차원의 문제

고해상도 이미지(예: 1000×1000 픽셀)는 백만 개의 입력 노드가 필요

이로 인해 첫 번째 층의 가중치 수가 기하급수적으로 증가(백만 입력 × 만 개 은닉 노드 = 100억 개 가중치)

이렇게 많은 파라미터는 학습이 현실적으로 불가능

2. 공간적 정보 손실

2D 이미지를 1D 벡터로 변환(시리얼라이제이션)하면 픽셀 간의 공간적 관계 정보가 사라짐

이미지에서는 픽셀이 독립적으로 의미를 갖기보다 주변 픽셀과의 관계가 중요

웨이트 덧셈 과정에서도 위치 정보가 더 희석됨

3. 이동 불변성 부재

이미지에서 객체가 약간 이동, 회전, 크기 변화해도 인간은 동일한 객체로 인식

MLP는 이러한 변형에 매우 취약하여 완전히 다른 입력으로 인식

이를 해결하려면 모든 가능한 변형에 대해 학습해야 하므로 데이터 증강이 필요하나 계산 비용이 매우 큼


CNN의 핵심 구조와 작동 원리

CNN은 위의 문제들을 해결하기 위해 두 가지 핵심 메커니즘을 도입했다:

Screenshot 2025-04-14 at 8.53.43 PM.png

1. 합성곱(Convolution) 층

공유 가중치(Shared Weights): 전체 이미지에 작은 필터를 적용하여 파라미터 수를 크게 줄임

로컬 연결성(Local Connectivity): 각 뉴런은 입력의 전체가 아닌 일부 영역만 처리하여 공간적 정보 보존

필터 학습: 합성곱 층은 이미지의 중요한 특징(에지, 텍스처 등)을 자동으로 학습

2. 풀링(Pooling) 층

이동 불변성(Translation Invariance): 객체의 위치가 약간 바뀌어도 동일한 특징으로 인식

차원 축소(Dimension Reduction): 입력 크기를 줄여 계산 효율성 증가 및 파라미터 감소

맥스 풀링(Max Pooling): 주로 사용되는 방식으로, 영역 내 최대값만 선택하여 중요 특징 보존


CNN의 전체 구조

CNN은 크게 두 부분으로 나눌 수 있다:

Screenshot 2025-04-14 at 8.54.33 PM.png

1. 특징 추출부(Feature Extraction)

여러 개의 합성곱 층과 풀링 층이 번갈아 나타남

각 층에서는 다음 작업이 순차적으로 이루어짐:

1) 합성곱(Convolution): 필터를 이용한 특징 탐지

2) 활성화 함수(주로 ReLU): 비선형성 도입

3) 풀링(Pooling): 특징 맵의 크기 축소 및 위치 불변성 부여

이 과정을 통해 점점 더 추상적이고 고수준의 특징을 추출

2. 분류부(Classification)

완전 연결 층(Fully Connected Layer)으로 구성

추출된 특징을 바탕으로 최종 분류 수행

일반적인 MLP와 동일한 구조로 작동

CNN의 대부분의 파라미터가 여기에 집중됨


CNN의 응용 분야

CNN은 다양한 컴퓨터 비전 문제에 적용된다:

Screenshot 2025-04-14 at 8.53.43 PM.png

1. 이미지 분류(Image Classification)

이미지가 어떤 범주에 속하는지 판별(예: 고양이, 개, 새 등)

대표적인 응용으로 ImageNet 챌린지에서 2012년 AlexNet의 성공

2. 객체 위치 파악(Object Localization)

이미지 내에서 특정 객체의 위치를 경계 상자로 표시

풀링 층으로 인한 위치 정보 손실로 분류보다 어려운 문제

3. 객체 탐지(Object Detection)

여러 객체의 종류와 위치를 동시에 찾는 문제

이미지 내 다양한 객체에 대한 경계 상자와 클래스 정보 제공

4. 세그멘테이션(Segmentation)

이미지의 각 픽셀을 특정 클래스로 분류

객체의 정확한 윤곽을 픽셀 단위로 구분하는 가장 세밀한 작업


CNN의 역사적 발전

CNN의 발전 과정에서 중요한 모델들:


1. LeNet(1998)

Yann LeCun이 개발한 최초의 CNN 모델

손글씨 숫자 인식(MNIST 데이터셋)에 성공적으로 적용

상대적으로 단순한 구조였으나 CNN의 기본 개념 확립

2. AlexNet(2012)

ImageNet 챌린지에서 기존 머신러닝 방법들을 크게 뛰어넘는 성능 달성

딥 러닝의 우수성을 입증하는 전환점

더 깊은 구조와 ReLU 활성화 함수 등 혁신적 요소 도입


이미지 데이터의 표현 방식

CNN에서 이미지 데이터는 다음과 같이 표현된다:

Screenshot 2025-04-14 at 8.54.49 PM.png

1. 그레이스케일 이미지

2D 행렬로 표현(높이 × 너비)

각 픽셀은 0(검은색)부터 255(흰색)까지의 값을 가짐

단일 채널로 구성

2. 컬러 이미지

3D 텐서로 표현(높이 × 너비 × 채널)

RGB 컬러 모델에서는 3개 채널(빨강, 초록, 파랑)로 구성

각 픽셀은 각 채널별로 0~255 값을 가짐


CNN은 이러한 다차원 데이터를 자연스럽게 처리할 수 있는 구조로, 이미지 분석에 특화된 신경망 아키텍처라고 할 수 있다.

keyword
일요일 연재
이전 18화가중치 초기화(Weight Initialization)