dev-writeup-2024 / january

개발 1일 1글 스터디
2 stars 0 forks source link

[01-03] Multimodal 딥러닝 모델을 위해 연구된 기술들 #12

Open Kjm04175 opened 8 months ago

Kjm04175 commented 8 months ago

Multimodal 딥러닝 모델을 위해 연구된 기술들

서론

Multimodal 이란 이미지와 텍스트, 보이스 등을 동시에 다루는 딥 러닝 네트워크입니다.

간단한 예시를 들어볼까요? 종이에 적혀있는 고양이라는 글자와 사람이 목소리로 말하는 고양이 모두 인간에게 있어서는 같은 의미로 받아 들여질 것입니다. 삼색 고양이, 검은 고양이, 샴 고양이, 빈티지 고양이 등등 각자가 나름대로 머릿속에서 고양이의 모습을 떠올리겠죠. 텍스트와 이미지를 하나의 모델로 처리할 수 있는 Stable diffusion이나 DALL-E, ChatGPT 등이 multimodal이라고 볼 수 있죠.

하지만, multimodal 기술이 적용되지 않은 NLP 모델, 음성 인식 딥 러닝 모델은 목소리와 글자를 다르게 인식할 것입니다. NLP 모델은 고양이를 목이 터져라 불러도 알아듣지 못할 것이고, 음성 인식 딥 러닝 모델은 글자를 카메라에 들이대도 이해하지 못하겠죠. 이 모델들은 학습을 할 때, 다른 종류의 데이터를 아예 고려하지 않았기 때문입니다. 그들의 학습 당시에 NLP에게는 텍스트, 음성 인식 모델에게는 보이스만 제공되거든요.

그렇다면, 학습을 진행할 때 다양한 데이터를 동시에 넣어주면 해결되는 것 아닐까요? 데이터를 알아서 뚝딱뚝딱 하고, loss를 최소화 하는 방향으로 학습되지 않을까요?

ChatGPT경에 따르면 그렇지는 않나 봅니다.

ChatGPT의 말에 따르면, 각 modality 간의 상호작용을 학습하는 데 특화된 아키텍처를 필요로 한다고 하네요. 다양한 데이터와 최신의 딥러닝 기술이 필요하다고 하네요.

네. 오늘은 이 multimodal에서 modality 간의 상호작용을 학습하기 위해 연구자들이 생각해낸 3가지 방법 CLIP, Image bind, Meta transformer에 대해 알아보도록 하겠습니다.

CLIP

image

CLIP은 2021년 Open AI에서 공개 논문으로, 텍스트와 이미지를 하나의 feature space에 위치하도록 학습한 모델입니다. 사실상 multimodal의시대를 연 논문이라고 볼 수도 있고, 최신 multimodal에서도 CLIP 기술을 채택하고 있는 등 multimodal의 핵심적인 기술이라고 볼 수도 있습니다.

CLIP 연구는 본디, 웹 상에서 이미지 데이터를 수집하고 싶다는 동기에서 출발했다고 합니다. text-to-text task의 경우 label이 존재하지 않는 웹상의 정보를 크롤링 해와 연구에 이용하는 것이 가능합니다. 하지만, 컴퓨터 비전 영역에서는 고품질의 labeling 된 데이터가 필수적이죠. 비전 영역은 만성 데이터 부족 현상에 시달릴 수 밖에 없었습니다.

CLIP은 이를 해소하기 위해 label이 아니라 자연어를 supervision의 대상으로 이용했습니다. CLIP 연구진은 이 방법을 통해 4억장의 image-자연어 데이터셋을 구축했다고 합니다. 자연어 supervision은 일반적인 classification과 같이 cross entropy loss를 이용하는 것이 불가능하죠. 연구진은 Contrastive learning을 이용했습니다. contrastive learning은 매칭되는 데이터 간은 feature space의거리를 가깝게, 다른 것은 멀게 만드는 것을 의미합니다. 네. CLIP 설명 맨 위에서 언급했던, 텍스트와 이미지를 하나의 feature space에 위치하도록 학습한 모델이라는 설명과 부합하는 상황이죠.

즉, CLIP은 만성적인 데이터 부족에 시달리는 컴퓨터비전 연구 문제를 해결하기 위해 label 대신 자연어를 이용했고 그결과 self-supervised learning의 일종인 Contrastive learning을 이용한 딥러닝 모델이라고 볼 수 있겠군요. contrastive learning을 이용한 학습은 CLIP 그림의 (1)에서 확인할 수 있습니다. image encoder와 text encoder가 각각 feature를 추출하고, Cos similarity를 계산하는 모습입니다. 이 때, N개의 batch를 이용해 본인과 본인을 나타내는 자연어와의 Cos similarity는 크게, 나머지와의 Cos similarity는 작아지도록 학습을 수행합니다.

실제활용 단계에서는 A photo is OOO와 같이 사진을 설명하는 자연어 텍스트들을 다수 생성해줍니다. OOO의 자리에는 학습에 이용되었던 class들이 위치할 수 있겠죠. 이후 image feature와 자연어 텍스트 간 Cos similarity를 측정해주면 됩니다. CLIP은 self supervised 혹은 weak supervised 모델이지만, label 정보로 학습된 supervised 모델에 필적하는 성능을 기록했다고 합니다.

Image bind

CLIP이 multimodal의 문을 열었다면, Image bind는 multimodal에서 반장을 정하려는 시도였습니다. multimodal에는 다양한 종류의 데이터가 존재하죠. Image bind는 그 대표를 image로 설정해 데이터들을 임베딩합니다. 연구자들은 모든 학습에 image와 modality(음성, 텍스트, depth등등)을 짝으로 사용하였습니다. Image bind에는 두개의 신경망이 존재합니다. f()와 g()인데, 각각 image를 embedding하는 신경망과 modality를 embedding하는 신경망으로 이해하시면 될 것 같습니다.

q_i와 k_i는 임베딩이 완료된 feature입니다.

임베딩 된 feature 들은 infoNCE Loss로 학습됩니다.

분모는 각각 image feature와 modality feature의 내적, image feature와 쌍을 이루지 않는 modality feature 간의 내적을 의미합니다. image feature와 modality feature 간의 내적은 둘이 유사할 때 1에 가까운 값을 가질 것이고, 유사하지 않다면 0에 가까워질 것입니다. image feature와 쌍을 이루지 않는modality 간의 내적은 그 반대의 양상을 보일 것입니다.

Image bind에서 가장 흥미로운 점은, 학습 당시에는 이미지와 modality를 쌍으로 학습했지만, 향후 prediction 단계에서 이미지 데이터를 넣지 않아도 잘 동작한다는 것입니다. 예를 들어, 음성-텍스트, depth-video 쌍은 학습 단계에서 아예 고려되지 않았죠 (항상 image가 함께 들어가야 하기 때문). 그럼에도 image bind 네트워크는 음성-텍스트, depth-video와 같은 modality 간의 쌍을 같은 것으로 인식한다고 합니다. 이미 image를 중심으로 해서 다양한 modality가 같은 feature space 상에 위치한 상황이기 때문이라고 생각합니다.

Meta transformer

image

Image bind는 image를 중심으로 동시에 6개의 modality를 다루었습니다. 이번에 소개할 Meta transformer의 경우는 image bind와 같이 대표 modality를 따로 두지 않고, 모든 modality를 tokenizer의 입력으로 해 데이터 시퀀스로 바꾼 뒤 처리하는 방식으로 12개의 modality를 동시에 다루었습니다.

image

각 데이터 종류에 따른 Tokenizer는 위와 같은 구조를 갖고 있습니다. 사실 convolution에 flatten을 덧붙인 간단한 구조입니다.

또한, 학습 과정에서는 모든 modality를 동시에 이용하지 않고, 하나의 meta 정보를 이용해 학습을 하는 것 같습니다.

추가 내용) VisProg

image

2023년 CVPR에서 재미있는 논문이 하나 공개됐습니다. (2023 Best paper 상) VisProg라는 이 논문은 chat gpt를 중심으로 해서 다수의 딥러닝 모델을 엮는 방법을 제안합니다. 간단히 그 구동 방식을 설명하자면, 사람이 chat gpt에게 Question을 생성합니다. question은 '사진의 사막을 푸른 초원으로 만들어줘' 와 같은 일상적인 요청입니다. VisProg는 이 question으로 부터 필요한 딥러닝 모델을 호출하는 함수와 parameter를 포함하는 prompt를 생성합니다. 이후 prompt에 따라, pretrained 딥러닝 모델들이 호출되고 VisProg는 최종 output을 출력합니다. 이 방법은 프로그래머가 문제를 해결하기 위해 함수를 호출하는 과정을 연상시킵니다.

마치기 전, VisProg에 대해 조사하던 중 재미있는 예시를 하나 발견해 소개하려 합니다.

뱁새와 파리의 사진을 넣고 '이 중 하늘을 날 수 있는 생명체를 찾아줘!' 라는 명령을 했을 때, VisProg는 'Fly'를 찾는 prompt를 생성했고, 결과적으로 파리에게만 bound box가 생성되었습니다. 아직은 동음이의어에 어려움을 겪는 과도기인 것 같습니다.

결론

인간이 다양한 감각을 동시에 활용해서 문제를 해결하듯, 인공지능 기술도 여러 종류의 데이터를 동시에 보고 처리할 수 있다면, 복잡한 문제에 다각도로 접근을 수행해 해결할 수 있을 것입니다.

저 역시 multimodal 딥러닝 모델에 많은 관심을 갖고 있고, 최근 기업들도 multimodal의 지식을 갖고 있는 연구자를 열심히 찾고 있는 것 같습니다. 향후 인공지능 연구를 이끌어갈 분야가 아닐까 생각되네요.

GPT경의 마지막 인사와 함께 마무리하겠습니다. 참고로 오늘 함께한 ChatGPT 3.5는 엄밀히 말해 multimodal은 아닙니다.

참조

https://ffighting.net/deep-learning-paper-review/multimodal-model/clip/ AI에서 멀티모달이 무엇이고 왜 중요할까? https://skyil.tistory.com/248

Longseabear commented 8 months ago

정성봐 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ아씌 웃엇네