원래 Tistory에는 복습하기 좋게 논문에서 중요한 부분만 밑줄 쳐놓고, 한국어로 다시 보기 쉽게 저장하는 방식이 내 블로그 포스팅 방법이지만, 이번에 방법을 바꿔서 Medium에 간단하게 요약을 하고, Tistory에 길게 써보려 한다. 별다른 이유는 없고, 원래 한글 포스팅은 안하려고 했지만, 논문 세미나에서 좀 많이 못했기에, 다시 정리하고 넘어가려 한다. 하.. 영어 말하기도 문젠데, 준비 문제다, Medium에 글을 쓰는게 얼마나 도움이 됐는지 다시 뼈져리게 느낀다.
간단한 설명은 아래의 Medium링크에서 보면 된다. (영어인 점 양해 부탁드립니당)
논문 제목: [MAE-CLIP] - Masked Autoencoding Does Not Help Natural Language Supervision at Scale
저자 : Floris Weers et al.
소속 : Apple.Inc
학회 : CVPR2023
인용 : 3 (2023.11.12)
링크 : [1 Main paper link], [2. Suplemental link] [3. Medium story link]
시작 하기 전, 사담을 약간 섞자면, 이 논문은 CVPR2023에 Accepted된 논문이다. ICLR아니고, 분석 논문도 아니다. 그리고 SOTA 성능을 자랑하지도 않는다. 하지만 제목을 보면 안좋다는 것을 알 수 있고, 왜 CVPR에 등록됐는지 궁금하게 만드는 논문이다. 그래서 이 내용을 가지고 토론을 해보고 싶었지만, 망했다..ㅜ 여기서라도... 누군가 재미있게 읽고 생각좀 공유해주면 좋겠다.
Background & Related work.
- 이 논문의 배경으로는, MAE가 시작이라고 생각하면 된다, M3AE, SLIP을 Abstract에서 언급하지만, 더 편하게 MAE부터 시작하자. 왜냐하면 이 논문을 줄여서 MAE-CLIP이라 부르니까.
1. 위의 왼쪽이 MAE, 우측이 CLIP이다. MAE는 Self-supervised learning 중 Contrastive learning에서 벗어나 새로운 Masked Image modeling이라는 방식을 제안한다. 기존의 Contrastive Learning이 Joint Embedding을 통해 이미지를 Global하게 보며 Classify를 하는 것을 목표로 한다면, 이 MIM 방법론은 Neighbor한 Patch 중, Corrupted 된 패치를 학습하며, 주위 정보 (texture, specific) information을 학습한다.
(반대로 Contrastive Learning은 물체 전체의 정보를 요약해서 멀리 떨어뜨리게 Mapping하므로 global, object information을 본다.)
따라서 MIM은 high-frequency information, CL은 Low-frequency information을 학습한다.
2. 다시 돌아와서 우측의 그림은 CLIP으로 위에서 언급한 기존의 Contrastive Learning 방식을 바탕으로 다른 데이터 셋의 modality 정보를 Encoding하는 것이 목표이다. 같은 크기의 Latent vector에서 같은 인덱스는 같은 정보로 요약이 되는 방식이다. 기존의 CL이 하나의 embedding space에 거리를 떨어트리는 방식으로 mapping을 했다면, 얘는 Similarity matrix라는 조금 더 확장된 개념으로 접근한다. 하지만 본질은 같다. 대각선 값을 높게, 그 외 값을 낮게 매핑하는 InfoNCE loss function을 사용한다.
++ 이 CLIP이 어떤 정보를 학습하는지 관련 논문을 찾아보지 않아서 모르겠지만, 똑같은 CL 방식이니까 low frequency를 바탕을 전체적으로 물체를 분류, 요약하려고 하지 않을까 싶다.
우리의 저자는 이 둘을 합친 MAE-CLIP을 제시한다. 조금 더 구체적으로 보면 BERT까지 합치게 된다. CLIP을 합치는 과정에서 어쩔 수 없이 들어갔다 생각한다. 그렇다면 왜 저자는 이 둘을 합치려고 했을까? Related work를 알아보자.
Related work
- 이제 조금 더 구체적으로, MAE와 CLIP이 합쳐졌는지 알아보자. 저자는 Additional supervision이라는 단어를 언급하는데, 그 의미는 Self-supervised learning보단, NLP dataset을 더하는 것이 더 좋다는 것이다.
- Self-supervised learning은 자기 자신에 대한 정보만 가지고 학습을 하기에 제한적이지만, NLP가 label의 역할을 하면서 supervised learning과 같은 효과를 줄 수 있다는 것이다.
- 아래의 SLIP과 ALIGN 그리고 그 외에 CoCa 등등을 보면 Natural Language supervision을 활용해서 더 좋은 성능을 보였다는 말을 한다. 심지어 zero-shot task에서 말이다. 따라서 Additional Supervision이 더 좋다고 결론을 내리고 넘어간다.
- 잠시 위 논문들에 대해 설명을 하자면, SLIP은 SimCLR + CLIP이다. SimCLR 즉, Contrastive Learning방식과 CLIP을 그냥 물리적으로, loss를 합쳐서 좋은 성능을 보여줬다. 우리의 MAE-CLIP은 SimCLR을 MAE로만 바꾼거니까 이 SLIP이 Self-supervised learning + CLIP이라는 것을 보고 영감을 받아 MAE로 확장시켰다 생각한다. (SLIP은 그냥 소스코드 참고)
- ALIGN은 1.4b의 image-text pairs의 Noisy한 dataset을 가지고 CLIP보다 좋은 성능을 보여줬다. Noisy하더라도, Natural Language supervision 자체가 가져다 주는 power가 좋기에 데이터만 충분하다면 좋은 성능을 낼 수 있다는 걸 보여준다.
Background Summary
- 따라서 위의 정보를 일단 요약하면 다음과 같다.
- MAE가 SSL에서 좋은 성능을 보여줬고, SLIP이 SSL + CLIP으로 좋은 성능을 보여줬다.
- 논문에서 나온대로라면, 기존의 Multi-modality 모델이 Additional supervision의 중요성을 강조했고, 이를 MAE에 적용해서 어떤 일이 벌어지는지 보려고 했다.
- 하지만, 기존의 Multi-modality 관련 모델은 CLIP Base를 따르고 있고, Ablation study가 명확하지 않다고 꼬집는다. 그래서 기본적인 MAE, CLIP, BERT를 합쳐서 어떠한 일이 벌어지는지 확인해보는 것이 목적이다.
(내 개인적인 생각으론) SLIP에서 SimCLR을 MAE로 바꾸면 좋은 성능이 나오지 않을까 라고 생각하고 접근을 한 것 같다. 그리고 성능이 안나오니 이러한 논문을 썼다고 생각한다. 그래도 그냥 성능만 높은 모델을 제시하는 논문보다 훨씬 좋다고 생각한다.
- 그래서 논문에서 제시하는 모델 구조는 아래에 있다. 조금 더 크게 보자.
- 근데, 크게 볼 이유가 없는 것 같다. 바로 모델 설명을 해보겠다. 사실 모델 설명도 할 게 없다.
- 아래 글 참고하기 바라며, MAE + BERT를 Original/Masked로 End-to-End training이 불가능해서 2번 나눠서 한다.
- CLIP 구조 + Decoder 부분은 생략.
- 앞서서 언급했지만, End-to-End로 한번에 학습이 안된다. CL loss + Generative Loss 두번 구해야 하기 때문이다.
KeyPoint
1. Relative Loss: 자세히보면 generative loss앞에 hyperparameter w가 붙어있다. 그 이유로는 이 논문에서 제시하는 방법론의 성능이 좋지 않다. 저자가 제시하는 첫 번째 가정은 불필요한 정보 학습이다. Masking을 복구하는 것도 의미가 있는 그런 부분을 복구하며 모델이 학습이 되어야 하는데, 얘는 그런거 없고 그냥 무지성으로 학습하다가 이렇게 된다는 것이다.
저자는 이러한 부분에서 cost를 잡아먹기에 모델이 학습이 안되는 것 같다고 이야기한다. 그래서 relative loss를 사용한다.
2. Generative loss: MAE는 raw pixel의 차이를 구하는 MSE를 사용하기에 특별할 것이 없으며, text 부분의 Generative loss또한 특별할 것이 없다. 하지만, 내가 저 text reconstruction loss에 대한 질문을 답을 제대로 못했다. 그래서 한번 짚고 넘어가자.
우선 위의 loss는 Classification에 사용되는 Cross-Entropy와 유사한 모습을 보인다. 차이가 있다면 우측에 있는 t_i가 없다는 것인데, 여기서의 t_i는 정답 index의 확률 즉 1,0이다. 그리고 Reconstruction에서의 정답 위치의 확률은 1이여야만 하므로 생략이 가능하다. 이 Loss는 GPT에서 사용이 되었던 것으로 알고 있다.
Results - 1
- 작은 데이터 셋은 CC12 + CC3M을 CLIP 방식을 따라서 전처리를 진행한 11.4M image-text pairs를 사용했다.
- 작은 데이터 셋에서는 CLIP을 능가하는 성능을 보여준다. M3AE가 가장 좋은 성능을 보여주지만, 어쨌든 중요한건 제안하는 방식이 CLIP, MAE보다 좋다.
- 즉, 작은 데이터 셋 에서는, MAE와 CLIP을 합친 것이, Masking을 활용한 mutli modality 방식이 작은 데이터 셋에서는, visual representation을 돕는 역할을 한다는 것이다.
Results - 2
- 그리고 이 논문의 핵심, 큰 데이터 셋에서의 나쁜? CLIP과 비교했을 때 성능이다.
- ImageNet에서는 CLIP 계열의 성능이 제일 좋았으며, MAX 방법론 Pooling이 더 좋았다. 여기서의 MAX는 Maxpooling이 아니라 Non-maximul suppression pooling이다. (아래에서 설명)
- ImageNet에서의 성능을 보면, 큰 데이터 셋에서는 Masked Natural Language supervision이 좋지 않다는 것을 보여준다.
Results - 3 (Pooling)
- 그리고 저자가 한가지 더 문제를 제기하기 위해 이 Pooling 방법론을 언급한다. (위의 빨간색 Heat map 때문)
- 참고로 논문에서 사용된 Pooling은 MAP/GAP/MAX 이며, 각각 multi-head attention pooling, GAP는 패스, MAX는 non-maximul suppression pooling이다.
- GAP는 유명하니 제외하고, MAP는 Latent vector를 구성하는 값을 만들 때, Multi head의 출력 값을 concat시켜는데, 이 각 head의 값은 내부의 weight값을 각각 반영하여 집어넣는다.
- MAX는 일단 sort를 한 후, 임의의 k개만큼 weighted sum을 한다.(사실 저도 처음봐서 정확하게는 모르겠다)
Results - 3-2
- 여기에 언급이 되진 않지만, 가장 기본적인 CLIP은 CLS토큰을 사용하고, 이게 성능이 가장 좋다. 하지만 위에서 잠깐 본 것처럼, A photo of dog라는 문장에 대해, 배경을 보고있다는 문제가 있다는 것을 알 수 있다.
- 하지만, MAX 방법론을 사용하면, 이 문제는 말끔하게 해결이 된다.
- 사실 이렇게 CLS토큰을 사용한다는 것이 성능은 가장 좋지만, 배경을 본다는 것이 말이 안된다. 아무리 성능이 높다고 해도 신뢰할 수 없기에, 저자는 Pooling에 대한 ablation study도 진행하였다.
- 그리고 데이터 셋 마다 Pooling 성능이 다르기에, task-specific 한 Pooling 방법론을 사용하길 권장한다.
Phenomenon analysis.
- 사실, 여기서 부터가 진짜 핵심이다. 이 부분 때문에 CVPR에 올라가지 않았나 생각이 드는데, 첫번째는 visual grounding problem이고, 두번째는 Dataset diversity이다. 그리고 내 생각은 그 다음에 적어본다. 추가적인 의견이 있다면, 댓글 부탁드린다.
1. Visual Grounding Problem.
- 앞서 말한 것 처럼, CLS 토큰을 사용하면, 이상한 Back-ground에 초점을 두는 것을 볼 수 있다. 심지어 성능은 더 높다. 저자는 이게 왜 그런지 향후 연구에 맡긴다고 적어두긴 했다만, task specific한 pooling으로 해결할 수 있다고 말한다.
2. Dataset Diversity
- 저자는 데이터 셋 마다 다르기에 이러한 결과가 나온다고 말을 한다. 저자의 말을 정리해보자면,
1. Small but diversity한 데이터 셋에서 Self-supervised learning이 좋다.
2. Small & narrow한 데이터 셋은 그냥 다른 모델 사용하는 것이 좋다.
3. Large & More diversity한 데이터 셋이 Natural Language supervision을 활용하기 좋다.
인데, 내 생각을 가미해서 더 정리를 해보면 다음과 같다.
1. Large한 데이터 셋이라도, Clean한 데이터 셋이여야 성능이 좋다. 너무 Diversify한 데이터 셋이면, 앞서 저자가 언급한데로, 모델과 관련이 없는 부분에 cost를 사용하느라 성능이 떨어진다.
++ 너무 diversify한 dataset이면, weak label을 여러개 지정하는 것이 좋지 않을까 생각한다.
2. Diversify한 데이터 셋 이여야 NLP의 성능이 좋아진다. 하지만 우리가 원하는건 visual representation의 상승을 원하지, Natural Language supervision의 상능을 원하는 것이 아니므로, 이 MAE-CLIP의 방법론이 별로이다.
다른 논문을 바탕으로 생각해보는 이 방법론이 안되는 이유
1. 처음에 밝혔지만, CL은 low-frequency를, MIM은 high-frequency 정보를 self-supervised learning에서 학습한다. 즉, 이 둘이 같은 self-supervised learning이더라도, 아에 서로 다른 방법론인 것이다. 따라서 이 과정에서, 서로 충돌이 일어났을 수 있다고 생각한다. 혹은 이 MAE-CLIP이 최선의 방법이 아니라고 생각을 한다.
2. MAE-CLIP의 objective function을 간소화 시켰을 때, p(masked Image | unmasked image, unmasked text) + p(masked Text | unmasked text, masked Image) + p(positive_similiarity(text, image)) - p(negative_similiarity(text, image)) 를 바탕으로 우리가 원하는 것은 전체적으로 이 objective function이 높은 값을 가지는 것도 있지만, p(image)에 대한 높은 값을 원한다. 왜냐하면 visual representation을 높이고 싶으니까.
하지만, 앞서서 언급했다 싶이, Data specific한 Problem 때문에, p(masked Image | unmasked image, unmasked text)가 낮아진다고 생각한다. 아울러, 위의 VQA 데이터 셋(NLP)에서는 큰 크기의 데이터 셋에서도 MAE-CLIP의 성능이 좋았기에, Natural Language supervision의 관점에서는 visual supervision이 도움이 된다고 말할 수 있을 것 같다. 즉 제안하는 모델이 p(masked Image | unmasked image, unmasked text)를 적절히 보완해주지 못했다 생각한다.
3. 마지막으로, 이 저자는 Natural Language supervision의 결합은 scale부분에서 상승을 보여주지 못했다고 말하지만, Image 부분의 성능을 올리고 싶다면, IN-1k보다 더 크고, well-refined되었으며 혹은 clean하며, 적당한 diversity를 가진 모델을 적용하면 Natural Language supervision결합을 더 올릴 수 있을 것이라 생각한다. 아울러 이런 데이터 셋은 Natural language supervision 관점에서 도움이 잘 안될 것이기에, IN-1k zero-shot 분야에서의 성능을 올리는 것이 목표라면, 차라리 bias된 objective function을 짜도 되지 않을까 생각한다.