본문 바로가기

DL/Generative

CLIP : contrastive language image pre-training

background

기존 supervised image classifier

대규모 데이터셋 기반 모델 pre-training : ResNet, VGGNet, EfficientNet..

 

한계

- 매번 각 task에 맞도록 새로운모델 tuning 필요 : 모델의 일반화 성능 떨어짐

- new downstream task에 적합한 다량의 이미지, 레이블링 작업 필요 : 많은 시간과 비용 필요

- 벤치마크 데이터셋의 성능과 실제 데이터셋 사이 성능 차이 존재 : robust

 


- Fine-tuning이 필요 없는 일반화된 모델

- 이미지 수집 및 정 레이블 생성에 적은 노력이 드는 모델

- 벤치마크 데이터셋 이외의 여러 현실 데이터에도 성능이 유지되는 모델

 


 

▶ CLIP : contrastive language-image pre-training (2022)

Web-based image-text pair 기반의 visual representation 사전학습 방법론

 

1) image - text pair

기존 모델의 경우 image classifier 모델은 이미지의 분류만을 수행함, 즉 이미지의 의미론적 정보를 학습

CLIP은 이미지와 이미지 설명 텍스트를 결합한 image-text pair를 입력으로 사용

                                    이미지와 언어에 대한 representation을 함께 학습하여 일반화된 특징 학습 가능

 

original CLIP
visual representation visual representation & semantic information

 

 

2) Web-based large dataset

인터넷으로부터 레이블링이 필요없는 약 4억개의 image-text pair 수집

                              50만건의 검색, 각 검색어당 이미지 max 2만개

 

기존의 image-text pair 적용 분야 => Image captioning

                                                               이미지 입력 => 이에 적절한 text 출력

                                                               transformer-based : 정확한 순서로 이루어진 문장 출력

                                                               bag of words-based : 순서 상관 X, 문장에 포함된 단어 맞추는 모델

                                                               모델의 사이즈가 크고, 학습 및 예측 시간이 길어 비효율적

 

CLIP METHOD

selecting an efficient pre-training method

  • 기존 방식보다 효율적인 contrastive learning 적용하여 pre-training 진행

                = 데이터 내 positive & negative sample 간 관계학습

                   입력 샘플 간 비교를 통해 학습

contrasive learning

 

  • zero-shot prediction에서도 좋은 성능을 보임

clip의 성능이 좋아진 이유 : 이미지와 텍스트의 연결 방식으로 contrastive learning method를 선택했기 때문


METHODOLOGY

part1. contrastive pre-training

part2. create dataset classifier from label text

part3. use for zero-shot prediction

 

part1. contrastive pre-training : 학습

  • 배치 단위로 이루어진 N개의 이미지와 텍스트를 각각 인코더에 통과시켜 임베딩 벡터 산출

  • 이미지와 텍스트 벡터 간의 내적을 통해 코사인 유사도 계산
  • pair에 해당하지 않는 이미지 혹은 텍스트는 서로 다르다는 관계 하에 cross-entropy loss 계산
    • image data와 text data loss를 각각 적용함

 

도출된 loss 값 기반으로 모델 학습

 

-- 학습 종료 / 예측 시작 ---------------------------------------------

 

part2. create dataset classifier from label text

fine tuning과정을 거치지 않고 모델 예측 수행

= 즉, 하위 데이터 레이블을 통해 모델 업데이트를 하지 않음

  • 적용하고자 하는 특정 하위 문제의 데이터셋 레이블을 텍스트로 변환 : 휴리스틱
    • 단순 단어, a photo of {}에 해당하는 구로 변환
      • [단어 -> 구 : 성능 향상됨] 연구 결과 기반
  • 이후 학습된 텍스트 인코더에 통과 시켜 텍스트 임베딩 벡터값 산출

 

 

part3. use for zero-shot prediction

  • 예측하고자 하는 이미지를 학습된 이미지 인코더에 통과시켜 이미지 임베딩 벡터값 산출
  • 텍스트 벡터와 이미지 벡터 간 유사도 계산
  • 상대적으로 높은 값의 유사도를 띄는 텍스트를 선택하여 예측 값 결정

 

이처럼 예측에 대한 레이블만 간단하게 정의해주면 제약식 없이도 zero-shot learning이 가능하다!

 

EXPERIMENTS

본 모델의 pre-training이 효과적임

  • 27개의 데이터셋을 통해 resnet50과 비교해본 결과, 타 데이터셋에서 좋은 성능을 나타내는 것을 확인했지만, mmist의 성능이 약간 떨어지는 것을 확인할 수 있었음
    • 이는 여전히 일반화에 취약한 문제를 가지고 있음을 알 수 있음
  • 그러나 training, test dataset과의 분포 shift에서 robust함을 확인할 수 있음  

 

CLIP application

- content moderation : 유해 사항이 포함된 이미지 수정 알고리즘

- object tracking : 프레임 간 동일한 객체 탐지 추적 알고리즘

- DALL-E 2 : 텍스트 설명 기반의 이미지 생성 알고리즘 (clip & gan)

 

참고 영상 자료

 https://www.youtube.com/watch?v=dELmmuKBUtI