CV-006, NL-118, Learning Transferable Visual Models From Natural Language Supervision (2021-OpenAI)

■ Comment

  • 논문은 너무 기니, 블로그의 길을 읽어보자
  • 이 논문은 비전과 텍스트를 결합한 모델로 보면 된다.
  • 허깅페이스에 현재 코드가 탑재되어있으니 내부 동작도 살펴볼 수 있다.
    • 근데, special token을 tokenizer에 추가는 되지만, model의 resize_embedding이 동작안한다.
    • 그리고 max_token도 77이라 짧은 텍스트만 처리가 가능하다.
  • 이 모델의 시작은 이미지쪽이다.
    • 즉 이미지에서 GPT와 같이 zero-shot 방법을 아마 고민한 거 같다.
    • 방식은 텍스트를 활용하겠다는 것이다.
    • 모델 그림이 직관적인데, 인터넷의 수많은 소스에서부터 구한 text-image 매칭을 시키는 것이다.
    • 이때 text는 a photo of {dog}와 같이 {dog}와 같은 부분만 바꿔서 학습시키는 것이다.
    • 실제 테스트할 때, 이미지를 dog, cat, horse의 3개 클래스 중에서 분류하는 것이라고 보면, 이미지와 a photo of {} 3개의 텍스트와 비교해서 각각 logit을 뽑는다.
    • 가장 큰 logit이 그 이미지의 클래스가 되는 개념으로 보면된다.
    • 물론 학습할때도, 이와 같이 클래스 후보들이 주어진다.
    • 그 부분에 대해서는 블로그글에서는 다루지 않고 논문에서 다루는 것 같고 추가적으로 contrastive learning 이라는 기법을 이용하는 것 같다.
  • 어쨋든, 테스트할 때, 어떤 클래스 리스트에 대해서도 나름 잘 작동한다는 것이고 꼭 분류만이 아니더라도 여러 곳에 활용할 수 있다고 한다.
    • 또한 이후에 이를 이용한 styleCLIP 등의 논문이 나왔다.
    • 모델 구조는 Transformer이다. ResNet 버전은 Transformer보다 별로인 듯 하다.

0. CLIP 소개

  • 딥러닝은 CV에서 혁명을 일으켜왔고, 현재 접근법은 몇 가지 중요한 문제점이 있다.
    • 전통적인 비전 데이터세트들은 노동 집약적이고 생성하는데 많은 비용이들고 좁은 시각적 컨셉들만 가르치게 된다.
    • 표준 vision 모델들은 한 가지 테스크에서 잘 작동하고 새로운 테스크에 적용하기에 많은 노력을 요구한다.
    • 그리고 벤치마크들에서 잘 작동하는 모델들은 stress 테스트들에서 실망스러운 성능을 가진다.
    • 컴퓨터 비전에 대한 전체적인 딥러닝 접근법에 대해 의문점이 생긴다.
  • 우리는 뉴럴 네트워크를 소개하여 이러한 문제들을 해결하는 목표를 가진다.
    • 이 신경망은 인터넷에서 광범위하게 사용할 수있는 다양한 자연어 supervision을 통해 다양한 이미지에 대해 학습된다.
  • 설계를 통해, 네트워크는 GPT-2 및 GPT-3의 "zero-shot" 기능과 유사한 벤치 마크 성능을 직접 최적화하지 않고도 매우 다양한 classificaion 벤치 마크를 수행하도록 자연어를 구성할 수 있습니다.
  • key 변화는 이것이다.
    • 벤치마크를 통해 직접적으로 최적화하지 않고, 우리는 더욱 많은 representative가 되도록 보여준다.
    • 우리의 시스템은 
    • 우리 시스템은 “robustness gap”를 최대 75%까지 줄이면서 기존의 1.28M 레이블링된 예제들을 사용하지 않고 ImageNet zero-shot에서 기존의 ResNet-507의 성능을 달성한다.
    • 두 모델들은 ImageNet 테스트 세트에서 같은 정확도를 가지지만, CLIP의 성능은 ImnageNet 세팅이 아닌, 다른 곳에서 성능을 측정하기 위한 데이터세트에서 어떻게 작동하는지 좀 더 잘 표현한다.
    • 예를 들어, ObjectNet은 모델이 많은 다른 poses와 집에서 많은 다른 배경들에서 objects을 인식하는 능력을 확인한다.
    • ImageNet Rendition과 ImageNet Sketch은 모델이 objects의 추상적인 설명을 인식하는 능력을 확인한다.

1. Background and Related Work

  • CLIP (Contrastive Language-Image Pre-training)는 zero-shot transfer, natural language supervision과 multimodal learning에 대한 많은 연구의 내용에서 설계되었다.
  • zero-data learning의 개념은 10년전으로 거슬러 올라가지만, 현재까지 unseen object 카테고리들을 일반화하는 방법으로 CV에서 많이 연구되어 왔다.
  • 중요한 인사이트는 natural language을 flexible prediction space으로 레버리지를 써서 transfer와 일반화가 가능하게 하는 것이다.
    • 2013년, Richer Socher은 스탠포드에서 CIFAR-10에 대한 모델을 학습을 통해 개념을 증명하여서 word vector embedding space에서 예측을 하게하여 모델이 두 개의 unseen classes을 예측할 수 있음을 보여준다.
  • 같은해에, DeVISE는 이 접근법을 확장하고 ImageNet 모델에서 fine-tune을 하여 기존의 1000개의 학습 세트의 밖에 있는 objects들을 예측하는 일반화가 가능함을 보여준다.
  • CLIP에 가장 영감을 준 것은 FAIR에서 Ang Li의 연구이다.
    • 여기서 natural language supervision을 사용해서 기존의 여러 CV classification dataset에서 zero-shot transfer이 가능하게한다. (canonical Image dataset과 같은)
    • 그들은 ImageNet CNN을 좀 더 넓은 텍스트 제목과 30 million Flickr 사진들의 테그들로부터 visual concepts (visual n-grams)의 셋을 예측하도록 fine-tuning함으로써 이를 달성할 수 있고 ImageNet zero-shot에서 11.5% 성능을 달성할 수 있었다.
  • 마침내, CLIP은 작년에 natural language superivsion으로부터 visual representations을 학습을 재검토하는 논문의 그룹의 일부이다.
  • 이 연구의 흐름은 Transformer와 같은 좀 더 최근의 구조을 사용하고 VirText을 포함한다.
    • 이는 autoregressive language modeling와 maksed language modeling을 조사하는 ICMLM, 같은 contrastive objective을 연구하는 ConVIRT을 탐구한다.
    • 의료영상에서 사용하는 ConVIRT을 CLIP에서 사용한다.

2. Approach

  • 우리는 간단한 pre-training task을 확장하는 것이 매우 다양한 image classification에서 경쟁력있는 zero-shot 성능을 달성하는 것은 충분하다는 것을 보여준다.
  • 우리의 방법은 풍부하게 가능한 supervision의 소스들을 사용한다.
    • 이미지와 쌍으로 text는 인터넷을 통해 찾는다.
    • 이 데이터는 CLIP을 위한 proxy training task을 따르는 것을 만드는데 사용된다.
    • 이미지가 주어졌을 때, 랜덤하게 샘플된 32,768개의 text snippets 중 어떤 것이 실제로 우리의 데이터세트에서 쌍을 이루는지 예측한다.
  • 이 테스크를 해결하기 위해, 우리의 직관은 CLIP 모델들이 이미지에서 다양한 visual concepts을 인식하고 그들의 이름과 연관짓는 것을 배워야 한다.
    • 결과적으로, CLIP 모델들은 근처의 비슷한 visual classification tasks들에 적용이 가능하다.
    • 예를 들어, 데이터세트의 테스크가 각 이미지에 대해 dogs인지 cats의 사진인지 분류하는 것이라면, 우리는 CLIP 모델이 text description "a photo of a dog" or "a photo of a dog"와 어느것에 더 가까운 쌍인지를 예측하는 것이다.
    • CLIP는 컴퓨터비전에 대한 기존의 딥러닝 접근법에서 많은 중요한 문제들을 완화할 수 있도록 설계되었다.
  • Costly 데이터세트
    • 딥러닝은 많은 데이터를 필요로 하고 vision 모델들은 전통적으로 손수 레이블링된 데이터세트로 (구축하기 비싸고 오직 미리 정의된 visual concepts에 한계가 있는) 학습되어 왔다.
    • ImageNet 데이터세트는, 이 영역에서 가장 많은 노력이 든 것중 하나로, 25000 작업자들이 14 million 이미지들, 22000 object 카테고리들에 대해 어노테이션한다.
    • 반면에, CLIP는 text-image pairs로부터 배우고 인터넷에서 미리 공공적으로 가능하다.
  • 비싼 큰 레이블링된 데이터세트의 필요성을 감소시키는 것은 이전의 연구에서 광범위하게 연구되었다.
    • 대표적으로 self-superivsed learning, contrastive methods, self-training 접근법들, generative modeling등이 있다.
  • Narrow
    • ImageNet 모델은 1000 ImageNet 카테고리들을 예측하는데 좋으나, 이것이 할 수 있는 전부이다.
    • 만약 우리가 다른 테스크에서 수행하고 싶으면, ML 연습자는 새로운 데이터세트를 구축하고 output head을 추가하고, 모델을 fine-tune 해야한다.
    • 반대로, CLIP은 다양한 visual classification tasksㄴ에서 어떠한 학습 예제들의 도움없이 수행하도록 적용이 가능하다.
    • CLIP을 새로운 테스크에 적용하기 위해, 우리는 CLIP의 text-encoder에 테스크의 visual concepts의 이름을 말하는 것이다.
    • 그리고 이것은 CLIP의 visual representation의 linear classifier으로 출력한다.
    • 이 classifier의 성능은 fully superviseid models와 경쟁력이 있다.
  • 즉 CLIP은 어떻게 보면 image classification의 zero-shot을 위해 text와 결합한 것이라 보임.
    • text-image 매칭하는 식으로 해서 zero-shot을 하기 위해 text에 unseen 카테고리를 적어주면 되는 것
  • 아래의 다양한 데이터 세트의 예에서 제로 샷 CLIP 분류기의 무작위, non-cherry 선택 예측을 보여줍니다.
  • Poor real-world performance
    • 딥러닝 시스템은 종종 사람 혹은 사람과 같은 성능을 vision 벤치마크들에서 달성한다.
    • 그러나 실세계에서, 그들의 성능은 벤치마크에 의해 기대되는 것보다 낮다.
    • 즉, benchmark 성능과 real 성능 사이에는 gap이 있다.
    • 우리는 이러한 gap은 모델들이 오직 벤치마크에서 성능을 최적화 하도록 하기 때문이라고 추측한다.
    • 이것은 마치 학생이 시험에 통과하기 위해 오직 작년 시험들에대한 질문에 대해서만 공부하는 것이다.
    • 반면에, CLIP 모델은 그들의 데이터에 대한 학습없이 벤치마크들에 평가될 수 있기 때문에 "cheat" 방식이 아니다.
    • 벤치마크들 성능에서 이 결과들은 실세계에서 성능을 훨씬 더 잘 나타낸다.
    • "cheating hypothesis"을 검증하기 위해, 우리는 또한 ImageNet에 대한 "study"가 가능 할 때, CLIP의 성능 변화를 측정한다.
    • linear classifier가 CLIP의 features의 top에서 fitting될 때, 이것은 ImageNet 테스트세트에서 CLIP의 성능을 10% 향상시켰다.
    • 그러나, 이 classifier은 robust 성능을 측정하는 다른 7가지 데이터세트에서 나아지지 않았다.

3. Key Takeaways

3.1. CLIP is highly efficient

  • CLIP은 필터링되지 않고 매우 다양하고 많은 noisy 데이터로부터 학습이되고 zero-shot 방법으로 사용되는 경향이 있다.
  • 우리는 GPT-2,3로부터 이러한 데이터로 학습된 모델들은 강력한 zero-shot performance을 달성할 수 있음을 안다.
    • 그러나 이러한 모델들은 충분한 학습이 필요하다.
  • 필요한 연산량을 줄이기 위해, 우리는 우리의 접근법에 대한 학습 효율성을 향상시키기 위한 알고리즘적인 방법에 집중한다.
    • 우리는 두 알고리즘 선택을 보고하고, 이는 중요한 계산 절약을 이끈다.
  • 첫 번째 선택은 text와 images을 연결하기 위한 contrastive objective의 적용이다.
    • 우리는 원래, VirTex와 유사하게 image-to-text 접근법을 탐구했으나 이를 SoTA 성능을 달성하는 것으로 확장시키기 어려웠다.
    • small과 medium으로 확장한 실험들에서, 우리는 CLIP에서 사용되는 contrastive objective는 4배부터 10배까지 zero-shot ImageNet classification에서 효율적임을 알아냈다.
  • 두 번째 선택은 Vision Transformer의 adoption이다.
    • 이는 우리에게 standard ResNet에서 계산 효율성보다 3배의 gain을 가져다 준다.
    • 끝으로, 가장 좋은 CLIP 모델 성능은 256 GPUs로 2주동안 기존의 large scale image 모델들과 유사하게 학습된다.
    • 우리는 원래 이미지-캡션 언어 모델 학습을 탐색했지만이 접근 방식은 제로 샷 전송에서 어려움을 겪었습니다. 
    • 이 16 일 GPU 실험에서 언어 모델은 4 억 개의 이미지를 학습 한 후 ImageNet에서 16 %의 정확도만 달성합니다. 
    • CLIP은 훨씬 더 효율적이며 약 10 배 더 빠르게 동일한 정확도를 달성합니다.

3.2. CLIP is flexible and general

  • 그들은 natural language로부터 직접적으로 visual concepts을 넓게 학습하기 때문에, CLIP 모델들은 기존의 ImageNet 모델들보다 매우 flexible하고 genral하다.
  • 우리는 그들이 많은 다른 tasks에서 zero-shot 수행이 가능함을 알아낸다.
  • 이를 검증하기위해, fine-grained object classification, geo-localization, 비디오에서 action recognition, OCR와 같은 테스크들을 포함한 다른 30개의 데이터세트에서 CLIP의 zero-shot 성능을 우리는 측정했다.
  • 특별히, OCR을 배우는것은 기존의 ImageNet 모델들에서는 일어날 수 없는 흥미로운 행위이다.
  • 위에서, 우리는 zero-shot classifier으로부터 random non-cherry pick을 보여주었다.
    • 이 발견은 linear probes을 사용해서 표준 representation learning evaluation에도 반영된다.
  • 가장 좋은 CLIP 모델은 우리가 테스트한 26개의 다른 transfer 데이터세트중에서 20개에서 오픈된 가장 좋은 ImageNet 모델인 Noisy Student EfficientNet-L2 보다 좋은 성능을 보여준다.
    • 세분화 된 객체 분류, OCR, 비디오의 활동 인식 및 지리적 위치 파악과 같은 작업을 측정하는 27 개의 데이터 세트 제품군에서 CLIP 모델이보다 광범위하게 유용한 이미지 표현을 학습 함을 발견했습니다. 
    • CLIP 모델은 또한 우리가 비교하는 10 가지 이전 접근 방식의 모델보다 컴퓨팅 효율성이 높습니다.

4. Limitations

  • CLIP는 보통 common objects을 인식하는 것은 잘하는 반면에, 이미지에서 objects의 수를 세는 것과 같은 체계적인 테스크 혹은 추상적인 것에는 어려움을 격는다.
  • 그리고 그림에서 차와 가장 가까운 것이 무엇인지 예측하는 것과 같은 좀 더 복잡한 테스크들도 어려움을 격는다.
    • 이러한 두 개의 데이터세트들에서, zero-shot CLIP는 오직 random 추측보다 살짝 좋은 결과를 보여준다.
  • Zero-shot CLIP는 또한 자동차모델과 aircraft의 변화, 꽃의 종 사이에서 차이점을 말하는 것과 같은 아주 정교한 classification에서 task-specific 모델들에 비해서 떨어진다.
  • CLIP는 또한 여전히 pre-training 데이터세트에서 커버하지 못하는 이미지들에 대해 저조한 일반화를 가지고 있다.
    • 예를 들어, CLIP가 OCR 시스템에서 학습이 가능함에도 불구하고, MNIST 데이터세트로부터 손으로쓴 숫자들에대해 평가할 때, zero-shot CLIP는 오직 88% 성능만을 달성하고 이는 데이터세트에서 사람의 99.75% 성능보다 낮다.
  • 마침내, 우리는 CLIP의 zero-sho classifiers가 wording 혹은 phrasing에 민감할 수 있고 때때로 제대로 작동하기 위해 trial and error "prompt engineering"을 요구하는 것을 알아냈다.

5. Broader Impacts

  • CLIP는 사람들이 그들만의 classifiers을 설계할 수 있고 task-specific 학습 데이터가 필요하지 않게 된다.
  • 이러한 클래스들이 설계되는 방식은 모델 성능과 모델 편향의 많은 영향을 가질 수 있다.
    • 예를 들어, 우리는 FairFace 인종 레이블들과 "범죄자", "동물"과 같은 몇 가지 심각한 용어들을 포함한 레이블에서, 모델은 0-20세 나이의 사람들을 심각한 카테고리로 분류하는 비율이 ~32.3%가 되는 것을 알아냈다.
    • 그러나, 우리가 "child"를 가능한 클래스들의 리스트에 추가했을 때, 그 해동은 ~8.7%로 떨어졌다.
  • 추가적으로, CLIP는 task-specific 학습 데이터가 필요하지 않음을 생각할 때, 특정 틈새 tasks들 보다 쉽게 접근할 수 있다. 
  • 이러한 테스크들의 일부분은 privacy 혹은 surveillance 관련된 risks들로 떠오를 수 있고 우리는 이러한 우려를 유명인 인식에 대한 CLIP의 성능을 연구함으로써 탐색한다.
    • CLIP는 실세계에서 100명의 후보중에서 유명인 이미지 분류에대한 top-1 성능이 59.2%이고 1000명의 후보중에서 선택하는 top-1 성능은 43.3%이다.
  • task에 관계없이 pre-training하는 이러한 결과들을 달성하는 것이 주목할만 할지라도, 이 성능은 널리 사용가능한 production level models와 비교해서 경쟁력이 있지는 않습니다.
  • 우리는 더 나아가, 우리의 연구에서 CLIP가 제기하는 챌린지를 더 탐구하고 우리는 이 연구들이 능력, 단점, 모델들의 편향의 특성들에 대한 연구를 위한 동기가 되길 희망한다.
  • 우리는 이러한 질문들에 대한 연구 커뮤니티에 참여하게 되어 기쁘다.

6. Conclusion

  • CLIP로, 우리는 인터넷 규모의 natural language에서 task agnostic pre-training 방법이 다른 영역에서 딥러닝의 성능을 향상시키는데 활용될 수 있는지 테스트한다.
    • 이는 NLP에서 최근 강력한 발견이었다.
  • 우리는 결과로부터 흥미로웠고 우리는 이러한 접근법이 컴퓨터비전에까지 적용가능함을 보았다.
  • GPT 방식과 같이, CLIP는 pre-training 동안 다양한 tasks들을 배울수 있고, 이는 zero-shot transfer을 통해 입증되었다.
  • 우리는 또한 ImageNet에서 우리의 발견들을 격려받았고, 이는 zero-shot evaluation이 좀 더 모델의 성능을 측정하는데 대표적임을 제안한다.

Reference

댓글