long8v / PTIR

Paper Today I Read
19 stars 0 forks source link

[152] Sigmoid Loss for Language Image Pre-Training #164

Open long8v opened 3 months ago

long8v commented 3 months ago
image

paper, code

TL;DR

Details

Sigmoid Loss

기존 InfoNCE

image

여기서 image -> text / text -> image를 위해 summation이 각각의 axis로 두 번 이루어진다는 점.

image

제안한 sigmoid loss. 여기서 $z_{ij}$는 positivie일 때 1 negative일때 -1인 label. negative가 너무 많기 때문에 imbalance를 해결하기 위해 $t'$, $b$를 두었고 이는 log10과 -10으로 초기화 함.

언뜻 보면 negative 다 계산해야되기 때문에 softmax 연산이랑 차이가 있나 싶다만

image

이런 식으로 chunking을 하면 softmax의 경우 분모분을 계산하기 위해 feature를 all_gather하는 게 필요함. 그런데 sigmoid loss의 경우 negative pair가 loss에는 들어가지만 positive pair에 대해 negative pair가 필요한건 아니기 때문에 그냥 chunking해서 forward 하면 되어서 더 효율적임.

image

LiT 셋팅에서 softmax보다 낫고, 그냥 CLIP 셋팅에서도 적당히 작은 bs에 대해서 softmax보다 나음.

Performance

image image

Ablations

image

perturbation에 더 강하다고 함

image

hard negative로 하면 유독 더 좋은 벤치마크가 있으려나 궁금함