컴퓨터비전이나 이미지 분류를 공부하다 보면 꼭 한 번은 비교하게 되는 두 구조가 있습니다.
바로 CNN과 ViT입니다.
CNN은 오래전부터 이미지 처리의 대표 모델로 쓰여 왔고, ViT는 Transformer를 이미지에 적용한 구조로 주목받았습니다. 둘 다 이미지를 잘 다루지만, 이미지를 바라보는 방식 자체가 꽤 다릅니다.
가장 짧게 말하면 CNN은 작은 영역의 패턴을 차곡차곡 쌓아가며 보는 방식이고, ViT는 이미지를 패치 단위로 잘라 시퀀스로 보고 self-attention으로 관계를 보는 방식입니다. Keras의 ViT 예제는 ViT가 convolution layer 없이 이미지 패치 시퀀스에 self-attention을 적용한다고 설명합니다.
쉽게 말하면 CNN은 “사진을 부분 부분 훑으면서 특징을 쌓아가는 모델”에 가깝고, ViT는 “사진을 작은 조각들로 나눠 서로 어떤 관계가 있는지 넓게 보는 모델”에 가깝습니다. Google Research 블로그도 ViT가 각 층마다 self-attention을 통해 패치 토큰들 사이의 관계를 활용해 이미지 전체의 전역 표현(global representation)을 만든다고 설명합니다.
#ViT #CNN #비전트랜스포머 #컴퓨터비전 #이미지분류 #딥러닝 #최신비전모델
먼저 CNN은 어떤 모델일까
CNN은 Convolutional Neural Network, 즉 합성곱 신경망입니다. 이미지처럼 가로·세로 구조가 있는 데이터에서 작은 필터를 움직이며 선, 모서리, 질감 같은 특징을 찾고, 그 특징을 여러 층에 걸쳐 더 복잡한 패턴으로 조합하는 구조입니다. Keras의 컴퓨터비전 예제와 관련 자료들은 전형적인 이미지 분류 모델이 convolution block과 pooling, 마지막 dense 분류층으로 구성된다고 보여줍니다.
CNN을 쉽게 말하면
이미지 위를 작은 확대경으로 훑으면서 반복되는 패턴을 찾는 모델입니다.
Keras의 ViT 관련 자료에서도 CNN 필터는 이미지 안에서 자신이 찾는 패턴을 학습한다고 설명합니다. 즉 CNN의 강점은 이미지의 지역적(local) 패턴을 아주 잘 잡는 데 있습니다.
그렇다면 ViT는 어떤 모델일까
ViT는 Vision Transformer입니다. 이름 그대로 NLP에서 많이 쓰이던 Transformer 아이디어를 비전 문제에 적용한 모델입니다.
Keras의 공식 예제는 ViT가 이미지를 여러 작은 patch로 나눈 뒤, 그 패치들을 시퀀스로 보고 self-attention을 적용한다고 설명합니다. 즉 convolution layer 없이도 이미지 패치 간 관계를 학습해 분류를 수행할 수 있다는 점이 핵심입니다.
Google Research 블로그는 ViT가 각 층에서 패치 토큰들 사이 관계를 재조합하면서 이미지 전체에 대한 전역 표현을 구성할 수 있다고 설명합니다. 즉 ViT의 큰 장점은 멀리 떨어진 패치끼리도 관계를 보기 쉽다는 점입니다.
CNN과 ViT의 가장 큰 차이는 무엇일까
둘의 가장 큰 차이는 이미지를 보는 기본 방식입니다.
| 구분 | CNN | ViT |
|---|---|---|
| 이미지 처리 방식 | 합성곱 필터로 지역 패턴 추출 | 이미지 패치를 토큰처럼 처리 |
| 핵심 연산 | Convolution | Self-attention |
| 강한 부분 | 로컬 패턴 학습 | 전역 관계 파악 |
| 직관적 비유 | 부분 부분 확대해 보기 | 조각들 사이 관계망 보기 |
즉 CNN은 가까운 픽셀들의 패턴을 강하게 활용하는 데 익숙하고, ViT는 처음부터 이미지 전역의 관계를 더 직접적으로 바라보는 성격이 있습니다. Keras 예제는 ViT가 convolution layer를 쓰지 않고 patch sequence에 attention을 적용한다고 분명히 설명합니다.
CNN의 장점은 무엇일까
CNN은 오랫동안 이미지 처리의 표준처럼 쓰여 왔고, 그만큼 구조가 잘 다듬어져 있습니다.
이미지의 선, 모서리, 질감, 부분 구조 같은 로컬 패턴을 계층적으로 쌓아가는 데 강하고, 다양한 이미지 분류·탐지·세그멘테이션 문제에서 검증된 아키텍처가 많습니다. Keras Applications에는 EfficientNet, ResNet, DenseNet, MobileNet, VGG 같은 수많은 CNN 계열 사전학습 모델이 제공됩니다.
CNN의 강점
- 지역 패턴을 잘 잡는다
- 이미지 처리용 검증된 구조가 많다
- 실무에서 활용 사례가 매우 넓다
- 사전학습 모델 생태계가 풍부하다
ViT의 장점은 무엇일까
ViT의 큰 장점은 이미지 패치들 사이의 관계를 attention으로 직접 다룬다는 점입니다. Google Research는 ViT가 self-attention을 통해 이미지 전체의 global representation을 구성할 수 있다고 설명합니다.
즉 어떤 패치가 멀리 떨어져 있어도 서로의 관계를 모델이 비교적 직접적으로 볼 수 있다는 점이 특징입니다.
또 Transformer 계열이라는 점 때문에 NLP에서 발전한 attention 기반 아이디어와 연결해서 이해하기 쉽고, 이후 다양한 비전 Transformer 계열 모델로 확장되었다는 흐름도 있습니다. Keras 비전 예제 목록에도 Swin Transformer, GCViT, MobileViT 같은 다양한 Transformer 기반 이미지 분류 모델이 포함되어 있습니다.
ViT의 강점
- 이미지 전체 관계를 보기 좋다
- 패치 간 상호작용을 attention으로 학습한다
- Transformer 계열 연구 흐름과 연결된다
- 다양한 비전 Transformer 변형으로 확장되었다
그럼 ViT가 CNN을 완전히 대체한 걸까
그렇게 단순하게 보기는 어렵습니다. 실제로는 CNN과 ViT가 경쟁하기도 하고, 서로 장점을 섞은 하이브리드 구조도 많이 등장했습니다.
Keras의 MobileViT 예제는 MobileViT가 Transformers와 convolutions의 성질을 결합한 모바일 친화적 백본이라고 설명합니다. 즉 연구 흐름 자체가 “무조건 CNN vs ViT”가 아니라, 서로 장점을 어떻게 결합할지까지 확장됐다는 뜻입니다.
그래서 입문 단계에서는
CNN은 지역 패턴에 강한 전통 강자,
ViT는 패치 관계를 attention으로 보는 최신 계열
정도로 먼저 이해하는 편이 가장 자연스럽습니다.
처음 배우는 사람은 어떻게 구분하면 좋을까
처음에는 모델 구조도 복잡하고 이름도 많아서 막연하게 느껴질 수 있습니다. 그럴 때는 아래처럼만 구분해도 꽤 도움이 됩니다.
가장 쉬운 구분법
- CNN = 합성곱 필터로 부분 특징을 차곡차곡 쌓는다
- ViT = 이미지를 패치 시퀀스로 보고 attention으로 관계를 본다
여기에 한 줄만 더 붙이면 더 쉽습니다.
CNN은 가까운 패턴 중심, ViT는 패치 관계 중심
마무리
ViT와 CNN은 모두 이미지를 잘 다루는 강력한 모델이지만, 이미지를 해석하는 방식은 꽤 다릅니다.
CNN은 합성곱을 통해 지역 패턴을 쌓아가며 이해하고, ViT는 이미지를 패치로 나눠 self-attention으로 전역 관계를 학습합니다. Keras와 Google Research의 공식 설명도 바로 이 차이를 중심으로 ViT를 소개하고 있습니다.
그래서 처음 공부할 때는 어느 쪽이 절대적으로 더 좋다고 보기보다, 이미지를 보는 관점이 어떻게 다른지를 이해하는 것이 가장 중요합니다.
'머신러닝' 카테고리의 다른 글
| 이미지 세그멘테이션 | 픽셀 단위 분석 왜 중요할까 (0) | 2026.05.18 |
|---|---|
| CNN 이미지 분류 | 딥러닝으로 사진 구분하는 원리 (0) | 2026.05.16 |
| 컴퓨터비전이란 | 이미지 인식 기술 한 번에 이해하기 (1) | 2026.05.14 |
| Adam vs SGD | 옵티마이저 차이 쉽게 정리 (0) | 2026.05.12 |
| 역전파란 | 딥러닝 학습이 이루어지는 핵심 원리 (0) | 2026.05.10 |