본문 바로가기
기술/딥러닝

[Boostcamp AI Tech] Multi-modal Learning

by 팡팡구리 2021. 9. 16.
반응형

Challenge of Multi-modal Learning


1. 데이터의 표현 방법들이 모두 다름

ex) Audio, Image, Text를 데이터로 표현하면 이들은 다 제각각의 형태를 띔

 

2. 서로 다른 Modality에서 오는 정보량, feature spaces에 대한 특징들이 불균형함

ex) '아보카도 모양의 armchair' 라는 텍스트를 이미지로 변환하는 task를 수행할 때,
     '아보카도 모양의 armchair'로 여러 이미지가 나올 수 있음( 1:N의 관계 )

 

3. 특정 Modality에 모델이 편향될 수 있음

ex) Action Recognition을 한다고 할 때,
    노래를 부르는 Vedio는 Audio를 참조할 수 있겠지만
    대부분의 행위는 Visual Data로 판단 가능하므로 Visual Data를 참조하는 모델에 편향될 수 있음

 

Patterns of Multi-modal Learning


Multi-modal Learning이 가진 어려움들에도 불구하고,

여러 감각 기관(Sensor)에서 오는 정보들을 취합하는 Multi-modal Learning은 중요한 문제로

Multi-model Learning을 수행하는 일정한 패턴은 다음과 같은 3가지가 존재한다.

 

1. Matching : 서로 다른 Modality를 공통된 space로 보내서 match

2. Translating : 하나의 Modality를 다른 Modality로 translate

3. Referencing : 하나의 Modality에서 같은 Modality로 출력을 낼 때, 다른 Modality를 reference

Multi-modal Learning은 크게 Matching, Translating, Referencing의 형태로 이뤄진다.

 

Multi-modal task (1) - Visual data & Text


1. Joint embedding (Matching)

Image Tagging

- 이미지가 주어졌을 때, Tag를 생성할 수도, 또는 Tag를 가지고 이미지를 찾을 수 있는 Application

Image를 가지고 Tag를 생성, Tag를 가지고 Image를 검색할 수 있는 Image Tagging

 

Text, Image 각각에 pre-trained unimodal model들을 가지고J

같은 space를 공유할 수 있게 dimension이 같은 feature vector를 각각 뽑아낸다. ( Text, Image  )

이 둘이 호환성을 가지도록 Joint embedding space를 학습

 

Joint embedding space에서 matching되는 pair는 거리가 가깝게,

mathcing되지 않는 pair는 거리를 멀리하면서 학습

Joint Embedding 과정, joint embedding space에서의 거리값을 가지고 학습

 

Joint embedding을 학습하고 나면 analogy relationship까지 학습이 됨

ex) 개 사진에 'dog'이라는 embedding 정보를 빼고 'cat'이라는 정보를 입력하면
     고양이 이미지는 물론 원본처럼 잔디밭이 배경인 사진이 검색됨

 

2. Cross Modal Translation (Translating)

(1) Image Captioning

- 이미지가 주어지면 그 이미지를 가장 잘 설명하는 Text를 생성하는 Application

 

Image Captioning은 이미지를 문장으로 바꾸는 task로 CNN과 RNN을 잘 합치는 게 중요!

 

Show and Tell

- Image Captioning의 한 방법

1. ImageNet에 Pre-trained된 CNN 모델을 Encoder로 사용하여 fixed dimensional vector로 바꿔줌

2. LSTM module을 Decoder로 사용하여 Encoder에서 넘어 온 vector를 condition으로 하여,

   시작 토큰 S가 들어오면 output(단어)를 출력하고 이 과정을 종료 토큰이 나올 때까지 반복

 

ImageNet에 Pre-trained된 CNN 모델을 Encoder로, LSTM module들을 Decoder로 삼는다.

 

Show, Attend, and Tell

- Image Captioning의 한 방법

- Show and Tell이 하나의 fixed dimensional vector를 가지고 sentence를 추론했다면,

  이 방법은 각 단어를 출력할 때 해당 부분을 보고 출력을 함

 

1. 이미지를 Input으로 집어넣으면

2. 하나의 fixed dimensional vector로 만드는 것이 아니라,

   14x14의 공간정보를 유지하고 있는 feature map 형태로 출력

3. 이 feature map을 RNN에 넣어줌.

4. 이 RNN은 반복해서 하나의 단어를 출력할 때마다 feature map을 참조하면서 다음 단어 생성

 

Show, Attend, and Tell은 단어를 출력할 때 해당 부분을 보고 출력함

 

사람이 얼굴 이미지를 보는 방식에서 고안한 방법이 Attention mechanism

Spatial한 feature( a )가 들어오면 RNN을 통과시켜서 어디를 참조해야하는지 heatmap( s )을 만들어줌

이 heatmap과 feature를 결합하여 z라는 벡터를 만들는데 이것을 Soft attention embedding이라 부름

 

grid로 표현된 a는 하나하나 feature vector로 되어 있고, 이 a와 RNN을 통과해 얻은 heatmap s를 내적한 것이 벡터 z

 

Show, Attention, and Tell의 Inference 과정은 다음과 같다.

 

Show, Attention, and Tell의 Inference 과정

 

(2) Text to Image by genarative model

- 텍스트를 이미지로 변환할 경우에는 다양한 이미지가 생성될 수 있음

1. 텍스트를 fixed dimensional vector로 만들어주는 네트워크가 필요

2. fixed dimensional vector에 가우시안 랜덤 코드를 붙여 똑같은 Input에도 다양한 Output이 나오게 함

3. 생성된 이미지가 들어오면 spatial feature를 뽑고 여기에 sentence 정보를 줌으로써 True/False 판별

Text to Image 과정, cGAN

 

3. Cross Modal Reasoning

Visual question answering

- 영상이 주어지고 질문이 주어지면 답을 출력하는 Task

 

1. Image stream에서는 Pre-trained된 네트워크를 사용해서 fixed dimensional vector를 출력하고,

2. Question stream에서는 RNN으로 Encoding하여 fixed dimensional vector를 출력

3. 각 stream에서 출력한 fixed dimensional vector 2개를 point-wise multiplication하여

   두 feature가 interation할 수 있게 만듦

4. 그리고 이것을 end-to-end 학습

각 stream에서 vector를 뽑아 두 vector를 point-wise multiplication하여 참조하는 구조