1. 컴퓨터에게 "개"와 "고양이"를 가르치는 가장 멍청한 방법
사람에게 강아지 사진을 보여주면 0.1초 만에 "강아지네!"라고 대답합니다. 우리는 태어나서 수많은 강아지를 보았고, 눈(시각 세포)으로 들어온 빛의 정보를 뇌의 시각 피질이 순식간에 처리해서 패턴을 인식하기 때문입니다. 하지만 컴퓨터에게 사진은 그저 숫자(픽셀 값)들의 거대한 2차원 행렬일 뿐입니다. 가로 1000px, 세로 1000px의 컬러 사진은 컴퓨터 입장에서 3백만 개(1000 x 1000 x 3 RGB 채널)의 숫자 덩어리입니다. 이 숫자의 홍수 속에서 어떻게 "귀여운 강아지"라는 고차원적인 개념을 뽑아낼 수 있을까요?
과거(2012년 이전)에는 이 숫자들을 강제로 한 줄로 쫙 펴서(Flatten) 전통적인 인공신경망(DNN, Dense Neural Network)에 넣었습니다. 마치 1000조각짜리 퍼즐을 다 뜯어서 바닥에 일렬로 늘어놓고 "이게 무슨 그림이게?"라고 묻는 것과 같습니다. 이렇게 하면 "공간적 정보(Spatial Structure)가 파괴"됩니다. 이미지에서 '눈' 바로 옆에 '코'가 있다는 사실, 즉 픽셀 간의 거리가 중요한데, 한 줄로 펴버리면 그 위치 정보가 사라집니다. 강아지가 사진 왼쪽 구석에 있든 오른쪽 구석에 있든 똑같은 강아지인데, 컴퓨터는 이를 완전히 다른 데이터로 인식하게 되는 것이죠.
그래서 등장한 것이 CNN (Convolutional Neural Network, 합성곱 신경망)입니다. 이미지를 억지로 펴지 않고, "2차원 이미지 그대로 도장(Filter)을 찍어서 특징을 찾아내는 방식"입니다. 이것은 인간의 뇌가 시각 정보를 처리하는 방식(Receptive Field)을 모방한 혁신적인 아이디어였습니다.
2. 핵심 원리 1 - 컨볼루션 (Convolution, 합성곱) - 특징 추출
CNN의 알파이자 오메가는 바로 필터(Filter 또는 Kernel)입니다. 보통 3x3 또는 5x5 크기의 작은 숫자 격자판인 이 필터가 원본 이미지 위를 미끄러지듯 이동합니다(Sliding Window).
필터가 하는 일 - 특징 검출 (Feature Detection)
필터는 이미지의 각 부분과 수학적인 연산(합성곱: 각 칸의 숫자를 곱해서 모두 더함)을 수행합니다. 이 과정은 마치 "숨은 그림 찾기"와 같습니다.
- 세로선 필터:
[[0,1,0], [0,1,0], [0,1,0]]같은 모양의 필터가 지나가면, 이미지에서 세로선이 있는 부분만 값이 크게 나옵니다. - 가로선 필터: 가로선이 있는 부분을 찾아냅니다.
- 색상 필터: 빨간색 사과가 있는 위치를 찾아냅니다.
계층적 학습 (Hierarchical Learning)
CNN의 진정한 힘은 이 필터들이 층층이 쌓일 때 나타납니다.
- Layer 1 (얕은 층): 아주 단순한 특징을 찾습니다. (가로선, 세로선, 대각선, 색상 점)
- Layer 2 (중간 층): 1단계에서 찾은 선들이 모여서 만들어지는 패턴을 찾습니다. (동그라미, 네모, 눈 모양, 코 모양)
- Layer 3 (깊은 층): 2단계 패턴들이 모여서 형성하는 고차원적인 물체를 인식합니다. (사람 얼굴, 자동차 바퀴, 고양이 귀)
이것이 바로 딥러닝(Deep Learning)입니다. 인간이 "여기엔 눈이 있고, 저기엔 코가 있다"라고 룰(Rule)을 짜주는 게 아니라, AI가 수만 장의 사진을 보며 스스로 "이 필터를 썼더니 고양이를 잘 맞추네?"라며 필터의 숫자(Weight)를 학습(Backpropagation)해 나가는 것입니다.
3. 핵심 원리 2 - 패딩(Padding)과 스트라이드(Stride)
필터가 이동할 때 두 가지 중요한 설정값(Hyperparameter)이 있습니다.
-
스트라이드 (Stride, 보폭):
- 필터가 한 번에 몇 칸씩 이동할지 결정합니다.
- Stride가 1이면 한 칸씩 꼼꼼하게 봅니다. (정보 보존, 출력 크기 큼)
- Stride가 2 이상이면 듬성듬성 건너뛰며 봅니다. (이미지 크기가 줄어듬, 연산량 감소, 다운샘플링 효과)
-
패딩 (Padding, 여백):
- 3x3 필터가 이미지의 가장자리 모서리를 찍으려면 필터의 일부가 이미지 밖으로 나가야 합니다.
- 이때 바깥 부분을 0으로 채워주는 것을 제로 패딩(Zero Padding)이라고 합니다.
- 역할: 컨볼루션을 거칠 때마다 이미지 크기가 줄어드는 것을 방지합니다. 패딩이 없으면(Valid Padding) 층이 깊어질수록 이미지가 소멸해버려 깊은 신경망을 만들 수 없습니다. 똑같은 크기를 유지(Same Padding)하게 해줍니다.
4. 핵심 원리 3 - 풀링 (Pooling) - 선택과 집중
컨볼루션을 통해 엄청나게 많은 특징 지도(Feature Map)가 만들어집니다. 데이터가 너무 큽니다. 모든 픽셀 정보를 다 가지고 있으면 연산량이 너무 많아져서 슈퍼컴퓨터도 뻗어버립니다. 게다가 우리는 "강아지의 귀가 왼쪽에서 345번째 픽셀에 있다"는 TMI가 필요 없습니다. "왼쪽 위에 귀가 있다" 정도의 추상적인 정보면 충분합니다.
그래서 풀링(Pooling) 과정을 통해 이미지의 크기를 줄이고(Downsampling), 중요하지 않은 정보는 과감히 버립니다.
맥스 풀링 (Max Pooling)
가장 많이 쓰이는 방식입니다. 특정 영역(예: 2x2)에서 가장 큰 값 하나만 남기고 나머지는 버립니다.
- "이 4개의 픽셀 중에서 가장 '강아지스러운' 특징 하나만 남겨!"라는 의미입니다.
- 이미지가 약간 흔들리거나, 피사체가 조금 이동해도(Translation Invariance), 가장 강한 값은 여전히 살아남기 때문에 AI가 이미지를 더 잘 인식하게 도와줍니다.
- 노이즈(Noise)를 제거하는 효과도 있습니다.
5. CNN의 역사 - 레전드 아키텍처들
CNN은 하루아침에 완성된 것이 아닙니다. 수십 년간의 연구와 실패, 그리고 혁신의 결과물입니다.
1. LeNet-5 (1998)
- 얀 르쿤(Yann LeCun) 교수가 개발.
- 우편번호 자동 인식(ATM, 수표 처리)에 사용되었습니다.
- CNN의 조상님 격으로,
Conv -> Pool -> Conv -> Pool -> FC라는 현대 CNN의 기본 구조를 정립했습니다.
2. AlexNet (2012)
- 딥러닝 붐의 시작. 이미지넷(ImageNet) 대회에서 압도적인 차이로 우승하며 세상을 놀라게 했습니다.
- 최초로 GPU를 학습에 적극적으로 활용했습니다.
- 활성화 함수로 ReLU를 도입하여 학습 속도를 비약적으로 높였습니다.
- 이때부터 "AI = 딥러닝"이라는 공식이 생겼습니다.
3. VGGNet (2014)
- "단순한 게 최고다."
- 3x3이라는 아주 작은 필터만 반복적으로 사용하여 16층, 19층까지 깊게 쌓았습니다.
- 구조가 매우 규칙적이고 이해하기 쉬워서, 지금도 전이 학습(Transfer Learning)의 베이스 모델로 가장 많이 사랑받습니다.
4. ResNet (Residual Network, 2015)
- "인간의 눈을 뛰어넘다."
- 층을 20층 이상 쌓으려니 학습이 안 되는 문제(기울기 소실, Vanishing Gradient)가 발생했는데, 이를 Skip Connection(지름길)이라는 기발한 아이디어로 해결했습니다.
- 데이터를 층을 건너뛰어서 전달해줌으로써, 무려 152층까지 쌓는 데 성공했고, 에러율 3.6%를 기록하며 인간의 오차율(5%)을 처음으로 앞질렀습니다.
6. 마무리 - 인간을 닮아가는 기계
CNN은 단순히 수학적인 계산 방식이 아닙니다. 1960년대 허블(Hubel)과 비셀(Wiesel)이 고양이의 뇌 시각 피질을 연구하면서, "뇌의 뉴런은 전체를 한 번에 보는 게 아니라, 특정 방향의 선이나 모양에만 반응하는 뉴런들이 모여서 전체 이미지를 구성한다"는 것을 밝혀냈고 노벨상을 받았습니다. CNN은 이 생물학적 발견을 컴퓨터 과학으로 구현해낸 것입니다.
"부분을 모아서 전체를 이해한다." 이 간단하고 직관적인 아이디어가 컴퓨터에게 '눈'을 달아주었습니다. 이제 CNN은 자율주행 자동차의 눈이 되어 도로를 보고, 의사의 눈이 되어 엑스레이에서 암을 찾아내고, 공장에서 불량품을 걸러냅니다. 최근에는 Vision Transformer (ViT)라는 새로운 기술이 등장하여 CNN의 자리를 위협하고 있지만, 이미지의 지역적 특징(Local Feature)을 잡아내는 CNN의 능력은 여전히 독보적이며, 많은 경우 ViT와 결합하여 사용됩니다.
단순한 픽셀 덩어리에서 '의미(Semantics)'를 찾아내는 기술, 그것이 바로 CNN의 마법입니다.