CNN 전체 구조란? 이미지 입력부터 분류 결과까지 한 번에 이해하기

지난 글에서는 특징맵의 크기를 줄이고 중요한 반응을 남기는 풀링(Pooling)을 알아보았습니다. 지금까지 필터, 합성곱, 특징맵, 풀링을 하나씩 살펴봤다면 이제 이 부품들이 CNN 안에서 어떤 순서로 연결되는지 볼 차례입니다.



CNN(Convolutional Neural Network, 합성곱 신경망)은 이미지에서 특징을 추출하고, 그 특징을 바탕으로 무엇이 보이는지 판단하는 신경망입니다. 이번 글에서는 이미지 한 장이 CNN에 들어와 분류 결과가 되기까지의 전체 흐름을 초보자 눈높이에서 정리하겠습니다.

CNN은 크게 두 부분으로 나뉩니다

CNN의 구조는 크게 특징 추출 부분분류 부분으로 나눌 수 있습니다.

  • 특징 추출: 합성곱, 활성화 함수, 풀링 등을 거치며 선·모서리·질감·형태를 찾습니다.
  • 분류: 추출한 특징을 종합해 고양이, 자동차, 사람처럼 최종 범주를 판단합니다.

쉽게 비유하면 특징 추출 부분은 사진에서 단서를 찾는 조사팀이고, 분류 부분은 모인 단서를 보고 결론을 내리는 판정팀입니다.

CNN은 어떤 순서로 동작할까?

기본적인 이미지 분류 CNN은 다음과 같은 흐름으로 동작합니다.

  1. 입력 이미지
  2. 합성곱 층
  3. 활성화 함수
  4. 풀링 층
  5. 합성곱·활성화·풀링 반복
  6. 펼치기 또는 전역 평균 풀링
  7. 출력층에서 분류 결과 계산


1. 입력 이미지

CNN이 받는 이미지는 컴퓨터 안에서 숫자 배열로 표현됩니다. 흑백 이미지는 보통 밝기를 나타내는 하나의 채널을 사용하고, 컬러 이미지는 빨강·초록·파랑을 나타내는 여러 채널을 사용합니다. CNN은 그림을 사람처럼 바라보는 대신 이 숫자들을 계산합니다.

2. 합성곱 층에서 특징 찾기

합성곱 층(Convolutional Layer)에서는 여러 필터가 이미지 위를 이동하며 특징을 찾습니다. 각 필터가 위치마다 보인 반응을 모으면 특징맵이 만들어집니다.

초기 층은 선, 방향, 모서리 같은 단순한 특징에 반응하는 경우가 많습니다. 뒤쪽 층은 앞에서 찾은 단순한 특징을 조합해 질감이나 물체의 일부처럼 더 복잡한 패턴을 표현할 수 있습니다.

3. 활성화 함수로 비선형성 더하기

합성곱 결과에는 보통 활성화 함수(Activation Function)가 적용됩니다. 대표적인 ReLU는 음수 값을 0으로 만들고 양수 값은 유지합니다. 이런 비선형 변환이 있어야 여러 층을 쌓았을 때 단순한 직선 계산만 반복하지 않고 복잡한 관계를 학습할 수 있습니다.

4. 풀링으로 특징맵 줄이기

풀링 층은 특징맵의 작은 영역을 대표값으로 바꿔 가로와 세로 크기를 줄입니다. 최대 풀링은 영역 안에서 가장 큰 값을 남깁니다. 이를 통해 다음 층이 처리할 데이터와 계산량을 줄이고, 작은 위치 변화에 덜 민감하도록 도울 수 있습니다.

5. 특징 추출 블록 반복하기

CNN은 합성곱과 활성화 함수, 필요에 따라 풀링을 여러 번 반복합니다. 앞부분에서는 작은 모서리나 선을 찾고, 층이 깊어질수록 그 단서들을 조합해 눈, 바퀴, 얼굴 윤곽처럼 더 큰 형태를 표현합니다.

다만 모든 CNN이 반드시 같은 순서나 같은 개수의 층을 사용하는 것은 아닙니다. 풀링 대신 스트라이드가 큰 합성곱으로 크기를 줄이거나, 여러 합성곱을 연속으로 배치하는 구조도 있습니다.

6. 특징맵을 분류 가능한 형태로 바꾸기

특징 추출이 끝나면 남은 특징맵을 분류 부분에 전달해야 합니다. 전통적인 구조에서는 여러 특징맵을 긴 숫자 줄로 바꾸는 펼치기(Flatten)를 사용합니다. 다른 구조에서는 각 특징맵의 평균을 하나의 값으로 만드는 전역 평균 풀링(Global Average Pooling)을 사용하기도 합니다.

7. 출력층에서 최종 결과 만들기

마지막 층은 모인 특징을 이용해 각 범주에 해당하는 점수를 계산합니다. 예를 들어 고양이, 강아지, 자동차를 구분하는 모델이라면 세 범주에 대한 점수가 만들어집니다. 분류 문제에서는 이 점수를 확률처럼 해석하기 위한 변환을 적용하고 가장 높은 값을 가진 범주를 예측 결과로 선택할 수 있습니다.

학습할 때는 무엇이 바뀔까?

CNN이 처음부터 유용한 필터를 알고 있는 것은 아닙니다. 학습 데이터에 대한 예측과 정답의 차이를 손실 함수로 계산한 뒤, 역전파와 경사하강법을 통해 필터와 분류 부분의 가중치를 조금씩 수정합니다.

이 과정이 반복되면서 어떤 필터는 세로선에, 다른 필터는 곡선이나 특정 질감에 유용하게 반응하도록 조정됩니다. 즉 CNN의 전체 구조는 앞에서 배운 가중치, 활성화 함수, 손실 함수, 역전파가 이미지 처리 과정 안에서 함께 작동하는 사례입니다.

크기는 작아지고 특징은 깊어집니다

CNN을 통과할수록 특징맵의 가로와 세로 크기는 대체로 작아지고, 서로 다른 특징을 담는 채널 수는 늘어나는 설계가 흔합니다. 앞쪽 층은 위치 정보를 비교적 자세히 유지하고, 뒤쪽 층은 공간을 압축하면서 더 다양한 특징 표현을 담습니다.

그러나 이는 흔한 설계 경향이지 모든 CNN에 적용되는 절대 규칙은 아닙니다. 정확한 크기와 채널 수는 모델의 목적과 구조에 따라 달라집니다.

한눈에 정리하기

  • 입력 이미지는 숫자 배열로 CNN에 전달됩니다.
  • 합성곱 층은 필터를 이용해 특징맵을 만듭니다.
  • 활성화 함수는 복잡한 패턴을 학습할 수 있도록 비선형성을 더합니다.
  • 풀링은 특징맵을 줄여 핵심 반응을 간결하게 전달합니다.
  • 여러 특징 추출 단계를 거치며 단순한 선에서 복잡한 형태로 이해가 확장됩니다.
  • 마지막 분류 부분은 추출된 특징을 종합해 예측 결과를 만듭니다.

지금까지 CNN이 이미지를 입력받아 특징을 찾고 최종 판단을 내리는 전체 과정을 연결해봤습니다. 다음 글부터는 순서가 있는 데이터를 다루는 신경망으로 범위를 넓혀, RNN(Recurrent Neural Network)이 문장이나 시계열의 흐름을 어떻게 처리하는지 알아보겠습니다.

댓글

이 블로그의 인기 게시물

AI의 학습 과정

AI란 무엇일까?

머신러닝 - AI는 어떻게 스스로 규칙을 찾을까?