인공지능, ‘보는 법’을 배우다: 딥러닝 이미지 분석의 모든 것
우리는 인공지능이 어떻게 고양이 사진을 보고 “이것은 고양이다”라고 알아맞히는지 궁금합니다. 이 글은 그 원리를 가장 기초부터 차근차근 따라가는 여정입니다.
## 1단계: 컴퓨터는 세상을 어떻게 보는가? - 픽셀과 숫자
가장 먼저 알아야 할 것은, 컴퓨터는 우리처럼 이미지를 ‘그림’으로 보지 못한다는 사실입니다. 컴퓨터에게 이미지는 그저 수많은 숫자들의 거대한 격자(grid)일 뿐입니다.
-
픽셀(Pixel): 이미지의 가장 작은 점 하나를 말합니다.
32x32크기의 이미지는 가로 32개, 세로 32개의 픽셀로 이루어져 있습니다. -
컬러 채널(RGB): 컬러 이미지는 한 단계 더 들어갑니다. 각 픽셀은 빨강(Red), 초록(Green), 파랑(Blue) 세 가지 색의 빛을 얼마나 섞었는지를 나타내는 3개의 숫자로 이루어집니다.
결국 컴퓨터가 32x32 크기의 컬러 이미지 하나를 본다는 것은, 실제로는 32 × 32 × 3 = 3,072개의 숫자를 읽는 것과 같습니다.
## 2단계: 첫 번째 시도 - 가장 단순하지만 무모한 방법
자, 그럼 이 3,072개의 숫자들을 인공지능 모델에 넣어서 학습시키면 되지 않을까요? 이 가장 단순하고 무식한 방법이 바로 완전 연결 신경망(nn.Linear)을 사용하는 것입니다.
이 방법은 3,072개의 숫자들을 한 줄로 길게 펼친 다음, 다음 단계의 모든 신경세포(뉴런)에 하나도 빠짐없이 모든 선을 연결하는 방식입니다.
그런데 여기서 거대한 벽에 부딪힙니다.
이미지가 조금만 커져서 256x256이 되면, 입력 데이터는 256 × 256 × 3 = 196,608개가 됩니다. 만약 다음 층의 뉴런이 128개라면, 연결선의 개수(파라미터)는…
196,608 × 128= 약 2,500만 개!
단 하나의 층을 지나는 데에만 수천만 개의 계산이 필요합니다. 이는 ‘차원의 저주’라 불리는 문제로, 다음과 같은 단점이 있습니다.
- 계산량이 너무 많아 사실상 불가능합니다.
- 가장 중요한 것은, 이미지를 한 줄로 펼치면서 픽셀들의 위치 정보, 즉 공간적 의미가 완전히 사라집니다. ‘뾰족한 귀’ 모양을 만드는 픽셀들이 서로 옆에 있다는 정보가 파괴되는 것입니다.
## 3단계: 발상의 전환 - “사람처럼 ‘패턴’을 보자!”
단순한 방법이 실패했으니, 이제 근본적인 질문을 던져봅니다.
“사람은 고양이 사진을 보고 어떻게 고양이인 줄 알까요?”
우리는 픽셀 하나하나의 색깔을 분석하지 않습니다. 우리는 ‘뾰족한 귀’, ‘동그란 눈’, ‘가느다란 수염’ 같은 부분적인 특징(Feature)과 패턴(Pattern)을 보고 종합적으로 판단합니다.
CNN(합성곱 신경망)은 바로 이 아이디어에서 출발했습니다. “픽셀의 나열이 아닌, 이미지 속 의미 있는 패턴을 찾아내자!”
## 4단계: CNN의 작동법 - ‘특징 탐지기’의 여행
CNN은 커널(Kernel)이라는 아주 특별한 도구를 사용해 패턴을 찾아냅니다.
커널(Kernel)이란?
커널은 ‘특징 탐지기’ 또는 ‘패턴 돋보기’라고 생각하면 쉽습니다. ‘수직선’, ‘모서리’, ‘특정 색깔의 점’ 같은 아주 작은 패턴을 찾아내도록 만들어진 작은 숫자판(예: 3x3)입니다.
합성곱(Convolution)이란?
합성곱은 이 ‘특징 탐지기(커널)’를 들고 이미지 전체를 훑고 지나가는 과정입니다.
- 돋보기(커널)를 이미지의 왼쪽 위에 올려놓습니다.
- 돋보기와 그 아래 겹치는 이미지 영역을 보고, “내가 찾던 패턴과 얼마나 비슷한가?” 점수를 계산합니다.
- 계산된 점수를 새로운 종이(특성 맵)에 적습니다.
- 돋보기를 한 칸 옆으로 옮겨 1~3번 과정을 반복하며 이미지 전체를 훑습니다.
이렇게 완성된 특성 맵(Feature Map)은 “원본 이미지의 어느 위치에서 특정 패턴(예: 수직선)이 발견되었는지”를 나타내는 지도가 됩니다.
## ✨ CNN이 혁신적인 진짜 이유: ‘파라미터 공유’
CNN이 위대한 이유는 바로 하나의 돋보기(커널)를 재활용한다는 점입니다.
‘뾰족한 귀’의 곡선 모양은 사진의 왼쪽에 있든 오른쪽에 있든 같은 모양입니다. 따라서 하나의 ‘곡선 탐지기’ 커널만 있으면 이미지 전체를 돌아다니면서 모든 곡선을 찾아낼 수 있습니다.
nn.Linear가 수천만 개의 파라미터를 사용했던 것과 달리, CNN은 단지 3x3=9개짜리 커널 하나로 이미지 전체의 특징을 추출할 수 있습니다. 이것이 바로 파라미터 공유(Parameter Sharing)이며, CNN이 적은 계산으로도 이미지의 공간적 특징을 효과적으로 학습할 수 있는 비결입니다.
## 🚀 최종 요약
-
단순 신경망 (
nn.Linear): 이미지를 1차원 숫자 목록으로 취급해 공간 정보를 파괴하고, 파라미터 폭증 문제를 일으킵니다. -
합성곱 신경망 (CNN): 커널이라는 ‘특징 탐지기’로 이미지의 공간적 패턴을 찾아냅니다. 파라미터 공유를 통해 압도적인 효율성을 보여주며, 이는 사람이 시각적으로 세상을 이해하는 방식과 매우 유사합니다.
댓글남기기