본문 바로가기

AI

[ 핵심 개념 정리 하기 ] Clip

728x90
반응형

 

728x90

오랜만에 글을 쓰는 것 같네요.

오늘은 오랜만에 쓰는 만큼 개념에 대해서 정리해볼까 합니다.

논문을 기반으로한 Clip 개념에 대해서 정리해 볼게요


데이터 관점

  WIT -> 400 million 개의 쌍을 활용해서 학습함 

  : 인터넷에서 수집한 대규모 데이터 셋으로, image와 text 쌍으로 이루어 져 있음. text는 prompt engineering 을 통해 단어가 아닌 단어가 지닌 의미가 포함되도록 구성함 ( ex. a photo of cat )

 

논문에서 말하고 싶은 여러 실험의 의미 ( 가령 figure 13, 14 등 ) 

  : WIT 데이터 셋 ( clip을 학습 시킨 데이터 셋 ) 은 computer vision의 여러 가지 데이터 set의 distribution을 포함하고 있음으로 zero shot 성능이 뛰어남을 주장하려고 함

 

WIT 데이터 셋이 가지는 한계점

  1. 정제되지 않은 데이터셋 ( overlap 등 데이터 효율면에서 문제가 있음 ) 

  2. 인터넷에서 수집한 데이터로 사회적 편향성 역시 포함됨 ( nurse -> women, CEO -> men  등 )

  3. specific 한 domain ( 손 글씨 데이터, 꽃 분류 등 ) 은 포함되지 않음 ( 즉, 세상의 모든 데이터 domain 의 distribution을 담고 싶었지만 실패했음 )

  4. text로 표현하기 어려운 추상적인 task에 대해서는 학습시키지 못함


아키텍처 관점

  구성 : text encoder + image encoder

text encoder

 : transformer 를 사용함

 

image encoder

 : renet base backbone / vit base backbone 을 사용함

 

실험을 통해 아키텍처가 가지는 의미를 말하고 싶은 것

: 아키텍처는 파라미터가 많아질수록 / 데이터 양이 많아질수록 성능이 올라감

-> resnet base model은 width / depth 방향으로 모두 확장했음 + sota 수준의 성능을 위해서는 scale up 이 필요함 ( 기준 모델 대비 1000배 )

 

encoder 만으로 구성된 모델의 한계 ( 논문에는 없음 )

: 논문의 용어를 빌려 표현하자면, muti modal embedding 공간에 대한 표현력을 다 채우지 못함 

좀 더 자세히 말해보면,

1. 이미지의 representation 이 더 복잡함

2. 정해진 prompt 형식은 자연어의 representation을 모두 담지 못함

3. contrastive objective를 사용했기에, 효율성은 올라갔을지 언정, image representation 을 text representation 으로 context를 이해하기에 부족함

 

가령 예시로, ' 닭 쫒는 개 ' vs ' 개 쫓는 닭 ' 이 유사도는 clip에서는 둘 다 비슷하게 높게 나올 것. 해당 task 를 제대로 이해하기 위해서는 이미지가 가지는 의미를 text가 가지는 의미 ( 즉 단어의 위치 , 문장내 단어의 역할 )를 고려해서 output을 도출해야하지만 그게 아닌 유사도로만 output을 도출하기 때문


  기타

오해하지 말아야 할것

1. clip 이 zero shot 성능이 뛰어난 이유?

  : 데이터가 많아서 임. 특별한 이유가 있는 것이 아님. WIT 가 test한 benchmark의 data ditribution을 포함하고 있었을 뿐

2. clip 은 text2text 페러다임을 반영 했는가?

 : 반영 하려고 시도는 했음. 다만 text2text 처럼 자연어가 가지는 의미 ( 단어 위치, 역할 등 ) 모두를 이미지 representation에 매칭시키지 못했음

3. clip 에서 말하는 linear probe

 : clip 자체를 사용한다는 것이 아님. image encoder 에 MLP를 붙이고 마지막 embedding 까지는 frozen 시킨 후 마지막 linear layer가 특정 데이터 셋에 맞도록 학습시킨 것 -> 당연히 general한 성능은 떨어지고 해당 data distribution에 좀더 특화되게 됨

+ 해당 dataset에 더 특화시키기 위해서는 MLP 에 non-linear한 layer를 추가적으로 넣어주면 더 specific 해질 것

4. clip 을 oneshot 에서 뛰어난 성능을 가지게 하고 싶다면?

: contrastive object가 아니라 caption 시 사용하는 objective로 학습시키면됨. 그런데 그게 가능할까 싶음. 데이터가 너무 많고 효율성에서 떨어지니까. 그만한 리소스도 없고?


오늘은 오랜만에 이정도로만 정리할게요

요즘은 논문 자체를 정리하는 것도 조금은 사실 많이.. 귀찮아서.. ㅎㅎ

앞으로는 읽는다해도 핵심만 요약해서 올려 볼까합니다. 이렇게?

그럼 이만

728x90
반응형