CLIP ってよく出てくるけど
画像と文章を結びつけるモデル、くらいしか知らん
【疑問】CLIPって何がすごいん?学習してない分類がなんでできるん?【AI】
>>1
Radford らの論文(2021年)で出たモデル。名前は Contrastive Language-Image Pre-training(対照的な画像と言語の事前学習)
インターネットから集めた約4億組の「画像と文章のペア」で学習してる
>>2
対照的ってどういうこと
>>3
画像を数字の並び(ベクトル)にする部品と、文章をベクトルにする部品を用意する
1回の学習で 組のペアを並べて、 通りの組み合わせを全部比べる
本物のペア 組はベクトルの向きを近づけて、残りの 組は遠ざける
>>4
はどのくらいなん
>>5
論文では32,768
1回で約10億7千万組の「間違ったペア」と見比べてることになる
>>6
なんでキャプションをそのまま当てさせへんの?そのほうが自然やろ
>>7
論文でも最初はそれを試してる。でも文章を一語一語当てさせる方式は学習の効率が悪かった
ImageNet でのゼロショット性能(その分類用に学習せずに解いた性能)で比べると、語順を無視して単語だけ当てさせる方式よりも、どの文章がどの画像と組か当てるだけの対照学習のほうが、同じ精度に4倍速く届いた
ゼロショット分類ってどうやるん
>>9
クラス名を文章にして、画像に一番近い文章を選ぶ
例えば犬・猫・鳥の3クラスなら
「A photo of a dog.」「A photo of a cat.」「A photo of a bird.」をベクトルにする
画像のベクトルとのコサイン類似度(向きのそろい具合)が0.30、0.25、0.20 やったら、倍率をかけてソフトマックス(数値を確率に変える関数)に通す
>>10
倍率っていくつ?
>>11
論文では温度パラメータとして学習させてて、倍率は最大100に抑えてある。100倍すると
類似度の差は0.05ずつやのに、確率ではほぼ犬に決まる
>>12
で、精度はどのくらいなん
>>13
ImageNet(1000クラスの画像分類データ)でゼロショット76.2%
ImageNet の訓練データ128万枚を1枚も使わずに、それで学習した元の ResNet-50 と同じくらいの精度
>>14
プロンプトの書き方でも変わるん?
>>15
変わる。クラス名だけより「A photo of a {label}.」にしたほうが ImageNet で1.3%上がる
さらに80種類の言い回しを平均すると3.5%上がって、合わせて5%近く
>>16
じゃあ CLIP があれば、どんな分類も学習なしでいけるんやな
>>17
いけん。論文自身が弱点を書いてる
手書き数字の MNIST はゼロショットで88%で、画素に直接ロジスティック回帰(単純な線形の分類器)をかけたほうが上
物の数を数える、車までの距離を当てる、みたいな課題もかなり苦手
>>18
「ゼロショット」って、似た画像を一度も見てないって意味ちゃうの?
>>19
違う。その評価データ用に学習してない、って意味
4億組のどこかに評価データとよく似た画像が混ざってる可能性はあって、論文でも重なりを調べてる。重なりの割合は中央値2.2%で、精度への影響はほとんどなかった、という結果
>>20
画像と文章を同じ空間に置いて、近さで選ぶ。仕組み自体は単純なんやな
管理人のひとこと
- CLIP は約4億組の画像と文章のペアで、本物のペアを近づけ、それ以外を遠ざける対照学習をしたモデル(Radford ら、2021年)。1回に32,768組を並べ、約10億7千万組の誤ったペアと比べる。
- ゼロショット分類は「A photo of a {label}.」の文章ベクトルと画像ベクトルのコサイン類似度をソフトマックスで確率にする。類似度0.30、0.25、0.20 でも倍率100なら約0.993に集中する。
- ImageNet でゼロショット76.2%と、訓練データ128万枚で学習した元の ResNet-50 並み。プロンプトの工夫で5%近く上がる。
- MNIST(88%)や物の数を数える課題は苦手。「ゼロショット」はその評価データで学習していないという意味。