이미지에서 시작된 혁명: CNN
딥러닝이 세상을 놀라게 한 첫 번째 장면은 대체로 이미지에서 시작되었다. 사람 얼굴을 구분하고, 고양이와 강아지를 분류하고, 자율주행차가 도로의 사물을 인식하는 일은 한때 컴퓨터에게 아주 어려운 문제였다. 그런데 어느 순간부터 모델은 이미지 속에서 사람이 직접 규칙을 짜 넣지 않아도 중요한 패턴을 스스로 배우기 시작했다. 그 변화의 중심에 합성곱 신경망, 즉 CNN이 있었다.
CNN을 이해한다는 것은 단지 이미지 분류 모델 하나를 배우는 일이 아니다. 딥러닝이 왜 강력한 표현 학습 도구인지, 그리고 왜 "좋은 특징을 사람이 설계하던 시대"에서 "좋은 표현을 모델이 학습하는 시대"로 넘어왔는지를 이해하는 일에 가깝다.

왜 이미지는 어려운 데이터인가
이미지는 보기에는 단순하다. 우리는 사진 한 장을 보고 곧바로 고양이인지 자동차인지 알아본다. 하지만 컴퓨터에게 이미지는 아름다운 풍경이 아니라 숫자의 거대한 격자다. 흑백 이미지라면 픽셀마다 밝기 값 하나가 있고, 컬러 이미지라면 보통 빨강, 초록, 파랑 세 채널 값이 있다. 예를 들어 224×224 크기의 컬러 이미지는 224×224×3개의 숫자로 이루어진다. 즉, 사람이 보기에는 사진 한 장이지만 모델 입장에서는 엄청나게 많은 숫자 덩어리다.
문제는 숫자가 많기만 한 것이 아니다. 이미지에는 공간 구조가 있다. 왼쪽 위에 있던 픽셀과 오른쪽 아래의 픽셀은 같은 중요도를 갖지 않는다. 서로 가까운 픽셀들은 보통 관련이 있고, 모서리나 질감, 경계선 같은 정보는 이웃한 픽셀들의 관계에서 드러난다. 다시 말해 이미지는 단순한 표 형태의 데이터가 아니라, 위치와 주변 맥락이 중요한 데이터다.
여기서 전결합층만으로 이미지를 다루려 하면 금세 문제가 생긴다. 전결합층은 입력의 모든 숫자를 다음 층의 모든 뉴런과 연결한다. 이 방식은 구조를 단순하게 만들지만, 이미지의 공간적 특성을 거의 활용하지 못한다. 더 큰 문제는 파라미터 수가 폭발한다는 점이다. 이미지가 조금만 커져도 연결해야 할 가중치가 엄청나게 늘어나고, 그러면 학습은 느려지고 과적합 위험도 커진다.
이미지 인식의 핵심은 "모든 픽셀을 똑같이 보지 않는 것"이다. 중요한 것은 픽셀 하나가 아니라 작은 영역 안의 패턴이며, 그런 패턴은 이미지의 어디에서든 반복해서 나타날 수 있다. 눈, 코, 바퀴, 창문, 가장자리, 줄무늬 같은 것들은 위치가 조금 달라져도 여전히 같은 의미를 가진다. CNN은 바로 이 성질을 정면으로 이용한 구조다.
합성곱의 직관: 작은 창으로 훑어보는 읽기 방식
합성곱을 처음 들으면 이름부터 어렵게 느껴진다. 하지만 직관은 의외로 간단하다. 아주 작은 창을 들고 이미지 위를 조금씩 움직이며, 각 위치에서 특정 패턴이 있는지 검사하는 과정이라고 생각하면 된다.
예를 들어 3×3 크기의 작은 필터가 있다고 해보자. 이 필터는 이미지의 3×3 영역을 한 번 보고, 그 안에 어떤 모양이 얼마나 강하게 있는지를 숫자 하나로 요약한다. 그리고 그 필터를 이미지 전체에 걸쳐 조금씩 이동시키면, 위치마다 반응값이 나온다. 이렇게 만들어진 새로운 2차원 결과를 특징 맵, 또는 피처 맵이라고 부른다.
여기서 중요한 점은 필터가 이동하면서도 같은 가중치를 계속 사용한다는 것이다. 즉, 왼쪽 위를 볼 때 쓰는 패턴 탐지기와 오른쪽 아래를 볼 때 쓰는 패턴 탐지기가 사실상 동일하다. 이것이 CNN의 핵심 아이디어 중 하나인 가중치 공유다.
가중치 공유는 매우 강력하다. 먼저 파라미터 수를 극적으로 줄여 준다. 전결합층처럼 모든 픽셀마다 별도의 가중치를 두는 대신, 작은 필터 몇 개만 학습하면 되기 때문이다. 동시에 위치가 달라도 같은 패턴을 감지할 수 있다. 이미지의 위쪽에 있는 눈과 아래쪽에 있는 눈이 다른 존재가 아닌 것처럼, CNN은 같은 필터로 같은 유형의 특징을 찾는다.
이 방식은 사람이 이미지를 보는 방식과도 조금 닮아 있다. 우리는 사진을 볼 때 모든 픽셀을 독립적으로 분석하지 않는다. 대신 경계선, 윤곽, 반복되는 텍스처, 물체의 일부 같은 국소적 단서를 먼저 읽어낸다. CNN은 이미지 전체를 한 번에 이해하기보다, 작은 지역 패턴을 발견하고 그것을 점차 조합하는 방식으로 인식한다.
필터는 무엇을 보는가
CNN에서 필터는 일종의 패턴 감지기다. 다만 처음부터 "이 필터는 눈을 찾고, 저 필터는 바퀴를 찾는다"라고 사람이 지정하지 않는다. 학습이 진행되면서 각 필터가 데이터에 유용한 패턴에 반응하도록 가중치가 바뀐다.
초기 층의 필터는 대체로 단순한 신호를 잡아낸다. 대표적으로 가장자리, 밝기 변화, 특정 방향의 선분 같은 것들이다. 왜냐하면 이미지의 가장 기본적인 구조가 이런 저수준 특징에서 시작되기 때문이다. 어떤 물체든 경계가 있고, 표면에는 질감이 있으며, 방향성이 있는 패턴이 존재한다.
그다음 층으로 갈수록 더 복잡한 특징이 만들어진다. 앞선 층이 찾아낸 선분과 가장자리가 결합되면 곡선, 모서리, 반복 무늬 같은 중간 수준 특징이 생긴다. 더 깊은 층에서는 이런 조각들이 다시 합쳐져 눈, 귀, 바퀴, 문손잡이, 날개처럼 물체의 일부에 가까운 특징이 나타난다. 마지막에 가까운 층에서는 물체 전체를 구분하는 데 필요한 고수준 표현이 형성된다.
이 과정을 계층적 특징 학습이라고 생각하면 이해가 쉽다. 아래층은 재료를 모으고, 중간층은 부품을 만들고, 위층은 완성된 구조를 알아본다. CNN의 힘은 바로 이 계층 구조를 데이터로부터 직접 학습한다는 데 있다.
여기서 한 가지 중요한 감각을 잡아야 한다. CNN은 이미지를 "고양이"로 바로 읽지 않는다. 먼저 작은 선과 질감을 보고, 그 조합에서 귀와 수염 비슷한 구조를 감지하고, 그런 패턴이 전체적으로 모이면 비로소 고양이일 가능성을 높게 본다. 즉, 의미는 갑자기 등장하는 것이 아니라, 단순한 특징이 여러 층을 거치며 쌓일 때 생겨난다.
합성곱이 파라미터 수를 줄이는 이유
CNN이 혁명적이었던 이유는 단지 성능이 좋았기 때문만이 아니다. 계산적으로도 훨씬 현실적인 구조를 제시했기 때문이다.
전결합층으로 이미지를 처리하면 입력 크기가 커질수록 가중치가 너무 빨리 늘어난다. 반면 합성곱층은 작은 필터를 반복 사용한다. 예를 들어 3×3 필터 하나는 채널 수를 고려하더라도 상대적으로 적은 수의 가중치만 가진다. 그런데 그 작은 필터가 이미지 전체를 훑으며 같은 종류의 패턴을 여러 위치에서 찾는다. 적은 수의 파라미터로 넓은 영역을 처리하는 셈이다.
이것은 단순한 절약이 아니라 가정의 차이이기도 하다. CNN은 "이미지에서는 가까운 픽셀끼리 강하게 관련되어 있고, 같은 패턴이 위치를 바꿔 반복될 수 있다"는 가정을 구조 속에 넣었다. 좋은 딥러닝 구조는 데이터를 아무 가정 없이 받아들이는 것이 아니라, 데이터의 성질을 영리하게 이용한다. CNN은 이미지라는 데이터의 본질을 잘 반영한 설계였다.
풀링은 왜 필요했을까
CNN을 설명할 때 빠지지 않는 요소가 풀링이다. 풀링은 특징 맵의 정보를 조금 압축하는 연산이다. 가장 흔한 예는 최대 풀링으로, 작은 영역 안에서 가장 큰 값만 남긴다.
이 연산이 하는 일은 생각보다 중요하다. 먼저 공간 크기를 줄여 계산량을 줄인다. 이미지가 깊은 층으로 갈수록 표현은 더 추상적이어야 하므로, 세부 위치를 완벽히 보존하는 것보다 중요한 신호를 요약하는 편이 유리할 때가 많다. 또한 패턴의 위치가 조금 바뀌어도 비슷한 반응을 유지하게 도와준다. 고양이 귀가 사진에서 몇 픽셀쯤 옆으로 움직였다고 해서 갑자기 다른 동물이 되지는 않기 때문이다.
물론 풀링은 모든 정보를 보존하지 않는다. 세밀한 위치 정보는 일부 잃을 수 있다. 그래서 최근 구조에서는 풀링을 덜 쓰거나, 스트라이드가 있는 합성곱으로 대체하는 경우도 많다. 그럼에도 풀링이 전달한 핵심 직관은 여전히 유효하다. 이미지 인식에서는 모든 세부를 그대로 들고 가기보다, 중요한 특징을 점점 압축하며 더 큰 패턴으로 넘어가는 과정이 중요하다는 것이다.
CNN은 어떻게 이미지를 이해해 가는가
CNN의 흐름을 하나의 이야기로 정리해 보자. 입력 이미지가 들어오면 첫 합성곱층은 작은 지역 패턴을 찾는다. 활성화 함수를 지나며 비선형성이 더해지고, 필요하다면 풀링을 통해 정보를 요약한다. 다음 층은 그 앞 층의 특징 맵을 입력으로 받아 더 복잡한 구조를 찾는다. 이런 일이 반복되면 모델은 처음에는 선을 보고, 그다음에는 모양을 보고, 결국에는 물체의 정체를 구분할 수 있는 표현을 만든다.
이때 마지막 층 근처에서는 더 이상 픽셀 자체가 중요하지 않다. 중요한 것은 이 이미지가 어떤 특징 조합을 가지고 있는가다. 즉, CNN은 이미지를 그대로 외우는 대신, 예측에 유용한 표현으로 바꿔 간다. 이것이 1장에서 이야기한 "좋은 표현은 좋은 예측을 만든다"는 원칙의 아주 강력한 사례다.
이미지 분류를 예로 들면, 최종 층은 이런 고수준 표현을 받아 각 클래스의 점수를 계산한다. 점수가 가장 높은 클래스를 정답으로 고르거나, 확률 분포로 해석할 수 있다. 하지만 진짜 중요한 일은 마지막 분류기보다 앞단에서 이미 상당 부분 끝나 있다. 모델의 성패는 결국 얼마나 좋은 표현을 만들어 냈는가에 달려 있기 때문이다.
AlexNet 이후, 왜 세상이 CNN에 주목했는가
CNN 자체의 아이디어는 갑자기 하늘에서 떨어진 것이 아니다. 합성곱과 계층적 특징 추출에 대한 발상은 더 오래전부터 존재했다. 하지만 한동안은 데이터, 계산 자원, 학습 기법이 충분하지 않아 잠재력을 완전히 보여 주지 못했다.
상황이 바뀐 것은 대규모 데이터셋과 강력한 GPU, 그리고 더 깊은 네트워크를 안정적으로 학습시키는 기법들이 결합하면서부터다. 이 전환점을 상징적으로 보여 준 모델이 AlexNet이다. AlexNet은 이미지 인식 대회에서 이전 방식들을 크게 앞서는 성능을 보이며, "특징을 사람이 설계하는 시대가 끝나고 특징을 네트워크가 학습하는 시대가 왔다"는 사실을 널리 각인시켰다.
그 전까지 컴퓨터 비전에서는 SIFT, HOG 같은 수작업 특징이 중요한 역할을 했다. 연구자와 엔지니어는 어떤 에지, 어떤 코너, 어떤 히스토그램이 유용한지 치밀하게 설계해야 했다. 하지만 CNN은 원시 픽셀에서 시작해 필요한 특징을 스스로 학습했다. 이것은 단지 성능 향상이 아니라 방법론의 혁명이었다.
AlexNet 이후 흐름은 더 빨라졌다. 더 깊고 정교한 구조들이 등장하면서 CNN은 이미지 분류를 넘어 객체 탐지, 분할, 얼굴 인식, 의료 영상 분석, 산업 검사, 위성 이미지 해석 같은 다양한 문제에 적용되었다. 딥러닝이 "연구실의 가능성"에서 "산업의 기본 도구"로 이동하는 데 CNN이 결정적 역할을 한 셈이다.
CNN이 바꾼 것은 분류만이 아니다
CNN의 진짜 영향력은 "사진에 이름표 붙이기"를 잘하게 만든 데서 끝나지 않는다. 이미지 안에서 물체의 위치를 찾는 객체 탐지, 픽셀마다 클래스를 붙이는 의미 분할, 얼굴 인증, OCR, 의료 진단 보조, 제조 라인의 불량 검출 등 수많은 비전 문제의 기반이 CNN이었다.
이 변화는 산업적으로도 매우 컸다.
스마트폰 카메라는 장면을 이해하고 자동으로 보정하기 시작했다.
자율주행 시스템은 도로, 차량, 보행자, 표지판을 더 정확히 인식하게 되었다.
병원에서는 X선, CT, MRI 영상에서 이상 패턴을 보조적으로 탐지하는 기술이 발전했다.
중요한 점은, 이 모든 응용이 서로 다른 문제처럼 보여도 바닥에서는 비슷한 표현 학습이 작동한다는 사실이다. 모델은 이미지에서 의미 있는 구조를 발견하고, 그 표현을 각 과제에 맞게 활용한다. 이때 CNN은 이미지 세계에서의 범용 특징 추출기로 기능했다.
CNN의 한계도 함께 봐야 한다
CNN이 강력하다고 해서 모든 문제를 완벽하게 해결한 것은 아니다. 합성곱은 지역 패턴을 잘 잡아내지만, 아주 멀리 떨어진 요소들 사이의 관계를 직접 다루는 데는 비효율적일 수 있다. 이미지 전체 문맥을 이해하려면 층을 많이 쌓거나 추가적인 구조가 필요하다. 또한 데이터가 충분하지 않거나 환경이 크게 바뀌면 성능이 흔들릴 수 있다.
예를 들어 고양이를 주로 정면 사진으로 학습한 모델은 특이한 각도나 조명, 배경에서는 예상보다 약할 수 있다. 이것은 CNN만의 문제가 아니라, 딥러닝 전반의 일반화 문제와도 이어진다. 결국 좋은 모델은 좋은 구조만으로 완성되지 않는다. 데이터, 학습 방식, 평가 방식이 함께 맞물려야 한다.
그럼에도 CNN의 의미는 분명하다. 딥러닝이 이미지처럼 복잡한 고차원 데이터에서도 스스로 유용한 표현을 학습할 수 있음을 대중적으로 증명한 첫 대성공 사례였다는 점이다. CNN을 통해 사람들은 "신경망은 장난감이 아니라 현실 문제를 바꿀 수 있는 도구"라는 사실을 실감했다.
CNN이 남긴 가장 중요한 유산
CNN의 가장 큰 유산은 아마도 하나의 믿음일 것이다. 적절한 구조와 충분한 데이터, 계산 자원이 주어지면, 모델은 사람이 일일이 규칙을 짜지 않아도 강력한 표현을 배울 수 있다는 믿음 말이다.
이 믿음은 이후 자연어 처리와 음성, 멀티모달, 생성형 AI로 이어졌다. 분야는 달라도 흐름은 비슷하다. 데이터를 그 분야의 구조에 맞게 다루는 아키텍처를 설계하고, 모델이 계층적 표현을 배우게 만든다. CNN은 그 가능성을 가장 먼저 널리 증명한 대표 사례였다.
그래서 CNN은 단지 비전 모델의 한 종류가 아니다. 딥러닝 시대의 문을 연 상징적인 구조다. 이미지를 읽는 문제에서 시작했지만, 사실 우리에게 보여 준 것은 더 큰 원리였다. 복잡한 세계를 잘게 나누어 보고, 반복되는 패턴을 포착하고, 작은 특징을 쌓아 큰 의미를 만든다. 딥러닝의 힘은 바로 그 축적의 과정에 있다.
다음 장에서는 이미지가 아니라 순서를 가진 데이터를 다룬다. 문장, 음성, 시계열처럼 "앞뒤 맥락"이 중요한 세계에서는 다른 종류의 고민이 생긴다. CNN이 공간 구조를 다루는 데 탁월했다면, 이제 우리는 시간과 순서를 이해하려 했던 모델들, 즉 RNN과 LSTM으로 넘어가게 된다.
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.
