Search
Duplicate

시각적 이해를 위한 머신러닝/ Multimodal Learning I

Multimodal은 통계학에서 유래한 것으로 딥러닝에서는 데이터 형식이 여러 개인 것을 뜻함.
Audio는 모든 소리를 뜻하고, Speech는 언어를 뜻함.
멀티모달의 활용 예
이미지/비디오 검색, 이미지/비디오 캡셔닝, VQA 등
Image나 video가 주어졌을 때 caption을 다는 task
image와 caption을 주고 학습 시킴
LRCN이 Image/Video Captioning에 잘 동작 함
LSTM의 input과 hidden state에 CNN feature를 추가해 주는 2가지를 테스트 해 봄.
어느 정도 잘 된다.
NCE를 이용한 모델도 있음.
input이 multi modal이기 때문에 image와 caption 2개를 이용해서 분포를 만듦.
가짜 분포도 2쌍을 만들어주는데, 이때 아무렇게나 주면 너무 쉬우므로, image는 진짜 이미지를 쓰고, caption은 해당 이미지의 caption이 아닌 문장을 줌.
captioning을 위한 loss 함수
기존과 동일하지만 image와 caption의 관계를 배우도록 loss를
이미지에 대해 공간적인(spatial) 정보에 대해 LSTM으로 attention 함. 그래서 어느 공간적인 정보에 attention 해야 할지를 바탕으로 caption을 생성 함.
attention 과정
LSTM으로 spatial 정보를 attention 해서 hidden state를 업데이트하는 과정
Q, K, V
Spatial Attention의 분포 수식
이미지의 특정 부분을 보고 caption을 생성 함.
예제 - 잘 된 것들
각 단어에 대해 어느 부분에 attention 하고 있는지를 보여 줌.
예제 - 잘 안 된 것들
Video captioning을 할 때는 시간(temporal) 정보가 추가 됨.
처음 각 frame에 대해 CNN을 돌려서 그걸로 첫 번째 hidden state를 만들고 attention 단계를 진행
흐름은 이전과 동일
transformer에서는 key, value에 대해 WK,WVW_K, W_V를 따로 만들어서 쓰는데, 다른 경우에는 대부분은 그냥 같은 것을 쓴다고 함.
Q, K, V
Tansformer에 image-text를 어떻게 사용할 수 있을까?
image, text pair는 어떻게 수집할 수 있을까?
다소 noise가 있더라도 그냥 검색 결과와 클릭 이미지 pair를 쓰거나, 웹에서 image에 text를 단 것을 쓰거나 등. 이런 데이터에는 noise가 많이 끼어 있음.
VL-BERT는 Transformer를 image-text 대응 모델에 적용 시킴. ViT보다 먼저 나옴.
caption과 image에 대해 token, segment, sequence position에 추가로 video feature embedding을 추가해서 넣어 줌.
token은 기존 문장 token에 [img]를 추가해서 넣음
segment는 문장과 이미지를 구분
sequence는 sequence. image 부분은 detection 된 object의 좌표를 넣음
visual feature는 text 부분에는 image 전체에 해당하는 feature를 넣음. image에는 object detection을 돌린 후에, detection된 object의 bounding box를 잘라서 넣음.
BERT의 MLM처럼 문장에 빈칸(Mask)을 만들어서 단어를 찾게 하는데, visual 데이터도 함께 보고 추측하게 함.
이미지에 대해서도 detection된 object를 Mask 씌우고, 거기에 어떤 이미지에 해당하는 text가 있어야 하는지를 맞추게 함.
고양이에 mask를 씌우고, ‘Cat’이 나오게 함.
Mask 씌워진 이미지가 무엇일지는 Caption 문장을 보고 추론하게 함.
사례
VL-BERT랑 비슷하게 나온 것이 VilBERT
VL-BERT처럼 Fast R-CNN을 써서 object detection 해서 caption과 함께 input으로 넣어 줌
attention 과정에 차이를 줌
input을 같이 넣지 않고, visual, caption을 각각 돌림.
TRM은 전통적인 Transformer로 자기 자신에 대한 것을 돌리는데, 그 앞에 Co-TRM에는 visual, liguistic을 교차 시킴.
이때 query는 자기 자신을 input으로 넣는데, key, value를 상대방 것 (visual이면 text, text면 visual)을 넣어 줌.
VilBERT의 학습 방법. BERT의 MLM과 Next sentence prediction에 대응하는 것을 1개씩 해 봄.
MLM에서는 visual과 text에 각각 mask를 씌우고 visual이면 text, text면 visual 정보도 보면서 예측 가능하게 함.
NSP 쪽에서는 문장이 visual 데이터를 예측하는게 맞냐 아니냐를 판정하게 함. 맞는 것 50% 틀린 것 50%를 넣어서 예측 돌림. 이게 상당히 강력함.
caption을 주면 그에 맞는 image를 검색하는 것을 함.