본문 바로가기
데이터 어쩌구/기술 써보기

[multi-modal] Image, Text pair models

by annmunju 2023. 8. 27.

Multimodal Learning

  • Audio, Video, Image, Text 등 다중 형태의 데이터를 모델의 입력으로 사용
  • 단일 형태 데이터(모달)의 한계를 극복하고자 여러 형태의 데이터를 사용해 주어진 문제를 해결하는 모델을 구축
  • 왜 멀티모달이 필요할까? → 인간이 멀티모달이니까 (맥거크 효과)

https://www.youtube.com/watch?v=PWGeUztTkRA

multimodal deep learing

  • 각 모달에 적합한 딥러닝 구조를 사용해 특징 추출

  • 모달 통합 방식으로는 대표적으로 Feature concatenation, Ensemble classifier 두 가지 방법이 존재
    • (a) ex. 이미지는 CNN, 텍스트는 RNN을 사용해 피쳐 벡터를 추출해 결합해 사용하는 방법
    • (b) ex. 이미지 모델에서 나온 분류 결과와 텍스트 모델에서 나온 분류 결과의 ensemble 결과를 이용하는 방법

예시

  • 차량 사고에 큰 영향을 주는 운전자의 스트레스 수준 분석 및 감지
    • Input : ECG 데이터 + 차량 데이터(패달 밟기, 휠 전환 등) + 환경 데이터(다음 차량과의 거리, 차선, 차선간 넓이, 날씨, 시간 등)
  • 인간의 감정 인식 모델 성능 향상
    • Input : 음성, 영상(음성이 제거된) 데이터
    • process : 입력 데이터를 segment 별로 분리
      → 음성의 경우 2D CNN을 사용하고 영상의 경우 3D CNN 사용
      → Fusion network(segment 마다 추출된 오디오, 비디오 특징 벡터 병합 후 average-pooling)를 통해 합쳐줌

Core Challenge

Representation : 표상

  • 서로 다른 Modality 입력을 하나의 벡터 공간에 투상
  • 공간상 가까운 위치에 유사한 개념이 모이도록 함

Translation : 번역

  • 한 양식에서 다른 양식으로 데이터를 변환

Alignment : 정렬

  • Modality들 간의 상관관계 파악

Fusion : 융합

  • 서로 다른 형태의 데이터는 서로 다른 속도로 일반화 됨.
  • 데이터 간 Fusion을 통해 모델 성능/정확도를 높이는 것

Co-Learning : 함께 학습

  • 한 Modality에서 학습된 지식을 다른 Modality로 전이/확장
    • ex. 말하는 사람의 얼굴 비디오와 음성 데이터가 함께 있다면 → 음성 인식 신경망에서 더 나은 lip-reading 모델을 만들 수 있음

CLIP

Contrastive Language-Image Pretraining model

https://openaiassets.blob.core.windows.net/$web/clip/draft/20210104b/overview-a.svghttps://openaiassets.blob.core.windows.net/$web/clip/draft/20210104b/overview-b.svg

Contrastive pre-training

  • 사전 교육된 이미지 인코더와 텍스트 인코더를 이용해 데이터 세트의 어떤 텍스트와 어떤 이미지가 쌍을 이루는지 예측
    • 대각선에 위치한 것이 정답일 때 이들의 코사인 유사도를 최대화하고 나머지 쌍들의 코사인 유사도를 최소화 하는 방향으로 이미지 인코더, 텍스트 인코더를 학습시킴
  • 이미지 인코더로 ViT(Vision Transformer), ResNet 두가지 버전이 있음
  • 텍스트 인코더로는 Transformer 사용

zero-shot prediction

  • 모델이 학습 과정에서 배우지 않은 작업을 수행하는 것
    • ex. 학습 과정에서 존재하지 않았던 종류의 이미지의 결과를 유추
  • plane, car, dog 등 단어들을 label로 지정하고 ‘A photo of a {label}’ 문장으로 만듦
    → 이를 토큰화 함
    → 텍스트 인코딩 벡터 생성 / 이미지 인코딩 벡터 생성
    → 한 이미지와 라벨의 정보가 담긴 텍스트 인코딩 사이 코사인 유사도를 구함
    → 가장 유사도가 큰 값을 라벨로 반환

GLIP

Grounded Language-Image Pre-training

https://raw.githubusercontent.com/microsoft/GLIP/main/docs/lead.png

  • 텍스트는 단어 단위 임베딩, 이미지는 object 단위 임베딩 후 각각에 맞는 모델로 훈련 (중간에 Fusion network)
  • 이미지에서 물체를 감지해 해당 물체의 명칭(텍스트)이 함께 나타남

BLIP

Bootstrapping Language-Image Pre-training

  • Image Encoder, Text Encoder, Image-grounded Text encoder, Image-grounded Text decoder 4가지가 사용됨.
    • 이미지 모델 : visual transformer (ViT)
    • 텍스트 모델 : BERT
  • Image Captioning, Visual Dialog 가능

 

Image Captioning

Visual Dialog

728x90