기본 개념
OpenAI 가 개발한 멀티모달 AI 모델입니다. 텍스트와 이미지를 함께 이해하도록 설계되었습니다.
CLIP은 크게 두 가지 신경망, 즉 **Vision Encoder(이미지 인코더)**와 **Text Encoder(텍스트 인코더)**로 구성됩니다
- Vision Encoder는 입력된 이미지를 벡터 형태로 변환하며, 일반적으로 ResNet 또는 Vision Transformer(ViT) 기반의 CNN 아키텍처를 사용합니다
- Text Encoder는 입력된 텍스트를 벡터 형태로 변환하며, Transformer 기반 모델(GPT 아키텍처와 유사)을 사용합니다
- 두 인코더의 출력은 Projection Head를 통해 동일한 임베딩 공간으로 변환됩니다
주요 활용 분야
- 이미지 검색 및 분류
- 이미지 캡셔닝(주어진 이미지에 대한 텍스트 설명 생성)
- 텍스트 기반 이미지 편집
- 콘텐츠 중재
- 멀티모달 학습 시스템 구성 요소
ViT
ViT는 Vision Transformer(비전 트랜스포머)의 약자로, 컴퓨터 비전을 위해 설계된 트랜스포머 모델입니다. 이미지를 이해하고 처리하는 데 사용되며, 특히 이미지 분류, 객체 감지, 생성 모델링과 같은 다양한 시각 작업에서 뛰어난 성능을 보입니다.
ViT에 대한 자세한 설명은 다음과 같습니다.
- 탄생 배경 및 기본 아이디어
- 원래 트랜스포머 아키텍처는 텍스트를 처리하는 자연어 처리(NLP) 분야에서 혁신적인 성과를 거두었습니다. BERT나 GPT와 같은 모델들이 대표적입니다.
- ViT는 이러한 NLP 트랜스포머의 성공에 영감을 받아, 트랜스포머 구조를 이미지 처리에 직접 적용한 모델입니다. 핵심 아이디어는 이미지를 텍스트처럼 '단어' 또는 '토큰'의 시퀀스로 취급하는 것입니다.
- 주요 작동 방식
- 이미지 패치 생성: 먼저 입력 이미지를 16x16 픽셀과 같은 고정된 크기의 작은 사각형 패치들로 나눕니다.
- 선형 임베딩: 각 패치는 1차원 벡터로 평탄화된 후, 선형 레이어를 통과하여 더 높은 차원의 패치 임베딩 벡터로 변환됩니다. 이는 NLP에서 단어 임베딩을 생성하는 과정과 유사합니다.
- 위치 인코딩 추가: 트랜스포머는 입력 시퀀스의 순서 정보를 본질적으로 알지 못하기 때문에, 각 패치 임베딩에 **위치 인코딩(Positional Encoding)**을 더하여 원본 이미지 내에서 각 패치의 공간적 위치 정보를 부여합니다.
- 트랜스포머 인코더: 위치 정보가 추가된 패치 임베딩 시퀀스는 표준 트랜스포머 인코더에 입력됩니다. 이 인코더는 여러 개의 멀티-헤드 셀프 어텐션(Multi-Head Self-Attention) 레이어와 피드포워드 신경망으로 구성됩니다. 셀프 어텐션 메커니즘을 통해 모델은 이미지 내의 서로 다른 패치들 간의 관계를 동적으로 학습하여, 이미지 전체의 로컬(Local) 및 글로벌(Global) 종속성을 모두 파악할 수 있게 됩니다.
- 분류 토큰: 이미지 전체의 정보를 집약하기 위해, NLP 모델의
[CLS]
토큰과 유사한 특별한 학습 가능한 분류 토큰이 패치 시퀀스에 추가됩니다. 이 토큰에 해당하는 트랜스포머의 출력이 이미지 분류와 같은 최종 작업의 입력으로 사용됩니다.
- CNN(합성곱 신경망)과의 비교
- CNN은 합성곱 계층을 사용하여 지역적인 특징을 추출하고 계층적인 표현을 구축합니다. 이는 제한된 데이터로도 잘 작동하는 **귀납 편향(inductive biases)**을 가집니다.
- ViT는 이미지 패치 간의 글로벌 관계를 모델링하기 위해 셀프 어텐션 메커니즘을 사용하며, 이미지의 전체적인 맥락을 이해하는 데 강점이 있습니다. ViT는 대규모 데이터셋에서 CNN보다 뛰어난 성능을 보일 수 있지만, 일반적으로 더 많은 데이터가 필요하고 계산 비용이 더 많이 드는 경향이 있습니다. 또한, CNN이 본질적으로 공간 변환(예: 회전, 미러링)에 강건한 반면, ViT는 이러한 변환에 덜 강건할 수 있습니다.
- 주요 활용 분야
- 멀티모달 AI 모델의 구성 요소: 앞서 논의했듯이, CLIP과 같은 멀티모달 AI 모델에서 Vision Encoder(이미지 인코더)로 Vision Transformer(ViT) 또는 ResNet을 사용할 수 있습니다. Stable Diffusion 모델(SD1.x, SDXL, SD2.x)도 OpenAI의 CLIP 모델을 사용합니다.
- 의료 영상: LVM-Med와 같은 프레임워크에서 종양 감지, 장기 분할 등 의료 영상 분석에 활용되어 CNN 기반 접근 방식보다 뛰어난 성능을 보입니다.
- 자율 주행: HM-ViT와 같은 모델에서 LiDAR나 카메라와 같은 이기종 센서 데이터를 통합하고 분석하여 자율 주행 차량의 인지 능력을 향상시킵니다.
- 3D 비전: 3D-VisTA와 같은 모델에서 3D 장면과 텍스트를 함께 모델링하고 융합하는 데 사용되어 3D 시각-언어 작업을 개선합니다.
- 생성형 AI: MAGVIT 및 Latte와 같은 모델에서 시공간 데이터를 효율적으로 처리하며 비디오 및 이미지 생성에 기여합니다.
- 이미지 분류, 객체 감지, 영상 심층 위조 감지, 이미지 분할, 이상 감지, 군집 분석 등 다양한 컴퓨터 비전 작업에 활용됩니다.