[딥러닝] CNN (Convolutional Neural Network) 정리, 레이어 구성

gyurili·2025년 2월 16일
0

AI

목록 보기
15/23

CNN을 구성하는 각 레이어의 역할에 대해 설명해보세요.



CNN (Convolution Neural Network)

CNN은 이미지나 시계열 데이터에서 특징을 추출하고 학습하는 데 특화된 인공신경망이다. CNN의 특징을 추출하는 Convolutional Layer와 정보를 압축하는 Pooling Layer의 반복으로 이루어져 있다.



1. 입력 레이어 (Input Layer)

Input Layer는 CNN의 첫 번째 레이어로, 입력 데이터(이미지, 시계열 데이터 등)를 받는다. 예를 들어, 28×28 크기의 흑백 이미지를 입력하면 (28, 28, 1), 컬러 이미지는 (28, 28, 3) 형태로 들어간다.


2. 컨볼루션 레이어 (Convolutional Layer)

Convolution Layer는 입력 데이터에서 특징(feature)을 추출하는 역할을 한다. 필터는 작은 행렬을 사용해 이미지를 스캔하면서, 엣지나 텍스처 같은 특징을 학습한다.

예를 들어, CNN이 X자 모양의 픽셀만 강조하는 필터를 사용한다고 하자. 이 필터가 입력 이미지 위를 이동하면서 특정 영역 위에 놓이면, X자 모양의 픽셀 값만 더한 결과가 출력 특징 맵에 저장된다.

실제 CNN에서 모델 초기에는 위의 x자 필터와 같이 랜덤한 필터 값을 갖고 학습을 시작한다. 이후 학습을 진행하면서 데이터에 최적화된 필터 값이 자동으로 조정되고, 필요한 필터를 자동으로 학습하게 된다.


CNN의 초기 층(1~2층)에서는 엣지(경계선), 직선, 대각선 등 단순한 패턴을 감지한다.

이후 중간 층(3~5층)에서는 텍스처, 곡선, 윤곽선을 학습하고, 깊은 층(6층 이상)에서는 객체의 형태(눈, 코, 사물 등)를 학습한다.


3. 풀링 레이어 (Pooling Layer)

Pooling Layer는 특징 맵의 크기를 줄여 연산량을 감소시키고, 중요한 특징을 유지하면서 불필요한 정보를 제거한다.
이때, pooling 방법에는 특정 영역에서 가장 큰 값을 추출하는 max pooling, 영역 내 값들을 평균내어 추출하면 average pooling이 있다.


4. 완전 연결 레이어 (Fully Connected Layer, FC Layer)

Fully Connected Layer는 컨볼루션과 풀링 과정을 거쳐 추출된 특징을 기반으로 최종 예측을 수행한다. 예를 들어, 입력 이미지를 특정 클래스(예: 개, 고양이 등)로 분류하는 역할을 하는 것이다. 일반적으로 다층 퍼셉트론(MLP) 구조를 가진다.

마지막 feature map을 일렬로 펼친 뒤, 이것을 FC layer의 입력으로 준다. 이 입력은 여러 hidden layer를 거쳐 분류 문제를 해결하게 된다.


5. 출력 레이어 (Output Layer)

Output Layer는 최종적으로 각 클래스에 대한 확률을 출력한다.
위 자료에서 볼 수 있듯이, 얼룩말 이미지가 입력으로 들아간다면 Horse 클래스일 확률은 0.2, Zebra 클래스일 확률은 0.7, Dog 클래스일 확률은 0.1이라는 것을 출력한다.

profile
개발 공부ᕦ(ò_óˇ)ᕤ

0개의 댓글