Multi-Modal Learning
멀티모달 학습은 이미지, 텍스트, 오디오와 같은 여러 데이터 유형을 함께 사용해 모델을 학습시킵니다. 정렬, 융합, 대조 손실을 다룹니다.
멀티모달 학습은 이미지와 캡션, 사운드트랙이 포함된 비디오, 카메라 프레임과 라이다 스캔처럼 둘 이상의 모달리티로 구성된 데이터에 모델을 학습시켜 모달리티 간의 관계를 학습하는 머신러닝 분야입니다. 멀티모달 학습 방법은 서로 다른 모달리티를 비교할 수 있도록 표현하는 방법과 모델의 어느 지점에서 모달리티를 결합할지라는 두 가지 질문에 답합니다. 비전-언어 어시스턴트부터 자율주행 인지 스택까지, 이러한 방법으로 만든 시스템을 멀티모달 AI라고 합니다.
사람은 여러 감각을 자연스럽게 결합합니다. 1976년에 소개된 맥거크 효과에서는 "ga"라고 말하는 입 모양 영상에 "ba" 소리를 입히면 "da"로 들립니다. Stanford의 Jiquan Ngiam과 동료들은 2011년에 이 아이디어를 딥러닝에 적용했습니다. 이들은 오디오와 입술 영상을 함께 사용해 네트워크를 학습하고, 두 모달리티에서 학습한 특징이 비디오만 사용한 입 모양 읽기 성능을 향상한다는 점을 보였습니다.
핵심 과제#
Tadas Baltrušaitis, Chaitanya Ahuja, Louis-Philippe Morency는 2019년 조사 논문에서 다음 다섯 가지 과제를 중심으로 이 분야를 정리했습니다:
- 표현: 각 모달리티를 하나의 공동 공간 또는 서로 정렬되도록 학습된 별도의 공간에서 벡터로 인코딩합니다.
- 변환: 이미지 캡셔닝이나 텍스트-이미지 생성처럼 한 모달리티를 다른 모달리티로 매핑합니다.
- 정렬: 문구가 설명하는 이미지 영역처럼 한 모달리티의 어느 부분이 다른 모달리티의 어느 부분에 대응하는지 찾습니다.
- 융합: 여러 모달리티의 정보를 결합해 예측을 수행합니다.
- 공동 학습: 데이터가 풍부한 모달리티에서 데이터가 부족한 모달리티로 지식을 전달합니다.
융합 전략#
초기 융합은 모달리티별 처리가 시작되기 전에 입력이나 저수준 특징을 결합합니다. 예를 들어 깊이 맵을 RGB 채널과 쌓아 4채널 이미지 하나로 구성합니다. 후기 융합은 모달리티별로 별도 모델을 실행한 뒤 예측값을 평균하거나 투표해 결합하므로, 모달리티 하나가 누락되어도 계속 작동합니다. 중간 융합은 각 모달리티를 별도로 인코딩한 뒤 보통 교차 어텐션을 사용해 네트워크 내부에서 정보를 교환합니다. 교차 어텐션은 한 모달리티의 토큰이 다른 모달리티의 특징에 주의를 기울이는 어텐션 메커니즘입니다. 로봇과 차량의 센서 융합에는 세 가지 전략이 모두 사용됩니다.
모달리티를 추가해도 정확도가 낮아질 수 있습니다. Weiyao Wang, Du Tran, Matt Feiszli는 2020년에 오디오, 프레임, 모션을 함께 사용해 학습한 비디오 분류 네트워크가 가장 성능이 좋은 단일 모달리티 모델보다 성능이 낮은 경우가 많다는 점을 보였습니다. 네트워크가 과적합하고 모달리티별 학습 속도가 다르기 때문입니다. 이들은 이를 보정하기 위해 각 모달리티의 손실 가중치를 조정하는 Gradient-Blending 방법을 제안했습니다.
대조 정렬#
대조 학습은 수작업 레이블 없이 모달리티를 정렬합니다. OpenAI의 CLIP(2021)은 이미지-캡션 쌍 4억 개를 사용해 이미지 인코더와 텍스트 인코더를 학습했습니다. 각 이미지의 임베딩이 배치의 모든 캡션 중 해당 이미지의 캡션과 가장 비슷해지도록 학습했으며, 그 결과 ImageNet의 레이블이 지정된 학습 이미지 128만 개를 전혀 사용하지 않고도 원래 ResNet-50의 ImageNet 정확도에 제로샷으로 도달했습니다. 손실 함수는 유사도 행렬에 양방향으로 적용하는 교차 엔트로피입니다:
import torch
import torch.nn.functional as F
torch.manual_seed(0)
# Unit-length embeddings for 4 images and 4 captions; row i of each is a matching pair
image_emb = F.normalize(torch.randn(4, 64), dim=-1)
text_emb = F.normalize(image_emb + 0.5 * torch.randn(4, 64), dim=-1)
def contrastive_loss(images, texts, temperature=0.07):
"""CLIP-style symmetric cross-entropy over the image-text similarity matrix."""
logits = images @ texts.T / temperature
targets = torch.arange(len(images)) # the matching caption sits on the diagonal
return (F.cross_entropy(logits, targets) + F.cross_entropy(logits.T, targets)) / 2
print(f"Aligned pairs: {contrastive_loss(image_emb, text_emb):.3f}")
print(f"Misaligned pairs: {contrastive_loss(image_emb, text_emb.roll(1, dims=0)):.3f}")각 캡션이 해당 이미지와 가까우면 손실은 0.577입니다. 캡션을 한 행씩 이동해 모든 이미지를 잘못된 캡션과 짝지으면 손실은 2.756으로 높아집니다. 학습은 여러 쌍으로 구성된 배치(CLIP은 32,768쌍 사용)에서 손실을 줄여 각 이미지를 해당 캡션 쪽으로 끌어당기고 배치의 다른 모든 캡션에서 멀어지게 합니다. CLIP은 학습 중 온도를 학습하며 0.07에서 시작합니다. Google의 ALIGN(2021)은 동일한 방식을 잡음이 있는 이미지 및 대체 텍스트 쌍 18억 개로 확장했고, SigLIP(2023)은 소프트맥스를 쌍별 독립 시그모이드로 대체했습니다. Meta의 ImageBind(2023)는 각 모달리티를 이미지와 짝지어 오디오, 깊이, 열, 모션 센서 데이터를 포함한 여섯 가지 모달리티를 정렬했습니다.
오픈 보캐뷸러리 탐지기는 텍스트와 이미지 영역 사이의 동일한 유형의 정렬 관계를 학습합니다. 칭화대학교의 YOLOE를 기반으로 한 오픈 보캐뷸러리 YOLO26인 YOLOE-26을 처음부터 학습하는 Ultralytics 학습 레시피는 Objects365 탐지 라벨과 GQA 및 Flickr30k 그라운딩 데이터 약 140만 개 샘플을 결합합니다. 트레이너는 Apple의 고정된 MobileCLIP2 텍스트 인코더로 모든 클래스 이름과 구문을 한 번씩 인코딩하고 임베딩을 캐시합니다. 따라서 학습 시 탐지기만 업데이트하며, 캐시된 텍스트 벡터를 영역 특징과 매칭하기 전에 정제하는 작은 잔차 계층도 여기에 포함됩니다.
멀티모달 학습과 관련 용어 비교#
- 멀티모달 AI: 시각 어시스턴트와 운전자 보조 인식 기능처럼 멀티모달 학습을 활용해 구축한 시스템과 애플리케이션입니다.
- 멀티모달 모델: 여러 모달리티를 처리하도록 학습된 모델로, 멀티모달 학습의 산출물입니다.
- 비전-언어 모델 (VLM): 이미지와 텍스트를 처리하는 멀티모달 모델로, 대개 대조 사전 학습, 이미지 인코더와 언어 모델의 연결, 시각적 지시 튜닝의 단계로 학습됩니다.
- 전이 학습: 한 작업으로 학습한 모델을 다른 작업에 재사용하며, 공동 학습은 이 아이디어를 여러 모달리티에 적용합니다.










