반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 에지 검출
- 1차 미분 마스크
- vlm 환각이란
- gres
- blip-2
- object detection
- gres 논문
- gres: generalized referring expression segmentation 논문 리뷰
- vlm
- 엔트로피란
- 이미지 필터링
- 기계학습
- gres 논문 리뷰
- vlm hallucination paper
- 논문 리뷰
- gres: generalized referring expression segmentation 논문
- grefcoco
- 논문 요약
- 원격 학습 안끊기게
- clip
- 딥러닝 엔트로피
- polling-based object probing evaluation
- gres: generalized referring expression segmentation
- Object detection article
- mobilenetv1
- referring expression segmentation
- 객체 검출
- clip adapter
- 딥러닝 목적함수
- grefcoco dataset
Archives
- Today
- Total
My Vision, Computer Vision
[논문 리뷰/요약] SLIP: Self-supervision meets Language-Image Pre-training 본문
Paper
[논문 리뷰/요약] SLIP: Self-supervision meets Language-Image Pre-training
gyuilLim 2025. 1. 23. 18:49
SLIP: Self-supervision meets Language-Image Pre-training
Recent work has shown that self-supervised pre-training leads to improvements over supervised learning on challenging visual recognition tasks. CLIP, an exciting new approach to learning with language supervision, demonstrates promising performance on a wi
arxiv.org
Abstact
- 본 연구에서는 Self-supervised learning(자기 지도 학습)이 Visual representation learning(시각적 표현 학습)을 위한 Language supervision(언어 지도)에 도움이 되는지에 대해 탐구한다.
- 또한 Self-supervised learning과 Pre-training CLIP을 결합한 Multi-task learning framework인 SLIP을 제안한다.
1. Introduction
- 현재에도 대부분의 State-of-the-art 성능은 Supervised Pre-training에 의존하고 있다.
- Unsupervised learning의 한 종류인 Self-supervised learning은 언어 도메인에서 큰 성공을 거두었고, 최근 비전 분야에서도 발전을 이루었다.
- Self-supervised learning은 사람이 직접 Annotation하는, 노동력에 의존하지 않는다는 이점이 있다.
- 최근, CLIP에서 Representation learning의 새로운 접근 방식이 소개되었다. CLIP의 학습에는 이미지와 자유 형식(Free-form)의 텍스트만 있으면 된다.
- 본 연구에서는 이미지에서 Self-supervised learning의 모멘텀이 Language supervision에도 적용될 수 있는지에 대해 탐구한다.
- 저자들은 Language supervision과 Self-supervision을 결합한 Multi-task framework인 SLIP(Self-supervision meets Language-Image Pre-training)을 소개한다.
2. Related Work
Language supervision
- DeViSE, BoW, N-gram ouucurance, ICMLM, VirTex 등은 Language supervision을 통해 시각적 표현(Visual representation)을 학습할 수 있다는 것을 입증했다.
- 최근 CLIP은 구조의 간단함, 큰 규모, 높은 성능으로 주목 받았고, ALIGN은 CLIP dataset보다 더 크지만 Noise가 있는 데이터셋을 사용하여 그에 준하는 성능을 보여주었다.
Self-supervised learning
- Self-supervised learning 중에서 Contrastive learning은 간단하고 효율적이라 빠른 발전을 이루었다.
- 뿐만 아니라 Self-distillation, Input Reconstruction 등 도 제안되고 있다.
Multi-modal multi-task learning
- MURAL은 ALIGN의 다국어 활용을 위해 Cross-lingual objective(목적 함수)를 도입했다.
- 동시에 DeCLIP은 CLIP에 추가적인 Training objectives를 도입하고 자체적으로 수집한 데이터를 학습시켰다.
3. SLIP Framework
- 본 논문에서는 카테고리 라벨없이, Visual representation 학습을 위해 Language supervision, Image self-supervision을 결합한 SLIP을 소개한다.
- Pre-training 동안, 입력 이미지는 Image encoder를 통해 임베딩되고, Language supervision, Image self-supervision 브랜치에 각각 나뉘어진다.
3.1. Contrastive Language-Image Pre-training
- CLIP은 Image와 Caption을 이용한 Contrastive learning의 효과를 입증했는데, 두 임베딩 벡터의 내적으로 유사도를 계산하여 Positive pair의 유사도는 커지게, Negative pair의 유사도는 작아지게끔 학습 된다(InfoNCE loss).
- Contrastive learning을 사용하지 않는 방법에는 BoW 나 캡션을 예측하는 방법이 있는데, 이 방법들은 CLIP보다 성능이 낮다.
- 또한 Contrastive learning은 특정 태스크에 대해 학습하지 않아도 분류할 수 있는 Zero-shot이 가능하다.
3.2. Image Self-Supervision
- View(Image)-based self-supervised learning은 동일한 이미지를 다양한 뷰 혹은 증강시켜 Positive pair로 취급하고 학습하는 방법이다.
- 본 연구에서는 이러한 방법의 대표적인 예인 SimCLR의 Self-supervised objective를 SLIP에 활용한다.(다른 Objective로도 대체 가능)
- 또한 ViT 아키텍쳐를 사용하고, 학습을 위해 MoCo v3의 하이퍼 파라미터 세팅을 따른다.
3.3. Our Method
# fi, ft: image, text encoders
# hi, ht: CLIP image, text projectors
# hs: SimCLR projector
# c: SimCLR loss scale
def forward(img, text):
# 입력 이미지에 대해 crop한 이미지를 xi, 두 개의 서로 다른 증강을 적용한 이미지를 각각 x1, x2라 한다.
xi, x1, x2 = crop(img), aug(img), aug(img)
# toknize된 text를 yt라 한다.
yt = tokenize(text)
# 각 이미지와 텍스트는 Encoder를 거쳐 Representation으로 추출된다.
wi, w1, w2 = fi(xi, x1, x2)
wt = ft(yt)
# 증강된 두 이미지는 SimCLR의 projector로 임베딩되고
# 입력 이미지와 텍스트는 CLIP의 projector로 임베딩된다.
z1, z2 = hs(w1), hs(w2) # SSL embed: N x C2
zi, zt = hi(wi), ht(wt) # CLIP embed: N x C1
# simclr의 loss와 clip의 loss를 스칼라 덧셈으로 합친다.
# 이 때 simclr의 로스값은 c로 scaling해준다.
loss = c * simclr(z1, z2) + clip(zi, zt)
return loss
# s: learnable log logit scale
def clip(zi, zt):
# 입력 이미지와 텍스트의 임베딩을 정규화하고, 내적(유사도)를 구해준다.
zi, zt = normalize(zi, zt)
label = range(N)
logit = exp(s) * zi @ zt.T
# 이미지 로스와 텍스트 로스를 각각 구한 후
li = CrossEntropy(logit, label)
lt = CrossEntropy(logit.T, label)
# 평균을 반환한다.
loss = (li + lt) / 2
return loss
# tau: softmax temperature
def simclr(z1, z2):
# 증강된 두 이미지를 정규화하고 큰 값(1e9)로 이루어진 단위 행렬을 만든다.
z1, z2 = normalize(z1, z2)
label = range(N)
mask = eye(N) * 1e9
# 두 이미지의 내적(유사도)와 같은 이미지에 대한 유사도를 구하는데,
# 같은 이미지에 대한 유사도 행렬에서는 mask값을 빼주어 자기 자신과의 비교를 방지한다.
logit = z1 @ z2.T
logit1 = z1 @ z1.T - mask
logit2 = z2 @ z2.T - mask
# logit에 logit1, logit2를 각각 붙여준 후
logit1 = cat(logit, logit1)
logit2 = cat(logit.T, logit2)
# 각각에 대한 로스를 계산한다.
l1 = CrossEntropy(logit1 / tau)
l2 = CrossEntropy(logit2 / tau)
# 평균을 반환한다.
loss = (l1 + l2) / 2
return loss
- SimCLR과 CLIP을 결합한 방법으로, SLIP이라고 통칭한다.
- 두 가지의 Contrastive learning이 수행되는데, 하나는 입력 이미지의 서로 다른 두 증강에 대한 것이고, 다른 하나는 이미지와 텍스트에 대한 것이다.
- 자세한 내용은 주석을 참고할 것.
4.1. Implementation Details
Datasets
- YFCC100M 데이터셋에서 필터링하여 15M 하위 집합을 구성하며, YFCC15M이라고 한다.
- 또한 Conceptual Captions 3M(CC3M)과 CC12M 에서도 평가한다.
Data Augmentation
- YFCC15M은 하나의 이미지에 Title, Description 이렇게 두 개의 캡션 정보가 있는데, 학습 동안 두 캡션 중 하나를 랜덤하게 선택한다.
- CLIP 브랜치의 이미지는 50~100% 크기로 Resize, Crop하고 이를 Global cropping이라 한다.
- Self-supervised 브랜치에는 MoCo v3에서 사용하는 증강을 적용하여 두 개의 뷰를 만들어낸다.
Architecture
- ViT-B/16, ViT-L/16, ResNet50과 계산량, 파라미터 수가 비슷한 ViT-S/16을 이미지 인코더로 사용한다.
- Text Encoder로는 CLIP의 가장 작은 Transformer(38M parameter)를 사용하고, 49K개의 토큰을 Byte-pair encoding(BPE)하여 사용한다. 최대 길이는 77이다.
- CLIP 브랜치에서는 이미지와 캡션을 512차원으로 임베딩한다.
- Self-supervised 브랜치에서는 3-layer MLP를 사용하여 256차원으로 출력한다.
Training
- 배치는 4096, AdamW 옵티마이저, Weight decay는 CLIP, SLIP에 각각 0.5, 0.1을 적용한다.
Zero-shot Transfer Evaluation
- ImageNet을 포함한 다양한 데이터셋에서 Zero-shot 평가를 수행한다.
- CLIP에서 사용된 프롬프트 템플릿을 통해 앙상블을 수행한다.
Linear Classification Evaluation
- Linear classification 평가를 위해 MoCo v3와 똑같은 설정을 사용한다.
- SGD를 모멘텀과 함께 사용하고 Weight decay는 적용하지 않는다.
- ImageNet에서는 학습률을 0.01로 설정하고, 다른 데이터셋은 실험으로 결정했다.
- Cropping, Flipping 증강을 적용하여 100 에포크동안 학습한다.
End-to-end Finetuning Evaluation
- ImageNet 파인튜닝을 위해 BeiT의 학습 절차를 따른다.
- 이는 큰 비중의 Regularization과 Data augmentation을 적용하고, Layerwise learning rate decay를 사용한다.
- ViT-B와 ViT-S는 100 에포크동안 학습하고 ViT-L은 50 에포크동안 학습한다.
5. Empirical Evaluations
5.1. ImageNet Classfication

- YFCC15M 데이터셋으로 Pre-training한 후 ImageNet에 평가한 결과이다.
- Zero-shot Transfer, Linear Classficiation, End-to-end Finetuning 세 가지로 나눠서 평가했다.
5.2. Model and Compute Scaling

- 첫번째 테이블은 ViT 인코더의 크기를 다르게 적용하여 평가한 결과이다.
- YFCC15M에서 100 에포크 학습한 후 ImageNet-1K에서 1200 에포크 학습했다.
- 두번째 테이블은 ViT-B/16을 사용하여 에포크를 다르게 적용한 결과이다.
728x90