CNN이란? 손글씨 8로 이해하는 합성곱과 풀링 4단계

CNN은 이미지 전체를 한꺼번에 외우는 대신, 작은 필터를 여러 위치에 반복 적용해 선과 모양 같은 특징을 찾는 신경망입니다. 손글씨 8이 픽셀 배열 → 합성곱 → 특징 맵 → 풀링 → 숫자별 점수로 바뀌는 흐름을 따라가면 핵심 원리를 이해할 수 있습니다.

CNN은 왜 이미지를 작은 영역으로 나눠 볼까요?

CNN은 가까이 붙은 픽셀의 관계를 유지하면서 작은 영역부터 살펴봅니다. 이미지에서 눈의 가장자리나 숫자의 굽은 획처럼 의미 있는 특징은 대개 주변 픽셀의 조합으로 나타나기 때문입니다.

사람에게는 손글씨 8로 보이지만 컴퓨터가 처음 받는 것은 픽셀의 밝기값입니다. 흑백 이미지는 높이와 너비를 가진 숫자 배열로, 컬러 이미지는 여기에 빨강·초록·파랑 채널이 더해진 구조로 표현됩니다. CNN은 이 배열을 한 줄로 먼저 펴지 않고 가로·세로의 이웃 관계를 활용합니다. TensorFlow 공식 CNN 튜토리얼도 이미지를 높이·너비·채널 구조로 다룹니다.

CNN이 손글씨 8을 픽셀 밝기값으로 받는 과정
손글씨 8도 CNN에 들어갈 때는 위치 관계를 가진 픽셀 밝기값 배열입니다.

같은 작은 필터를 이미지의 여러 위치에서 공유하는 것도 CNN의 중요한 특징입니다. 위치마다 별도의 규칙을 만드는 대신 같은 패턴 탐지 규칙을 반복해서 쓰기 때문에, 왼쪽에 있던 획이 오른쪽으로 옮겨져도 비슷한 반응을 찾을 수 있습니다. 지역 연결과 가중치 공유가 매개변수를 줄이는 이유는 Stanford CS231n 자료에서 더 자세히 확인할 수 있습니다.

CNN 합성곱은 결과 한 칸을 어떻게 만들까요?

합성곱층은 이미지의 작은 조각과 필터에서 같은 자리에 놓인 값을 곱한 뒤 모두 더해 결과 한 칸을 만듭니다. 필터를 옆이나 아래로 옮겨 같은 계산을 반복하면 위치별 반응을 담은 특징 맵이 완성됩니다.

간단한 3×3 예를 들어볼게요. 이미지 조각이 오른쪽 열만 1이고 나머지가 0이며, 필터의 각 행이 [-1, 0, 1]이라면 계산 결과는 3입니다. 오른쪽으로 밝아지는 세로 경계에 강하게 반응하는 예시입니다. 실제 CNN에서는 사람이 이 필터 값을 정해 고정하는 대신 학습 데이터로 가중치를 조정합니다.

CNN 합성곱 필터가 특징 맵 한 칸을 만드는 과정

같은 필터를 이미지 위로 옮기며 위치별 계산 결과를 모으면 특징 맵이 됩니다.

그림은 계산의 관계를 보여주는 개념도라서 셀 안 숫자는 생략했습니다. 실제 계산도 같은 원리로, 선택된 이미지 조각과 필터를 곱해 출력 한 칸을 만든 뒤 창을 이동합니다. 딥러닝 구현에서는 이 연산을 관례적으로 합성곱이라 부르지만 수학적으로는 필터를 뒤집지 않는 교차상관에 해당합니다. 이 구분은 Dive into Deep Learning의 이미지 합성곱 설명에서 확인할 수 있습니다.

필터를 여러 개 쓰는 이유

필터 하나는 특징 맵 하나를 만듭니다. 여러 필터를 사용하면 같은 이미지에서 서로 다른 방향의 경계나 질감을 동시에 찾을 수 있고, 뒤쪽 층은 앞에서 찾은 단순 특징을 조합해 굽은 획이나 더 복잡한 모양에 반응할 수 있습니다. 다만 사람이 각 필터에 ‘세로선 담당’ 같은 이름을 미리 붙이는 것은 아닙니다. 어떤 패턴에 반응하는지는 학습 결과로 결정됩니다.

ReLU는 왜 합성곱 다음에 붙을까요?

합성곱의 곱셈과 덧셈만 여러 번 이어 붙이면 전체 관계가 여전히 단순한 선형 계산에 머뭅니다. ReLU는 음수를 0으로 바꾸고 양수는 그대로 두는 비선형 활성화 함수입니다. 이 변화를 사이에 넣어야 여러 층이 단순한 직선 관계보다 복잡한 모양을 표현할 수 있습니다.

ReLU가 스스로 ‘중요한 특징’을 판단해 불필요한 값을 지우는 것은 아닙니다. 각 위치의 값에 같은 규칙을 적용할 뿐이며, 어떤 반응이 유용할지는 학습 과정에서 필터와 뒤쪽 가중치가 함께 조정되며 결정됩니다.

풀링과 분류 부분은 무엇을 하나요?

풀링은 특징 맵의 가까운 값을 요약해 가로·세로 크기를 줄이고, 분류 부분은 남은 특징을 모아 각 종류의 점수를 계산합니다. 합성곱이 학습된 필터로 특징을 찾는다면 최대 풀링은 정해진 영역에서 가장 큰 값을 고르는 고정 계산입니다.

예를 들어 2×2 영역의 값이 0, 1, 3, 4라면 최대 풀링의 결과는 4입니다. 이런 방식으로 공간 크기를 줄이면 뒤쪽 계산량이 감소하고 작은 위치 변화에 덜 민감해질 수 있습니다. 대신 세부 위치 정보가 사라질 수 있으므로 풀링이 모든 CNN에 반드시 필요한 것은 아닙니다. 공식 예제에서도 최대 풀링과 평균 풀링을 고정된 창의 요약 연산으로 설명합니다.

CNN이 특징 맵을 풀링하고 숫자별 점수로 분류하는 과정

큰 반응을 남겨 특징 맵을 줄인 뒤 각 숫자의 점수를 비교해 예측 결과를 고릅니다.

특징 추출이 끝나면 남은 값들을 모아 숫자 0부터 9까지의 점수를 계산합니다. 8의 점수가 가장 높다면 모델은 입력을 8로 예측합니다. 이 점수 자체가 곧 확률은 아니며, 확률이 필요할 때는 소프트맥스 같은 변환을 추가할 수 있습니다. PyTorch의 손글씨 분류 예제는 합성곱·ReLU·풀링을 거친 값을 완전연결층에 전달해 10개 점수를 출력합니다.

여기서 그림의 ‘8 후보’는 흐름을 설명하기 위한 예시입니다. 실제로 8의 점수가 가장 높아지는지는 학습된 가중치와 입력 이미지에 달려 있습니다. 모델은 사람이 숫자 8의 규칙을 코드로 입력해서 맞히는 것이 아니라, 여러 이미지와 정답을 비교하며 분류에 도움이 되는 계산 규칙을 익힙니다.

CNN 필터는 누가 정하나요?

학습할 때 모델이 낸 점수와 정답의 차이를 이용해 합성곱 필터와 분류층의 가중치를 조정합니다. 예측 단계에서는 학습을 마친 가중치를 사용해 새 이미지를 계산합니다.

손글씨 이미지와 정답 숫자 8을 함께 제공했다고 해보겠습니다. 모델의 예측이 틀리면 그 차이를 나타내는 손실을 계산하고, 역전파로 각 가중치를 어느 방향으로 바꿀지 구합니다. 이 과정을 여러 학습 이미지에 반복하면서 유용한 필터가 만들어집니다. 이미지와 정답을 함께 주는 방식이 낯설다면 지도학습의 기본 개념을 먼저 읽으면 흐름이 더 잘 연결됩니다.

학습이 끝난 뒤 새 손글씨를 분류하는 예측 단계에서는 정답을 함께 넣지 않습니다. 저장된 필터와 분류 가중치로 앞 방향 계산만 수행해 점수를 얻습니다. 따라서 새 이미지를 한 번 예측했다고 필터가 자동으로 다시 학습되는 것은 아닙니다.

CNN 구조는 항상 이 순서와 같을까요?

모든 CNN이 합성곱 다음에 반드시 풀링을 두거나 마지막에 완전연결층을 쓰는 것은 아닙니다. 이 글의 흐름은 각 연산의 역할을 이해하기 위한 대표적인 분류 구조입니다. 실제 모델은 합성곱의 이동 간격을 늘려 크기를 줄이거나, 여러 특징 맵을 평균내는 방식으로 분류 결과를 만들 수도 있습니다.

구조가 달라도 질문은 같습니다. 입력의 공간 관계를 어떻게 보존하는지, 어느 단계에서 특징을 찾는지, 특징 맵의 크기를 어디서 줄이는지, 최종 점수를 어떻게 만드는지를 확인하면 됩니다. 이 네 가지 질문으로 모델 그림이나 코드를 읽으면 층 이름을 외우는 것보다 전체 역할을 파악하기 쉽습니다.

CNN을 이해할 때 기억할 4가지

  • 입력: CNN은 이미지를 픽셀의 높이·너비·채널 배열로 받습니다.
  • 합성곱: 작은 필터를 여러 위치에 적용해 특징 맵을 만듭니다.
  • 풀링: 가까운 반응을 요약해 특징 맵의 공간 크기를 줄일 수 있습니다.
  • 분류: 추출한 특징을 모아 종류별 점수를 계산하며, 필터 값은 학습으로 정해집니다.

이 흐름을 잡은 뒤에는 필터 크기, 스트라이드, 패딩을 공부하면 특징 맵의 크기가 왜 달라지는지 이해할 수 있습니다. 시간 순서가 있는 데이터를 처리하는 구조와 비교하고 싶다면 CNN과 RNN의 차이로 이어가면 좋습니다.

자주 묻는 질문

CNN은 이미지에만 사용할 수 있나요?

이미지에서 널리 쓰이지만 지역적인 패턴이 중요한 음성·시계열·텍스트에도 1차원 합성곱을 적용할 수 있습니다. 입력 구조에 맞춰 필터가 움직이는 차이가 있습니다.

풀링층이 없으면 CNN이 아닌가요?

아닙니다. 풀링은 선택적인 구성 요소입니다. 보폭이 큰 합성곱 등으로도 특징 맵의 공간 크기를 줄일 수 있습니다.

특징 맵은 원본 이미지와 같은 모양인가요?

항상 같지는 않습니다. 필터 크기, 이동 간격인 스트라이드, 가장자리를 채우는 패딩 설정에 따라 가로·세로 크기가 달라지고, 필터 수에 따라 채널 수도 달라집니다.

참고 자료

댓글 남기기